21

Derzeit verfügen wir im Chrome Web Store über eine Erweiterung mit vielen Nutzern. Wir fordern derzeit den Zugriff auf foo.site.com an, aber jetzt möchten wir unsere Berechtigungen aktualisieren, damit wir bar.site.com erhalten können.Aktualisieren von Berechtigungen für Chrome-Erweiterungen

Wenn ich jetzt ein neues Update (neue Erweiterungsversion im Chrome Web Store) mit diesen beiden Berechtigungen durchführe, wird die Erweiterung für bestehende Benutzer deaktiviert, bis sie manuell wieder aktiviert werden. Neue Benutzer, die die Erweiterung nach dem Update herunterladen, sind in Ordnung und haben beide Berechtigungen. Die Deaktivierung unserer aktuellen Benutzer ist jedoch keine Option.

Jeder Weg, um dies zu umgehen?

Wir haben uns optionale Berechtigungen angeschaut, die das Problem für bestehende Benutzer lösen würden (wir würden sie nur bitten, auf eine Schaltfläche zu klicken, um die Berechtigungen zu aktualisieren und auf dem Weg zu sein). Für neue Benutzer müssten sie jedoch nicht nur die Erweiterung installieren, sondern auch die optionalen Berechtigungen akzeptieren, die saugt. Gibt es eine Möglichkeit für neue Benutzer, alle Berechtigungen (optional und erforderlich) bei der Installation zu akzeptieren?

+4

Sie nicht wirklich lesen Sie die Frage, die Sie getan haben. – aloo

+2

Ich habe das angesprochen: 'Die Deaktivierung unserer derzeitigen Benutzer ist jedoch keine Option. Irgendeine Möglichkeit, das zu umgehen?' –

+3

Es scheint ein nützliches Feature zu sein, einige optionale_permissions zu deklarieren, die zur Installationszeit für neue Benutzer angefordert werden. Datei unter http://crbug.com/new? Sie können auch überlegen, ob es sinnvoll wäre, alle Ihre Berechtigungen in optionale_permissions umzuwandeln, so dass Sie sie nach der Installation einmal anfordern können, oder ob die Beta-AktivTab-Berechtigung (http://developer.chrome.com/beta/extensions/activeTab.html) würde funktionieren, anstatt immer auf bar.site.com zugreifen zu müssen. –

Antwort

8

Ja, es gibt eine Lösung. Sie legen die neuen Berechtigungen als optional fest und Sie fordern dann die Berechtigung an, bevor der Benutzer die neue Funktion verwendet. Das ist Arbeit 100%.

Dies ist, was Sie zu Ihrem Manifest hinzufügen:

"permissions": ["tabs","http://*/*","https://*/*"], 

Danach können Sie verwenden:

chrome.permissions.request 

und

chrome.permissions.contains 
+1

Für neue Benutzer müssten sie die Berechtigungen akzeptieren, um die Erweiterung zu installieren und einen anderen Satz von Berechtigungen zu akzeptieren – aloo

+0

@Gabriele Allerdings muss chrome.permissions.request innerhalb einer "Benutzergeste" aufgerufen werden, richtig? Welche Benutzergeste hast du dafür benutzt? Was passiert, wenn ich möchte, dass der Benutzer eine bestimmte Webseite lädt? –

+0

In meinem Fall habe ich ein kleines Einstellungsfenster, das direkt auf der Seite eingefügt wird. Wenn Sie es umschalten, wird um Erlaubnis gefragt. Ich denke, es war ein bisschen komplizierter als das und es erforderte die Verwendung von Nachrichten. Die Erweiterung, die ich gemacht habe, heißt HN Special und du findest sie auf GitHub. Probieren Sie es googeln :) –

4

die gleiche Frage, die sich mit meiner Erweiterung, ich kam über diesen Post nach der gleichen Frage suchen. Es gibt ein Update, das in einigen Fällen akzeptabel scheint. Nach: https://support.google.com/chrome_webstore/answer/1054246 und dem Beispiel auf http://developer.chrome.com/extensions/permission_warnings.html

Es scheint, dass in der Tat wird Ihre Berechtigungen Aktualisierung Ihre Erweiterung deaktivieren, es wird jedoch den Benutzer über Ihre Änderung veranlassen und einem einfachen „wieder aktivieren“ zu ermöglichen.

In Ihrem Szenario möglicherweise nicht akzeptabel, aber in meinem Fall trumpft das Win neuer Benutzer mit der zusätzlichen Berechtigung standardmäßig das Risiko von vorhandenen Benutzer nicht erneut aktivieren. Da dies drastisch besser auf die Art und Weise ist, die es vorher war, wo Ihre vorhandenen Benutzer nicht bewusst waren, dass die Erweiterung deaktiviert ist ...

Ich weiß, dass dieser Beitrag alt ist, aber wie es das Top-Google-Ergebnis für diese Frage gedacht ist Update ist gut für zukünftige Referenz ...

+2

Gibt es eine Möglichkeit, dass meine alten Benutzer nur optionale Erlaubnis Popup erhalten, aber neue Benutzer erhalten es nur einmal, wenn sie die Erweiterung und nicht zweimal installieren - einmal bei der Installation und wenn diese optionalen Funktionen verwenden. – Nakul

+0

@Nakul können Sie 'chrome.permissions.contains' verwenden, um zu überprüfen, ob die Berechtigung bereits erteilt wurde oder noch separat angefordert werden muss. –

4

Seit chrome 16 können Sie optional_permission zur Installationszeit festlegen und zur Laufzeit erhöhte Berechtigung anfordern. Siehe https://developer.chrome.com/extensions/permissions

in manifest.json:

{ 
    "name": "My extension", 
    ... 
    "optional_permissions": [ "tabs", "http://bar.site.com/" ], 
    ... 
    } 

in popup.json:

document.querySelector('#my-button').addEventListener('click', function(event) { 
    // Permissions must be requested from inside a user gesture, like a button's 
    // click handler. 
    chrome.permissions.request({ 
     permissions: ['tabs'], 
     origins: ['http://bar.site.com/'] 
    }, function(granted) { 
     // The callback argument will be true if the user granted the permissions. 
     if (granted) { 
     doSomething(); 
     } else { 
     doSomethingElse(); 
     } 
    }); 
    }); 
Verwandte Themen