2016-12-20 7 views
3

グローバルホットキーを含むアクションをJIRAに追加するクロムエクステンションを作成しています。 JIRAの自分のインスタンスのURLを自分の拡張子にハードコードすることができますが、このURLを他のユーザが自分のJIRAインスタンスに対して異なるURLを持つようにユーザが設定できるようにしたいと思います。クロムエクステンションのユーザー設定可能なURLパーミッション

すべてのURLに対して自分の拡張機能を許可し、現在のURLとユーザが設定として選択したものとを比較するバックグラウンドスクリプトをチェックするよりも良い方法があるかどうかを知りたいと思います。理想的には、私の背景/注入スクリプトは、ユーザーが選択したURL上でのみ実行されます。私はpermissions apiを見ましたが、それを理解することはできません。

私の現在のmanifest.jsonは次のように見えます。私はjiraのURLにハードコードされた権限を持っています。この権限をユーザが設定できるようにする方法はありますか?あなたは、任意のホストに注入するために、あなたはあなたの権限でhttp://*/https://*/、好ましくはオプションの権限を持っているを持ってんどのような

{ 
    "permissions": [ 
    "contentSettings", 
    "storage", 
    "commands", 
    "http://myjiraurl/*" 
    ], 
    "background": { 
    "matches": [ 
     "http://myjiraurl/*" 
    ], 
    "scripts": ["src/background/background.js"] 
    }, 
    "content_scripts": [ 
    { 
     "matches": [ 
     "http://myjiraurl/*" 
     ], 
     "js": [ 
     "js/jquery.min.js", 
     "src/inject/inject.js" 
     ] 
    } 
    ] 
} 

答えて

2

。あなたの提案 - 現在のURLと設定内のURLを比較するのは非常に妥当です:現在のURLを設定内のURLと比較して一致する場合は、暗黙のうちにコードの実行を停止します(chrome.permissions.request)。

私はそれを避けるために、1つのワークアラウンドを考えることができますが、正直なところ、それはずっとあなたを与えていない:オプション許可など

  1. 使用http://*/https://*/を(あなたが本当にとにかくそれらをオプションにする必要があり)。
  2. オプションをユーザが変更した時点でchrome.permissions.requestコールを発信してください。
  3. バックグラウンドスクリプトでは、現在のURLをchrome.permissions.containsと呼び、許可がない場合はコードの実行を停止します。

上記の結果は、現在のURLを設定内のURLと比較するのではなく、現在のURLと以前に許可されているものとを比較します。私はバックグラウンドスクリプトを少し簡略化していると思います(設定にURLを格納する必要はありませんが、オプションページのコードは少し複雑になります)。

関連する問題