21

現在、多くのユーザーがいるChromeウェブストアには拡張機能があります。現在、foo.site.comへのアクセスをリクエストしていますが、bar.site.comにアクセスできるようにアクセス許可を更新したいと考えています。Chrome拡張機能のアクセス許可のアップグレード

私が今理解しているように、これら2つの権限を必要とする新しいアップデート(Chromeウェブストアへの新しい拡張バージョン)をプッシュすると、既存のユーザは手動で再び有効にするまで無効になります。更新後に拡張機能をダウンロードした新規ユーザーは正常で、両方の権限を持ちます。ただし、現在のユーザーを無効にすることは選択肢ではありません。

これを回避する方法はありますか?

既存のユーザーの問題を解決するオプションのアクセス許可を調べました(アクセス権をアップグレードするためにボタンをクリックするだけです)。しかし、新規ユーザーの場合、拡張機能をインストールするだけでなく、オプションのアクセス許可を受け入れる必要があります。新規ユーザーがインストール時にすべての権限(オプションおよび必須)を受け入れる方法はありますか?

+4

あなたは本当に質問を読んでいない、あなたをしました。 – aloo

+2

私はこれに対処しました: 'しかし、現在のユーザーを無効にすることは選択肢ではありません。これを回避する方法はありますか?' –

+3

新しいユーザのためにインストール時にいくつかのoptional_permissionsを要求することを宣言できるのは便利な機能のようです。 http://crbug.com/newでファイルしますか?また、すべてのアクセス権をoptional_permissionsに設定してインストール後に一度だけ要求できるようにするか、beta activeTab権限(http://developer.chrome.com/beta/extensions/activeTab.html)を使用するかどうかを検討することもできます)は常にbar.site.comにアクセスする代わりに機能します。 –

答えて

8

はい、解決策があります。 新しい権限をオプションとして設定し、そのユーザーが新しい機能を使用する前に権限を要求しています。 仕事は100%です。

これはあなたのマニフェストに追加するものです:あなたが使用することができます。その後

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

chrome.permissions.request 

私の拡張子を持つ同じ問題に直面して
chrome.permissions.contains 
+1

新しいユーザーの場合は、拡張機能をインストールする権限を受け入れ、別のアクセス許可を受け入れる必要があります。 – aloo

+0

@ Gabrieleただし、chrome.permissions.requestは「ユーザージェスチャー」内で呼び出す必要があります。あなたはこれに対してどのようなジェスチャーを使用しましたか?ユーザーが特定のウェブページを読み込んだときにいつでもそのようにしたいのですが? –

+0

私の場合は、小さな設定パネルがページに挿入されています。あなたがそれをトグルすると、許可を求めるでしょう。私はそれがもう少し複雑で、メッセージを使う必要があると思います。私が作った拡張機能はHN Specialと呼ばれ、GitHubで見つけることができます。グーグルでそれを試してください:) –

4

、I同じ質問を探しているこの記事について来た。いくつかのケースでは受け入れられると思われるアップデートがあります。よると : https://support.google.com/chrome_webstore/answer/1054246http://developer.chrome.com/extensions/permission_warnings.html

上の例では、あなたの許可を更新することは実際にはしかし、それはあなたの変更についてユーザーにプロンプ​​トを表示してできるようになり、あなたの拡張機能を無効にする簡単な「再度有効」になると思われます。

あなたのシナリオでは、私のケースではの勝利の新規ユーザーが、デフォルトで追加された新しいユーザーで勝つと、既存のユーザーが再び有効にならない危険性が優先されます。これは以前のユーザーが拡張機能が無効になっていることを認識していなかった以前の方法と比べて大幅に改善されています...

この投稿は古いですが、この質問のトップGoogle結果将来の参照用に更新することをお勧めします。

+2

私の古いユーザーはオプションの権限のポップアップだけを取得する方法はありますか?新しいユーザーは、拡張機能をインストールしているときに一度だけ取得します。 – Nakul

+0

@Nakulあなたは 'chrome.permissions.contains'を使って権限が既に与えられているかどうか、あるいは別に尋ねられるかどうかを調べることができます。 –

4

chrome 16以降、インストール時にoptional_permissionを設定し、実行時に昇格許可を求めることができます。 manifest.jsonをしてhttps://developer.chrome.com/extensions/permissions

を参照してください:

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

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(); 
     } 
    }); 
    }); 
関連する問題