From a4ef7708f29bbe20f9338eaaf8c3e839cb8d4467 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 6 Jun 2021 00:08:18 +0900 Subject: Mozilla/Add-ons/WebExtensions/manifest.json/permissions を更新 (#978) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 英語版章題マクロを削除 - 2021/02/20 時点の英語版に同期 --- .../manifest.json/permissions/index.html | 144 ++++++++++++--------- 1 file changed, 84 insertions(+), 60 deletions(-) (limited to 'files/ja') 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 index 097d3a4102..a139d5c23a 100644 --- a/files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html +++ b/files/ja/mozilla/add-ons/webextensions/manifest.json/permissions/index.html @@ -4,25 +4,28 @@ slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissions tags: - Add-ons - Extensions + - Permissions + - Reference - WebExtensions + - manifest.json translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions --- -
{{AddonSidebar}}
+

{{AddonSidebar}}

- + - + - +
Array
必須項目か?必須項目か? いいえ
-
+    
 "permissions": [
   "*://developer.mozilla.org/*",
   "webRequest"
@@ -32,51 +35,53 @@ translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions
  
-

拡張機能が特別な権限を必要とする際には permission キーを使用します。このキーには文字列の配列を指定し、各文字列がパーミッションを要求します。

+

拡張機能が特別な権限を必要とする際には permissions キーを使用します。このキーには文字列の配列を指定し、各文字列が権限を要求します。

-

このキーを用いてパーミッションを要求した場合、ブラウザーはインストール時に「この拡張機能はこれだけの特権を要求しています」と通知し、これらの特権を許可しても大丈夫かとユーザーに確認します。ブラウザーはまた、インストール後にユーザーがアドオンの特権を調査することも許可します。

+

このキーを使って権限を要求した場合、ブラウザーはインストール時に、拡張機能が特定の権限を要求していることをユーザーに伝え、その権限を許可してもよいかどうかを確認するよう求めることがあります。また、ブラウザーは、インストール後にユーザーが拡張機能の権限を検査できるようにすることもできます。権限付与の要求は、ユーザーが拡張機能をインストールする意欲に影響を与える可能性があるため、権限の要求は慎重に検討する必要があります。たとえば、不要な権限を要求することは避けたいもので、拡張機能のストアの説明に権限を要求する理由についての情報を提供するとよいでしょう。検討すべき事項の詳細については、 Request the right permissions の記事にあります。

+ +

許可証のテストとプレビューの方法については、 Extension Workshop サイトの Test permission requests を参照してください。

キーには以下の 3 種類があります。

-

{{英語版章題("Host permissions")}}

- -

host パーミッション

+

host 権限

-

host パーミッションはマッチパターンとして指定します。それぞれのパターンによって、アドオンの要求する権限が有効となる URL の範囲を指定します。host パーミッションの例は "*://developer.mozilla.org/*" のようなものです。

+

host 権限はマッチパターンとして指定します。それぞれのパターンによって、アドオンの要求する権限が有効となる URL の範囲を指定します。host 権限の例は "*://developer.mozilla.org/*" のようなものです。

この権限には以下が含まれます。

-

Firefox では バージョン 56 以降で拡張機能は自動的に自身をオリジンとする host パーミッションを次の形式で取得します:

+

Firefox では バージョン 56 以降で拡張機能は自動的に自身をオリジンとする host 権限を次の形式で取得します。

moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
-

ここで 60a20a9b-1ad4-af49-9b6c-c64c98c37920 は拡張機能の内部 ID です。拡張機能は extension.getURL() を呼び出すことでこの URL を取得できます:

- -
browser.extension.getURL("");
-// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
+

ここで 60a20a9b-1ad4-af49-9b6c-c64c98c37920 は拡張機能の内部 ID です。拡張機能は {{webextAPIref("extension/getURL", "extension.getURL()")}} を呼び出すことでこの URL を取得できます。

-

{{英語版章題("API permissions")}}

+
browser.extension.getURL("");
+// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
+
-

API パーミッション

+

API 権限

-

API パーミッションには、拡張機能から使用したい WebExtension API の名前をキーワードとして指定します。

+

API 権限には、拡張機能から使用したい WebExtension API の名前をキーワードとして指定します。

現時点で使用できるキーワードは以下の通りです。

- +
+
-

ほとんどの場合、パーミッションはその API へのアクセス権を付与するだけですが、以下のような例外があります。

+

ほとんどの場合、権限はその API へのアクセス権を付与するだけですが、以下のような例外があります。

-

{{英語版章題("activeTab permission")}}

- -

activeTab パーミッション

+

activeTab 権限

-

このパーミッションは "activeTab" と指定されます。拡張機能が activeTab パーミッションを持つなら、ユーザーが拡張機能と相互作用する時に、拡張機能はアクティブなタブ限定の特別な権限が許可されます。

+

この権限は "activeTab" と指定されます。拡張機能が activeTab 権限を持つなら、ユーザーが拡張機能と相互作用する時に、拡張機能はアクティブなタブ限定の特別な権限が許可されます。

-

"ユーザーの相互作用" とは次のようなものです:

+

"ユーザーの相互作用" とは次のようなものです。

-

特別な権限とは:

+

特別な権限とは以下の通りです。

-

このパーミッションの意図は、拡張機能によくあるユースケースを、強力すぎるパーミッションを与えずに実行できるようにすることです。多くの拡張機能は「ユーザーが希望したら現在のページで何かをする」ことを希望しています。例えば、ユーザーがブラウザーアクションをクリックした時に現在のページでスクリプトを実行する拡張機能を考えます。activeTab パーミッションがない場合、拡張機能は <all_urls> の host パーミッションを要求する必要があります。しかし、これは拡張機能に必要以上の力を与えています: アクティブなタブで単にユーザーアクションに応答する代わりに、いかなるタブで、いかなるタイミングで、スクリプトを実行できます。

+

この権限の意図は、拡張機能によくあるユースケースを、強力すぎる権限を与えずに実行できるようにすることです。多くの拡張機能は「ユーザーが希望したら現在のページで何かをする」ことを希望しています。

-

{{英語版章題("Clipboard access")}}

+

例えば、ユーザーがブラウザーアクションをクリックした時に現在のページでスクリプトを実行する拡張機能を考えます。activeTab 権限がない場合、拡張機能は <all_urls> の host 権限を要求する必要があります。しかし、これは拡張機能に必要以上の力を与えています。アクティブなタブで単にユーザーアクションに応答する代わりに、任意のタブで、任意の時に、スクリプトを実行できます。

-

クリップボードのアクセス

+
+

注: ユーザー操作 (例:クリック) が発生したときに存在していたタブ/データにのみアクセスできます。アクティブなタブが移動すると (例:読み込みの終了やその他のイベントにより)、権限はそのタブへのアクセスを許可しなくなります。

+
-

拡張機能にクリップボードとやりとりできるようにする、2つの権限があります:

+

通常、 activeTab が付与されるタブは、 1 つのケースを除いて、単に現在アクティブなタブです。 {{webextAPIref("menus")}} API では、ユーザーがタブをコンテキストクリックしたときに表示されるメニュー項目を作成することができます (つまり、ユーザーがあるタブから別のタブに切り替えることができるタブトリップの要素)。

- +

ユーザーがこのような項目をクリックした場合、ユーザーがクリックしたタブが現在のアクティブなタブでなくても、activeTab 権限が付与されます (Firefox 63 以降、{{bug(1446956)}})。

+ +

クリップボードのアクセス

+ +

拡張機能にクリップボードとやりとりできるようにする、 2 つの権限があります。

+ +
+
clipboardWrite
+
{{DOMxRef("Clipboard.write()")}}, {{DOMxRef("Clipboard.writeText()")}}, document.execCommand("copy"), document.execCommand("cut") を用いたクリップボードへの書き込み
+
clipboardRead
+
{{DOMxRef("Clipboard.read()")}}, {{DOMxRef("Clipboard.readText()")}}, document.execCommand("paste") を用いたクリップボードからの読み込み
+

これについての詳細はクリップボードと相互作用するを見てください。

-

Unlimited storage

+

Unlimited storage

-

unlimitedStorage パーミッションは:

+

unlimitedStorage 権限は以下の通りです。

-

{{英語版章題("Example")}}

- -

+

-
 "permissions": ["*://developer.mozilla.org/*"]
+
 "permissions": ["*://developer.mozilla.org/*"]
-

これは developer.mozilla.org ドメイン配下のページにアクセスする権限を要求しています。

+

これは developer.mozilla.org ドメイン配下のページにアクセスする権限を要求しています。

-
  "permissions": ["tabs"]
+
  "permissions": ["tabs"]

tabs API を使用する権限を要求しています。

-
  "permissions": ["*://developer.mozilla.org/*", "tabs"]
+
  "permissions": ["*://developer.mozilla.org/*", "tabs"]

上記の権限を両方ともに要求しています。

-

ブラウザー実装状況

- - +

ブラウザーの互換性

{{Compat("webextensions.manifest.permissions")}}

-- cgit v1.2.3-54-g00ecf