diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/mozilla/add-ons/webextensions/manifest.json/permissions | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/mozilla/add-ons/webextensions/manifest.json/permissions')
-rw-r--r-- | files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html b/files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html new file mode 100644 index 0000000000..097d3a4102 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html @@ -0,0 +1,190 @@ +--- +title: permissions +slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissions +tags: + - Add-ons + - Extensions + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions +--- +<div>{{AddonSidebar}}</div> + +<table class="fullwidth-table standard-table"> + <tbody> + <tr> + <th scope="row" style="width: 50%;"><strong>型</strong></th> + <td><code>Array</code></td> + </tr> + <tr> + <th scope="row"><strong>必須項目か?</strong></th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row"><strong>例</strong></th> + <td> + <pre class="brush: json no-line-numbers"> +"permissions": [ + "*://developer.mozilla.org/*", + "webRequest" +]</pre> + </td> + </tr> + </tbody> +</table> + +<p>拡張機能が特別な権限を必要とする際には <code>permission</code> キーを使用します。このキーには文字列の配列を指定し、各文字列がパーミッションを要求します。</p> + +<p>このキーを用いてパーミッションを要求した場合、ブラウザーはインストール時に「この拡張機能はこれだけの特権を要求しています」と通知し、これらの特権を許可しても大丈夫かとユーザーに確認します。ブラウザーはまた、インストール後にユーザーがアドオンの特権を調査することも許可します。</p> + +<p>キーには以下の 3 種類があります。</p> + +<ul> + <li>host パーミッション</li> + <li>API パーミッション</li> + <li>activeTab パーミッション</li> +</ul> + +<p>{{英語版章題("Host permissions")}}</p> + +<h2 id="host_パーミッション">host パーミッション</h2> + +<p>host パーミッションは<a href="https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">マッチパターン</a>として指定します。それぞれのパターンによって、アドオンの要求する権限が有効となる URL の範囲を指定します。host パーミッションの例は <code>"*://developer.mozilla.org/*"</code> のようなものです。</p> + +<p>この権限には以下が含まれます。</p> + +<ul> + <li>そのオリジンに対して、クロス-オリジン制約なしに <a href="https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> アクセス、 <a href="https://developer.mozilla.org/ja/docs/Web/API/Fetch_API">fetch</a> アクセスができる権限(コンテンツスクリプトからのリクエストによるものも含みます)</li> + <li>そのオリジンによるページに(<a href="https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript</a> を用いて)スクリプトをプログラム的に挿入できる権限</li> + <li><a href="https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a> API を用いて、そのホストからのイベントを受信できる権限</li> + <li><a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions/API/cookies">cookies</a> API を用いて、そのホストの Cookie にアクセスできる権限("cookies" API のパーミッションが指定されている場合)</li> + <li>ホスト名が完全修飾ドメインであり、ワイルドカードを含まない場合にトラッキング防止を回避。<code><all_urls></code> については除外。</li> +</ul> + +<p>Firefox では バージョン 56 以降で拡張機能は自動的に自身をオリジンとする host パーミッションを次の形式で取得します:</p> + +<pre><code>moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/</code></pre> + +<p>ここで <code>60a20a9b-1ad4-af49-9b6c-c64c98c37920</code> は拡張機能の内部 ID です。拡張機能は <a href="https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a> を呼び出すことでこの URL を取得できます:</p> + +<pre class="brush: js line-numbers language-js"><code class="language-js">browser<span class="punctuation token">.</span>extension<span class="punctuation token">.</span><span class="function token">getURL</span><span class="punctuation token">(</span><span class="string token">""</span><span class="punctuation token">)</span><span class="punctuation token">;</span> +<span class="comment token">// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/</span></code></pre> + +<p>{{英語版章題("API permissions")}}</p> + +<h2 id="API_パーミッション">API パーミッション</h2> + +<p>API パーミッションには、拡張機能から使用したい WebExtension API の名前をキーワードとして指定します。</p> + +<p>現時点で使用できるキーワードは以下の通りです。</p> + +<ul> + <li><code>activeTab</code></li> + <li><code>alarms</code></li> + <li><code>background</code></li> + <li><code>bookmarks</code></li> + <li><code>browserSettings</code></li> + <li><code>browsingData</code></li> + <li><code>contentSettings</code></li> + <li><code>contextMenus</code></li> + <li><code>contextualIdentities</code></li> + <li><code>cookies</code></li> + <li><code>debugger</code></li> + <li><code>downloads</code></li> + <li><code>downloads.open</code></li> + <li><code>find</code></li> + <li><code>geolocation</code></li> + <li><code>history</code></li> + <li><code>identity</code></li> + <li><code>idle</code></li> + <li><code>management</code></li> + <li><code>menus</code></li> + <li><code>nativeMessaging</code></li> + <li><code>notifications</code></li> + <li><code>pageCapture</code></li> + <li><code>pkcs11</code></li> + <li><code>privacy</code></li> + <li><code>proxy</code></li> + <li><code>sessions</code></li> + <li><code>storage</code></li> + <li><code>tabs</code></li> + <li><code>theme</code></li> + <li><code>topSites</code></li> + <li><code>webNavigation</code></li> + <li><code>webRequest</code></li> + <li><code>webRequestBlocking</code></li> +</ul> + +<p>ほとんどの場合、パーミッションはその API へのアクセス権を付与するだけですが、以下のような例外があります。</p> + +<ul> + <li><code>tabs</code> パーミッションを指定した場合、<a href="/ja/Add-ons/WebExtensions/API/tabs">特別な <code>tabs</code> API のパーツ</a> (<code>Tab.url</code> / <code>Tab.title</code> / <code>Tab.faviconUrl</code>)にアクセスすることが許可されます。 Firefox では、<code><a href="https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query">tabs.query()</a></code> の <code>queryInfo</code> パラメーターに <code>url</code> を入れるのにも <code>tabs</code> が必要です。他の <code>tabs</code> API についてはパーミッションの要求なしで使用できます。</li> + <li><code>webRequestBlocking</code> パーミッションを指定した場合、"blocking" 引数の使用が許可されます。これによって<a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions/API/WebRequest">リクエストの変更やキャンセル</a>が可能となります。</li> + <li><code>downloads.open</code> パーミッションを指定した場合、{{WebExtAPIRef("downloads.open()")}} API の利用が許可されます。</li> +</ul> + +<p>{{英語版章題("activeTab permission")}}</p> + +<h2 id="activeTab_パーミッション">activeTab パーミッション</h2> + +<p>このパーミッションは <code>"activeTab"</code> と指定されます。拡張機能が <code>activeTab</code> パーミッションを持つなら、ユーザーが拡張機能と相互作用する時に、拡張機能はアクティブなタブ限定の特別な権限が許可されます。</p> + +<p>"ユーザーの相互作用" とは次のようなものです:</p> + +<ul> + <li>ブラウザーアクションやページアクションをクリック</li> + <li>コンテキストメニュー項目を選択</li> + <li>拡張機能によって定義されたキーボードショートカットをアクティベート</li> +</ul> + +<p>特別な権限とは:</p> + +<ul> + <li><code><a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions/API/tabs/executeScript">chrome.tabs.executeScript</a></code> と <code><a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions/API/tabs/insertCSS">chrome.tabs.insertCSS</a></code> を用いてタブに JavaScript や CSS をプログラム的に挿入できる能力</li> + <li>現在のタブに、次の一部の tabs API の権限アクセス: <code>Tab.url</code>, <code>Tab.title</code>, <code>Tab.faviconUrl</code>.</li> +</ul> + +<p>このパーミッションの意図は、拡張機能によくあるユースケースを、強力すぎるパーミッションを与えずに実行できるようにすることです。多くの拡張機能は「ユーザーが希望したら現在のページで何かをする」ことを希望しています。例えば、ユーザーがブラウザーアクションをクリックした時に現在のページでスクリプトを実行する拡張機能を考えます。<code>activeTab</code> パーミッションがない場合、拡張機能は <code><all_urls></code> の host パーミッションを要求する必要があります。しかし、これは拡張機能に必要以上の力を与えています: アクティブなタブで単にユーザーアクションに応答する代わりに、いかなるタブで、いかなるタイミングで、スクリプトを実行できます。</p> + +<p>{{英語版章題("Clipboard access")}}</p> + +<h2 id="Clipboard_access" name="Clipboard_access">クリップボードのアクセス</h2> + +<p>拡張機能にクリップボードとやりとりできるようにする、2つの権限があります:</p> + +<ul> + <li><code>clipboardWrite</code>: <code>document.execCommand("copy")</code> か <code>document.execCommand("cut")</code> を使ったクリップボードの書き込み</li> + <li><code>clipboardRead</code>: <code>document.execCommand("paste")</code> を使ったクリップボードの読み込み</li> +</ul> + +<p>これについての詳細は<a href="/ja/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">クリップボードと相互作用する</a>を見てください。</p> + +<h2 id="Unlimited_storage" name="Unlimited_storage">Unlimited storage</h2> + +<p><code>unlimitedStorage</code> パーミッションは:</p> + +<ul> + <li>拡張機能に {{WebExtAPIRef("storage.local")}} API で制限する容量を超えられるようにする</li> + <li>Firefox では<a href="/ja/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#Firefox_specifics">「永続的な」IndexedDB データベース</a>の作成を、データベース作成時にブラウザーからユーザーに許可を確認することなく、可能にする</li> +</ul> + +<p>{{英語版章題("Example")}}</p> + +<h2 id="例">例</h2> + +<pre class="brush: json"> "permissions": ["*://developer.mozilla.org/*"]</pre> + +<p>これは developer.mozilla.org ドメイン配下のページにアクセスする権限を要求しています。</p> + +<pre class="brush: json"> "permissions": ["tabs"]</pre> + +<p><code>tabs</code> API を使用する権限を要求しています。</p> + +<pre class="brush: json"> "permissions": ["*://developer.mozilla.org/*", "tabs"]</pre> + +<p>上記の権限を両方ともに要求しています。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("webextensions.manifest.permissions")}}</p> |