From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../webextensions/api/alarms/alarm/index.html | 84 ++++++ .../webextensions/api/alarms/clear/index.html | 92 ++++++ .../webextensions/api/alarms/clearall/index.html | 89 ++++++ .../webextensions/api/alarms/create/index.html | 125 ++++++++ .../webextensions/api/alarms/get/index.html | 92 ++++++ .../webextensions/api/alarms/getall/index.html | 73 +++++ .../add-ons/webextensions/api/alarms/index.html | 50 ++++ .../webextensions/api/alarms/onalarm/index.html | 105 +++++++ .../api/bookmarks/bookmarktreenode/index.html | 91 ++++++ .../api/bookmarks/bookmarktreenodetype/index.html | 39 +++ .../bookmarktreenodeunmodifiable/index.html | 74 +++++ .../webextensions/api/bookmarks/create/index.html | 98 +++++++ .../api/bookmarks/createdetails/index.html | 81 ++++++ .../webextensions/api/bookmarks/export/index.html | 114 ++++++++ .../webextensions/api/bookmarks/get/index.html | 102 +++++++ .../api/bookmarks/getchildren/index.html | 126 ++++++++ .../api/bookmarks/getrecent/index.html | 97 +++++++ .../api/bookmarks/getsubtree/index.html | 125 ++++++++ .../webextensions/api/bookmarks/gettree/index.html | 117 ++++++++ .../webextensions/api/bookmarks/import/index.html | 114 ++++++++ .../add-ons/webextensions/api/bookmarks/index.html | 130 +++++++++ .../webextensions/api/bookmarks/move/index.html | 107 +++++++ .../api/bookmarks/onchanged/index.html | 138 +++++++++ .../api/bookmarks/onchildrenreordered/index.html | 130 +++++++++ .../api/bookmarks/oncreated/index.html | 104 +++++++ .../api/bookmarks/onimportbegan/index.html | 110 +++++++ .../api/bookmarks/onimportended/index.html | 110 +++++++ .../webextensions/api/bookmarks/onmoved/index.html | 139 +++++++++ .../api/bookmarks/onremoved/index.html | 135 +++++++++ .../webextensions/api/bookmarks/remove/index.html | 96 +++++++ .../api/bookmarks/removetree/index.html | 101 +++++++ .../webextensions/api/bookmarks/search/index.html | 135 +++++++++ .../webextensions/api/bookmarks/update/index.html | 117 ++++++++ .../api/browseraction/colorarray/index.html | 67 +++++ .../api/browseraction/disable/index.html | 87 ++++++ .../webextensions/api/browseraction/index.html | 129 +++++++++ .../api/browseraction/onclicked/index.html | 102 +++++++ .../webextensions/api/browsersettings/index.html | 49 ++++ .../browsersettings/newtabpageoverride/index.html | 27 ++ .../webextensions/api/browsingdata/index.html | 127 +++++++++ .../api/browsingdata/removecache/index.html | 100 +++++++ .../add-ons/webextensions/api/clipboard/index.html | 39 +++ .../api/clipboard/setimagedata/index.html | 72 +++++ .../add-ons/webextensions/api/commands/index.html | 84 ++++++ .../webextensions/api/contentscripts/index.html | 47 +++ .../api/contentscripts/register/index.html | 107 +++++++ .../api/contextualidentities/index.html | 63 ++++ .../webextensions/api/cookies/cookie/index.html | 111 ++++++++ .../add-ons/webextensions/api/cookies/index.html | 143 ++++++++++ .../api/devtools.inspectedwindow/eval/index.html | 211 ++++++++++++++ .../api/devtools.inspectedwindow/index.html | 79 +++++ .../api/devtools.inspectedwindow/tabid/index.html | 77 +++++ .../webextensions/api/devtools.network/index.html | 74 +++++ .../webextensions/api/devtools.panels/index.html | 105 +++++++ .../api/downloads/download/index.html | 127 +++++++++ .../add-ons/webextensions/api/downloads/index.html | 134 +++++++++ .../add-ons/webextensions/api/events/index.html | 74 +++++ .../add-ons/webextensions/api/extension/index.html | 105 +++++++ .../api/extensiontypes/imagedetails/index.html | 75 +++++ .../webextensions/api/extensiontypes/index.html | 76 +++++ .../api/extensiontypes/runat/index.html | 76 +++++ .../add-ons/webextensions/api/find/find/index.html | 298 +++++++++++++++++++ .../add-ons/webextensions/api/find/index.html | 32 +++ .../api/history/historyitem/index.html | 83 ++++++ .../add-ons/webextensions/api/history/index.html | 132 +++++++++ .../api/i18n/detectlanguage/index.html | 115 ++++++++ .../api/i18n/getacceptlanguages/index.html | 92 ++++++ .../webextensions/api/i18n/getmessage/index.html | 119 ++++++++ .../api/i18n/getuilanguage/index.html | 84 ++++++ .../add-ons/webextensions/api/i18n/index.html | 94 ++++++ .../webextensions/api/i18n/languagecode/index.html | 68 +++++ .../locale-specific_message_reference/index.html | 127 +++++++++ .../api/identity/getredirecturl/index.html | 55 ++++ .../add-ons/webextensions/api/identity/index.html | 106 +++++++ .../add-ons/webextensions/api/idle/index.html | 88 ++++++ .../mozilla/add-ons/webextensions/api/index.html | 55 ++++ .../webextensions/api/management/index.html | 112 ++++++++ .../add-ons/webextensions/api/menus/index.html | 197 +++++++++++++ .../webextensions/api/menus/onclicked/index.html | 108 +++++++ .../api/notifications/create/index.html | 139 +++++++++ .../webextensions/api/notifications/index.html | 66 +++++ .../add-ons/webextensions/api/omnibox/index.html | 70 +++++ .../webextensions/api/pageaction/index.html | 106 +++++++ .../api/pageaction/onclicked/index.html | 104 +++++++ .../webextensions/api/permissions/index.html | 89 ++++++ .../add-ons/webextensions/api/pkcs11/index.html | 40 +++ .../add-ons/webextensions/api/privacy/index.html | 70 +++++ .../add-ons/webextensions/api/proxy/index.html | 150 ++++++++++ .../add-ons/webextensions/api/runtime/index.html | 167 +++++++++++ .../api/runtime/messagesender/index.html | 86 ++++++ .../webextensions/api/runtime/onmessage/index.html | 317 +++++++++++++++++++++ .../api/runtime/openoptionspage/index.html | 96 +++++++ .../api/runtime/sendmessage/index.html | 167 +++++++++++ .../add-ons/webextensions/api/sessions/index.html | 134 +++++++++ .../webextensions/api/sidebaraction/index.html | 98 +++++++ .../add-ons/webextensions/api/storage/index.html | 109 +++++++ .../webextensions/api/storage/local/index.html | 84 ++++++ .../api/storage/storagearea/clear/index.html | 62 ++++ .../api/storage/storagearea/get/index.html | 133 +++++++++ .../storage/storagearea/getbytesinuse/index.html | 53 ++++ .../api/storage/storagearea/index.html | 73 +++++ .../api/storage/storagearea/remove/index.html | 70 +++++ .../api/storage/storagearea/set/index.html | 105 +++++++ .../api/storage/storagechange/index.html | 79 +++++ .../webextensions/api/storage/sync/index.html | 87 ++++++ .../api/tabs/capturevisibletab/index.html | 105 +++++++ .../webextensions/api/tabs/create/index.html | 131 +++++++++ .../webextensions/api/tabs/duplicate/index.html | 98 +++++++ .../api/tabs/executescript/index.html | 176 ++++++++++++ .../add-ons/webextensions/api/tabs/get/index.html | 87 ++++++ .../add-ons/webextensions/api/tabs/index.html | 215 ++++++++++++++ .../webextensions/api/tabs/mutedinfo/index.html | 67 +++++ .../api/tabs/mutedinforeason/index.html | 67 +++++ .../webextensions/api/tabs/oncreated/index.html | 100 +++++++ .../webextensions/api/tabs/query/index.html | 216 ++++++++++++++ .../webextensions/api/tabs/remove/index.html | 102 +++++++ .../add-ons/webextensions/api/tabs/tab/index.html | 128 +++++++++ .../add-ons/webextensions/api/theme/index.html | 50 ++++ .../add-ons/webextensions/api/topsites/index.html | 79 +++++ .../add-ons/webextensions/api/types/index.html | 64 +++++ .../webextensions/api/webnavigation/index.html | 143 ++++++++++ .../webextensions/api/webrequest/index.html | 200 +++++++++++++ .../add-ons/webextensions/api/windows/index.html | 117 ++++++++ .../api/windows/windowstate/index.html | 73 +++++ .../api/windows/windowtype/index.html | 65 +++++ 125 files changed, 13009 insertions(+) create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/alarm/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/clear/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/clearall/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/create/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/get/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/getall/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/alarms/onalarm/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenode/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodetype/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodeunmodifiable/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/create/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/createdetails/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/export/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/get/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/getchildren/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/getrecent/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/getsubtree/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/gettree/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/import/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/move/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchanged/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchildrenreordered/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/oncreated/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportbegan/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportended/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onmoved/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/onremoved/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/remove/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/removetree/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/search/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/bookmarks/update/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browseraction/colorarray/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browseraction/disable/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browseraction/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browseraction/onclicked/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browsersettings/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browsersettings/newtabpageoverride/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browsingdata/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/clipboard/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/clipboard/setimagedata/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/commands/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/contextualidentities/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/cookies/cookie/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/cookies/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/devtools.network/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/devtools.panels/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/downloads/download/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/downloads/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/events/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/extension/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/extensiontypes/imagedetails/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/extensiontypes/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/extensiontypes/runat/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/find/find/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/find/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/history/historyitem/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/history/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/detectlanguage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/getacceptlanguages/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/getmessage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/getuilanguage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/languagecode/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/i18n/locale-specific_message_reference/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/identity/getredirecturl/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/identity/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/idle/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/management/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/menus/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/menus/onclicked/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/notifications/create/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/notifications/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/omnibox/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/pageaction/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/permissions/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/pkcs11/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/privacy/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/proxy/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/runtime/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/runtime/messagesender/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/runtime/openoptionspage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/sessions/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/sidebaraction/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/local/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/clear/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/get/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/getbytesinuse/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/remove/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/set/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/storagechange/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/storage/sync/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/capturevisibletab/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/create/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/duplicate/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/executescript/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/get/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinfo/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinforeason/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/oncreated/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/query/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/remove/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/tabs/tab/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/theme/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/topsites/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/types/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/webnavigation/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/webrequest/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/windows/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/windows/windowstate/index.html create mode 100644 files/ja/mozilla/add-ons/webextensions/api/windows/windowtype/index.html (limited to 'files/ja/mozilla/add-ons/webextensions/api') diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/alarm/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/alarm/index.html new file mode 100644 index 0000000000..0d57999f01 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/alarm/index.html @@ -0,0 +1,84 @@ +--- +title: alarms.Alarm +slug: Mozilla/Add-ons/WebExtensions/API/alarms/Alarm +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions + - alarm + - alarms +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/Alarm +--- +
{{AddonSidebar()}}
+ +

単一のアラームに関する情報を含みます。このオブジェクトは {{WebExtAPIRef('alarms.get()')}} や {{WebExtAPIRef('alarms.getAll()')}} の戻り値として返されます。また、{{WebExtAPIRef('alarms.onAlarm')}} リスナに渡されることもあります。

+ +

値の型

+ +

この値の型はオブジェクトであり、以下のプロパティを含みます。

+ +
+
name
+
string. アラームの名前(このアラームを生成した {{WebExtAPIRef('alarms.create()')}} の呼び出し時に渡された名前)を表します。
+
scheduledTime
+
double. 次にアラームが発火する時刻(1970 年 1 月 1 日からの経過ミリ秒)を表します。
+
periodInMinutes{{optional_inline}}
+
double. この値が null ではない場合、アラームが発火する周期を分単位で表します。
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatGeckoDesktop('45.0') }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
+

基本サポート

+
{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/clear/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/clear/index.html new file mode 100644 index 0000000000..e4ddafb425 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/clear/index.html @@ -0,0 +1,92 @@ +--- +title: alarms.clear() +slug: Mozilla/Add-ons/WebExtensions/API/alarms/clear +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - alarms + - clear +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/clear +--- +
{{AddonSidebar()}}
+ +

与えた名前に対応するアラームを解除します。

+ +

Syntax

+ +
browser.alarms.clear(
+  name,                        // 文字列
+  function(wasCleared) {...}   // 関数
+)
+
+ +

引数

+ +
+
name{{optional_inline}}
+
string. 解除したいアラームの名前を指定します。指定しなかった場合は空文字列 "" が用いられます。
+
callback{{optional_inline}}
+
function. この関数には以下の引数が渡されます。
+
+
+
wasCleared
+
boolean. アラームが解除された場合は true が、それ以外の場合は false が入ります。
+
+
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatGeckoDesktop('45.0') }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/clearall/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/clearall/index.html new file mode 100644 index 0000000000..889a71b697 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/clearall/index.html @@ -0,0 +1,89 @@ +--- +title: alarms.clearAll() +slug: Mozilla/Add-ons/WebExtensions/API/alarms/clearAll +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - alarms + - clearAll +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/clearAll +--- +
{{AddonSidebar()}}
+ +

予約されたアラームすべてを解除します。

+ +

構文

+ +
browser.alarms.clearAll(
+  function(wasCleared) {...}   // 関数
+)
+
+ +

引数

+ +
+
callback
+
function. この関数には以下の引数が渡ります。
+
+
+
wasCleared
+
boolean. アラームが解除された場合は true が、それ以外の場合は false が入ります。Chrome の場合は常に true が入ることに注意してください。
+
+
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatGeckoDesktop('45.0') }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/create/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/create/index.html new file mode 100644 index 0000000000..d95d778d6d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/create/index.html @@ -0,0 +1,125 @@ +--- +title: alarms.create() +slug: Mozilla/Add-ons/WebExtensions/API/alarms/create +tags: + - API + - Add-ons + - Create + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - alarms +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/create +--- +
{{AddonSidebar()}}
+ +

新しいアラームを生成します。

+ +

構文

+ +
browser.alarms.create(
+  name,              // 文字列
+  alarmInfo          // オブジェクト
+)
+
+ +

引数

+ +
+
name{{optional_inline}}
+
string. アラームの名前を指定します。デフォルト値は空の文字列です。
+
この値は {{WebExtAPIRef('alarms.get()')}} や {{WebExtAPIRef('alarms.clear()')}} で特定のアラームを参照する際に用います。また、{{WebExtAPIRef('alarms.onAlarm')}} のリスナ関数に渡すオブジェクト {{WebExtAPIRef('alarms.Alarm')}} のプロパティ name からも参照されます。
+
アラームの名前は常に固有です(スコープはアドオンごとに区切られます)。以前そのアドオンが作成したアラーム名に一致する文字列を name に与えた場合、既存のアラームは削除されて発火しなくなります。
+
alarmInfo{{optional_inline}}
+
+

object. アラームが最初に発火する時刻を指定する引数です。時刻の指定には絶対値(when プロパティ)か、アラーム設定時を基準とした時間(delayInMinutes プロパティ)のどちらかで指定します。アラームを周期的に発火させるには periodInMinutes プロパティも指定します。

+ +

Chrome の場合、パッケージ化された状態でアドオンが読み込まれると、アラームを 1 分に 1 回以上の頻度で呼び出すことはできません。ここでアドオンが delayInMinuteswhen に 1 未満の値を指定しようとすると、アラームは 1 分後に発火します。アドオンが periodInMinutes に 1 未満の値を指定した場合、アラームは 1 分おきに発火します。

+ +

alarmInfo オブジェクトで指定できるプロパティは以下の通りです。

+
+
+
+
when{{optional_inline}}
+
double. アラームが最初に発火する時刻を 1970 年 1 月 1 日からの経過ミリ秒 で指定します。現在までの経過ミリ秒は Date.now() で取得できます。when を指定した場合は delayInMinutes を指定しないでください。
+
delayInMinutes{{optional_inline}}
+
double. アラームが最初に発火する時刻を、アラーム設定時から何分後かで指定します。 delayInMinutes を指定した場合は when を指定しないでください。
+
periodInMinutes{{optional_inline}}
+
double. この値が指定された場合、アラームは最初の発火時刻から periodInMinutes の周期で繰り返し発火します。この値を指定したうえでwhendelayInMinutes の両方を省略した場合、最初にアラームが発火するのは periodInMinutes の時間が経過した後になります。periodInMinutes が指定されなければ、アラームは一度だけ発火します。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.alarms.create")}}

+ +

+ +

現在から相対的な時刻で一度限り発火するアラームを "" という名前で作成する例:

+ +
const delayInMinutes = 5;
+
+chrome.alarms.create({
+  delayInMinutes
+});
+ +

現在からの相対的な時刻から繰り返すアラームを "my-periodic-alarm" の名前で作成する例:

+ +
const delayInMinutes = 5;
+const periodInMinutes = 2;
+
+chrome.alarms.create("my-periodic-alarm", {
+  delayInMinutes,
+  periodInMinutes
+});
+ +

絶対的な時刻から繰り返すアラームを "my-periodic-alarm" の名前で作成する例:

+ +
const when = 1545696000;
+const periodInMinutes = 2;
+
+chrome.alarms.create("my-periodic-alarm", {
+  when,
+  periodInMinutes
+});
+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/get/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/get/index.html new file mode 100644 index 0000000000..500a3be7db --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/get/index.html @@ -0,0 +1,92 @@ +--- +title: alarms.get() +slug: Mozilla/Add-ons/WebExtensions/API/alarms/get +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - alarms + - get +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/get +--- +
{{AddonSidebar()}}
+ +

与えた名前に対応するアラームを取得します。取得したアラームは、コールバック関数に渡す {{WebExtAPIRef('alarms.Alarm')}} オブジェクトとして用いることがあります。

+ +

構文

+ +
browser.alarms.get(
+  name,                   // 文字列
+  function(alarm) {...}   // 関数
+)
+
+ +

引数

+ +
+
name{{optional_inline}}
+
string. 取得したいアラームの名前を指定します。指定しなかった場合は空文字列 "" が用いられます。
+
callback
+
function. この関数には以下の引数が渡ります。
+
+
+
alarm
+
{{WebExtAPIRef('alarms.Alarm')}}. 名前が name にマッチするアラームが入ります。マッチするアラームがなかった場合、undefined が入ります。
+
+
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatGeckoDesktop('45.0') }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/getall/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/getall/index.html new file mode 100644 index 0000000000..a7d8a3759b --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/getall/index.html @@ -0,0 +1,73 @@ +--- +title: alarms.getAll() +slug: Mozilla/Add-ons/WebExtensions/API/alarms/getAll +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - alarms + - getAll +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/getAll +--- +
{{AddonSidebar()}}
+ +

予約されたアラームすべてを取得します。取得されたアラームは {{WebExtAPIRef('alarms.Alarm')}} オブジェクトの配列としてコールバック関数に渡されます。

+ +

構文

+ +
browser.alarms.getAll(
+  function(array) {...}   // 関数
+)
+
+ +

引数

+ +
+
callback
+
function. この関数には以下の引数が渡ります。
+
+
+
alarms
+
予約されたアラームすべてを含む {{WebExtAPIRef('alarms.Alarm')}} の配列です。予約されたアラームがない場合は空の配列となります。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.alarms.getAll")}}

+ +

+ +

コールバックを用いた例:

+ +
function gotAll(alarms) {
+  for (var alarm of alarms) {
+    console.log(alarm.name);
+  }
+}
+
+chrome.alarms.getAll(gotAll);
+ +

Promise を用いた例:

+ +
function gotAll(alarms) {
+  for (var alarm of alarms) {
+    console.log(alarm.name);
+  }
+}
+
+var getAlarms = browser.alarms.getAll();
+getAlarms.then(gotAll);
+ +

{{WebExtExamples}}

+ +
+

謝辞

+ +

この API はChromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/index.html new file mode 100644 index 0000000000..3f37d24473 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/index.html @@ -0,0 +1,50 @@ +--- +title: alarms +slug: Mozilla/Add-ons/WebExtensions/API/alarms +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms +--- +
{{AddonSidebar}}
+ +

コードが動作するタイミングを予約します。この API は setTimeout()setInterval() と似ていますが、 alarms API はバックグラウンドで動作する点が異なります。

+ +

この API を利用するには "alarms" パーミッション が必要です。

+ +

関連する値の型

+ +
+
{{WebExtAPIRef("alarms.Alarm")}}
+
特定のアラームに関する情報が含まれます。
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("alarms.create()")}}
+
新しいアラームを生成します。
+
{{WebExtAPIRef("alarms.get()")}}
+
与えた名前に対応するアラームを取得します。
+
{{WebExtAPIRef("alarms.getAll()")}}
+
予約されたアラームすべてを取得します。
+
{{WebExtAPIRef("alarms.clear()")}}
+
与えた名前に対応するアラームを解除します。
+
{{WebExtAPIRef("alarms.clearAll()")}}
+
予約されたアラームすべてを解除します。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("alarms.onAlarm")}}
+
アラームが動作した際に発火します。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.alarms")}} {{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/alarms/onalarm/index.html b/files/ja/mozilla/add-ons/webextensions/api/alarms/onalarm/index.html new file mode 100644 index 0000000000..fec4fd491a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/alarms/onalarm/index.html @@ -0,0 +1,105 @@ +--- +title: alarms.onAlarm +slug: Mozilla/Add-ons/WebExtensions/API/alarms/onAlarm +tags: + - API + - Add-ons + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - alarms + - onAlarm +translation_of: Mozilla/Add-ons/WebExtensions/API/alarms/onAlarm +--- +
{{AddonSidebar()}}
+ +

アドオンによってアラームが動作した際に発火します。

+ +

構文

+ +
browser.alarms.onAlarm.addListener(function(
+  alarm      // Alarm
+) {...})
+browser.alarms.onAlarm.removeListener(listener)
+browser.alarms.onAlarm.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

このイベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

+ +
+
alarm
+
発火するアラーム {{WebExtAPIRef('alarms.Alarm')}} が入ります。発火したアラームを判別するには Alarm.name が利用できます。
+
+
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatGeckoDesktop('45.0') }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.alarms API に基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenode/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenode/index.html new file mode 100644 index 0000000000..a6db52f663 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenode/index.html @@ -0,0 +1,91 @@ +--- +title: bookmarks.BookmarkTreeNode +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNode +tags: + - API + - Add-ons + - BookmarkTreeNode + - Bookmarks + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNode +--- +
{{AddonSidebar()}}
+ +

bookmarks.BookmarkTreeNode 型のオブジェクトは、ブックマークツリー上のノード(ブックマーク / フォルダ)を表現するものです。子ノードは親フォルダの中で index に従って順序付けされます。

+ +

値の型

+ +

以下のプロパティを含む {{jsxref("object")}} です。

+ +
+
id
+
そのノードを一意に識別する {{jsxref("string")}} です。この ID はユーザのプロファイル内で固有であり、ブラウザを再起動した後も有効です。
+
parentId {{optional_inline}}
+
親フォルダの ID を表す {{jsxref("string")}} です。ルートノードの場合は省略されます。
+
index {{optional_inline}}
+
親フォルダの中におけるノードの位置を表す 0 以上の {{jsxref("number")}} です。0 は先頭の要素を意味します。
+
url {{optional_inline}}
+
ブックマークの URL を表す {{jsxref("string")}} です。フォルダの場合は省略されます。
+
title
+
ブックマークリストやメニューにノードが表示される際のテキストを表す {{jsxref("string")}} です。
+
dateAdded {{optional_inline}}
+
このノードが生成された時刻を 1970 年 1 月 1 日からの経過ミリ秒 で表す {{jsxref("number")}} です。
+
dateGroupModified {{optional_inline}}
+
その内容の最終変更時刻を 1970 年 1 月 1 日からの経過ミリ秒 で表す {{jsxref("number")}} です。
+
unmodifiable {{optional_inline}}
+
{{WebExtAPIRef('bookmarks.BookmarkTreeNodeUnmodifiable')}} 型で表現される {{jsxref("string")}} です。このノードが変更不可である理由を表します。変更可能な場合には省略されます。
+
children {{optional_inline}}
+
各要素がノードの子要素を表す、{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} の {{jsxref("array")}} です。リストの要素は UI に表示されているのと同じ順序で並びます。フォルダの場合は省略されます。
+
+ +
+

現在、ブックマークリストのセパレータをこのオブジェクトで表すことはできません。

+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.BookmarkTreeNode", 10)}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodetype/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodetype/index.html new file mode 100644 index 0000000000..8a87f614ea --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodetype/index.html @@ -0,0 +1,39 @@ +--- +title: bookmarks.BookmarkTreeNodeType +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeType +tags: + - API + - Add-ons + - BookmarkTreeNodeType + - Bookmarks + - Extensions + - Property + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeType +--- +
{{AddonSidebar()}}
+ +

bookmarks.BookmarkTreeNodeType 型は、ブックマークツリーのノードがブックマーク、フォルダーまたはセパレーターであるかどうかを示すために使用されます。

+ +

+ +

bookmarks.BookmarkTreeNodeType は以下の 3 つのうちいずれかの値を取りうる {{jsxref("string")}} です。

+ + + +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.bookmarks.BookmarkTreeNodeType", 10)}}

+ + + +

{{WebExtExamples}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodeunmodifiable/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodeunmodifiable/index.html new file mode 100644 index 0000000000..2d8575e341 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/bookmarktreenodeunmodifiable/index.html @@ -0,0 +1,74 @@ +--- +title: bookmarks.BookmarkTreeNodeUnmodifiable +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeUnmodifiable +tags: + - API + - Add-ons + - BookmarkTreeNodeUnmodifiable + - Bookmarks + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeUnmodifiable +--- +

{{AddonSidebar()}}

+ +

bookmarks.BookmarkTreeNodeUnmodifiable 型は、ブックマークツリー上のノード(ブックマーク / フォルダー)が変更不可な理由を表すものです。この型は、ブックマークノードの {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "bookmarks.BookmarkTreeNode.unmodifiable", "unmodifiable")}} プロパティで使用されます。

+ +

値の型

+ +

この値は {{jsxref("string")}} 型であり、現在取りうる値は "managed" のみです。すなわち、システム管理者(ペアレンタルコントロールが有効な場合は保護者)がこのブックマークノードを設定したことを意味します。

+ +

ブラウザー実装状況

+ + + + + +

{{Compat("webextensions.api.bookmarks.BookmarkTreeNodeUnmodifiable")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/create/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/create/index.html new file mode 100644 index 0000000000..1e4a2c36fe --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/create/index.html @@ -0,0 +1,98 @@ +--- +title: bookmarks.create() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/create +tags: + - API + - Add-ons + - Bookmarks + - Create + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/create +--- +
{{AddonSidebar()}}
+ +

bookmarks.create() は、parentId で指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} の配下に、ブックマークやフォルダを作成するメソッドです。フォルダを作成する場合は、{{WebExtAPIRef("bookmarks.CreateDetails", "CreateDetails", "url")}} の引数を省略するか空にします。

+ +

構文

+ +
browser.bookmarks.create(
+  bookmark, // CreateDetails
+  callback  // 関数(省略可)
+)
+
+ +

引数

+ +
+
bookmark
+
{{WebExtAPIRef('bookmarks.CreateDetails')}}
+
callback{{optional_inline}}
+
ブックマークが新しく作成された際に呼び出される {{jsxref("function")}} です。この関数は以下の引数を 1 つ受け取ります。
+
+
+
result
+
新しく作成されたブックマークノードを表す {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}}
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.create")}}

+ +

使用例

+ +

以下の例は、このページのブックマークをデフォルトのフォルダ(Firefox は「未分類のブックマーク」、Chrome は「その他のブックマーク」)に作成するものです。

+ +
function onBookmarkAdded(bookmarkItem) {
+  console.log("Bookmark added with ID: " + bookmarkItem.id);
+}
+
+chrome.bookmarks.create({
+  title: "bookmarks.create() on MDN",
+  url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create"
+}, onBookmarkAdded);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/createdetails/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/createdetails/index.html new file mode 100644 index 0000000000..b7463079da --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/createdetails/index.html @@ -0,0 +1,81 @@ +--- +title: bookmarks.CreateDetails +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/CreateDetails +tags: + - API + - Add-ons + - Bookmarks + - CreateDetails + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/CreateDetails +--- +

{{AddonSidebar()}}

+ +

CreateDetails 型は、新しいブックマークやフォルダのプロパティを表すためのオブジェクト型です。{{WebExtAPIRef("bookmarks.create()")}} メソッドの呼び出し時に渡します。

+ +
+

現在、ブックマークリストのセパレータをこのオブジェクト型で表すことはできません。

+
+ +

値の型

+ +

以下のプロパティを含む {{jsxref("object")}} です。

+ +
+
parentId{{optional_inline}}
+
新しいブックマーク / フォルダの親フォルダを指定する {{jsxref("string")}} です。デフォルト値はブラウザによって異なり、Chrome の場合は「その他のブックマーク」、Firefox の場合は「未分類のブックマーク」です。
+
index{{optional_inline}}
+
親要素の配下における、新しいブックマーク / フォルダの位置を指定する {{jsxref("number")}} です。値が 0 の場合、リストの先頭に置かれます。
+
title{{optional_inline}}
+
作成するブックマークのタイトルやフォルダの名前を指定する {{jsxref("string")}} です。値を省略した場合、タイトルは "" になります。
+
url{{optional_inline}}
+
ブックマークの URL を指定する {{jsxref("string")}} です。値を省略するか null を指定した場合、ブックマークではなくフォルダが作成されます。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.CreateDetails", 10)}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/export/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/export/index.html new file mode 100644 index 0000000000..381e471807 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/export/index.html @@ -0,0 +1,114 @@ +--- +title: bookmarks.export() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/export +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - export +translation_of: Archive/Add-ons/bookmarks.export +--- +

{{AddonSidebar()}}

+ +

ブックマークを HTML ブックマークファイルにエクスポートします。

+ +

構文

+ +
browser.bookmarks.export(
+  function() {...} // 関数(省略可)
+)
+
+ +

Parameters

+ +
+
callback{{optional_inline}}
+
function.
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatNo() }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/get/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/get/index.html new file mode 100644 index 0000000000..a3d5245abc --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/get/index.html @@ -0,0 +1,102 @@ +--- +title: bookmarks.get() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/get +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - get +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/get +--- +
{{AddonSidebar()}}
+ +

bookmarks.get() は、指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} の ID(または ID の配列)にマッチするノードを取得するメソッドです。

+ +

構文

+ +
browser.bookmarks.get(
+  idOrIdList, // 文字列または文字列の配列
+  callback    // 関数
+)
+
+ +

引数

+ +
+
idOrIdList
+
取得したい {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} オブジェクトの ID を指定した {{jsxref("string")}} または {{jsxref("string")}} の {[jsxref("array")}} です。
+
callback
+
ノードが取得された際に実行される {{jsxref("function")}} です。この関数には以下の引数が渡ります。
+
+
+
results
+
各要素が {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} である、マッチしたノードの {{jsxref("array")}} です。セパレータは結果の戻り値に含まれません。ノードが見つからなかった場合の resultsundefined となり、{{WebExtAPIRef("runtime.lastError")}} がセットされます。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.get")}}

+ +

使用例

+ +

以下の例は、特定の ID を持つブックマークが存在するかどうかを確認するものです。

+ +
function onGot(bookmarkItems) {
+  if (bookmarkItems) {
+    console.log("bookmark exists!");
+  } else {
+    console.log("bookmark does not exist!");
+    console.log("lasterror: " + chrome.runtime.lastError);
+  }
+}
+
+function doesBookmarkExist(bookmarkId) {
+  browser.bookmarks.get(bookmarkId, onGot);
+}
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいて作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getchildren/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getchildren/index.html new file mode 100644 index 0000000000..6a489247c5 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getchildren/index.html @@ -0,0 +1,126 @@ +--- +title: bookmarks.getChildren() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/getChildren +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getChildren +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/getChildren +--- +

{{AddonSidebar()}}

+ +

bookmarks.getChildren() は、ブックマークフォルダの ID を {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} で指定し、その直下にあたる子要素をすべて取得します。

+ +

構文

+ +
browser.bookmarks.getChildren(
+  id,      // 文字列
+  callback // 関数
+)
+
+ +

Parameters

+ +
+
id
+
取得したい子要素を持つフォルダ ID を指定する {{jsxref("string")}} です。
+
callback
+
子ノードのリストが取得された際に実行される関数です。この関数には以下の引数が渡ります。
+
+
+
results
+
各要素が 1 つの子ノードを表す、{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} の {{jsxref("array")}} です。要素の順序は、UI に表示されているのと同じ順番です。現在、セパレータの有無は結果に含まれません。指定したノードに子要素が含まれていなかった場合、results は空配列となります。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.getChildren")}}

+ +

使用例

+ +

基本的な使い方

+ +
function gotChildren(children) {
+  console.log(children);
+}
+
+chrome.bookmarks.getChildren(bookmarkItemId, gotChildren);
+ +

指定したフォルダでブックマークを切替

+ +

以下の例は、フォルダを {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} で指定し、そのフォルダに新しいブックマークを作成するものです。ただし、既に同じ名前のブックマークがあった場合は、逆に既存のブックマークを削除することとします。このとき新しいブックマークは作成されません。

+ +
function toggleBookmark(folderNode, title, url) {
+  chrome.bookmarks.getChildren(folderNode.id, function(results) {
+    let node = results.find(function(el) {
+      return el.title === title;
+    });
+
+    // ブックマークが存在する場合は削除する
+    // そうでなければ新しく作成する
+
+    if (node !== undefined) {
+      chrome.bookmarks.remove(node.id);
+    } else {
+      chrome.bookmarks.create({
+        parentId: folderNode.id,
+        title: title,
+        url: url
+      });
+    }
+  });
+}
+ +

先の toggleBookmark() 関数は、folderNode で指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} の中に既に存在しているすべてのブックマークのリストを取得するため、最初に bookmarks.getChildren() を呼び出しています。

+ +

コールバックに指定された匿名関数には results という引数が 1 つ渡されます。この引数は、フォルダの直下にある子要素をすべて含んだ配列です。まず初めに、与えられたタイトルを持つノードがフォルダに存在するかどうかを調べます。ここでは {{jsxref("Array.find()")}} メソッドを使い、タイトルが等しいかどうかをコールバック内で判定しています。

+ +

マッチするノードがあった場合(すなわち、nodeundefined ではない場合)、指定した title を持つブックマークが既に存在していたことが分かったので、既存のブックマークを削除するために {{WebExtAPIRef("bookmarks.remove()")}} を呼び出します。

+ +

そうではなかった場合、新しいブックマークを作成するために {{WebExtAPIRef("bookmarks.create()")}} が呼び出します。この際、引数 folderNode で与えられていたフォルダ ID を新しい親フォルダの ID に指定し、合わせて titleurl も指定します。

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getrecent/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getrecent/index.html new file mode 100644 index 0000000000..3900d1888f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getrecent/index.html @@ -0,0 +1,97 @@ +--- +title: bookmarks.getRecent() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/getRecent +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getRecent +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/getRecent +--- +

{{AddonSidebar()}}

+ +

bookmarks.getRecent() は、最近に追加されたブックマークを指定した最大個数まで取得し、{{WebExtAPIRef('bookmarks.BookmarkTreeNode', 'BookmarkTreeNode')}} オブジェクトの配列としてコールバック関数に渡します。

+ +

構文

+ +
browser.bookmarks.getRecent(
+  numberOfItems, // 整数
+  callback       // 関数
+)
+
+ +

引数

+ +
+
numberOfItems
+
取得する要素の最大個数を指定する整数です。最近追加された要素のうち、ここで指定した個数までが戻り値のリストに含まれます。
+
callback
+
リストが取得された際に実行される関数です。この関数には以下の引数が渡ります。
+
+
+
results
+
各要素が 1 つのブックマークノードを表す {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトの {{jsxref("array")}}
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.getRecent")}}

+ +

使用例

+ +

以下の例は、直近に追加されたブックマークの URL を出力するものです。

+ +
function gotMostRecent(bookmarkItems) {
+  if (bookmarkItems.length) {
+    console.log(bookmarkItems[0].url);
+  }
+}
+
+chrome.bookmarks.getRecent(1, gotMostRecent);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいて作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getsubtree/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getsubtree/index.html new file mode 100644 index 0000000000..c13185cd5a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/getsubtree/index.html @@ -0,0 +1,125 @@ +--- +title: bookmarks.getSubTree() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getSubTree +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree +--- +

{{AddonSidebar()}}

+ +

bookmarks.getSubTree() は、ID を指定して {{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} を非同期に取得するメソッドです。

+ +

対象がフォルダの場合、children プロパティを再帰的にたどることで、すべての子要素にアクセスすることができます。

+ +

構文

+ +
browser.bookmarks.getSubTree(
+  id,      // 文字列
+  callback // 関数
+)
+
+ +

引数

+ +
+
id
+
取得したい部分木のルートノードに対応する ID を表す {{jsxref("string")}} です。
+
callback
+
リクエストしたノードが取得された際に呼び出される関数です。この関数には以下の引数が渡ります。
+
+
+
results
+
指定した ID に対応する {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトが 1 つ含まれた配列
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.getSubTree")}}

+ +

+ +

以下の例は、指定したノードの配下にある部分木を再帰的に出力するものです。

+ +
function makeIndent(indentLength) {
+  return ".".repeat(indentLength);
+}
+
+function logItems(bookmarkItem, indent) {
+  if (bookmarkItem.url) {
+    console.log(makeIndent(indent) + bookmarkItem.url);
+  } else {
+    console.log(makeIndent(indent) + "Folder");
+    indent++;
+  }
+  if (bookmarkItem.children) {
+    for (child of bookmarkItem.children) {
+      logItems(child, indent);
+    }
+  }
+  indent--;
+}
+
+function logSubTree(bookmarkItems) {
+  logItems(bookmarkItems[0], 0);
+}
+
+function handleClick() {
+  var subTreeID = "unfiled_____";
+  chrome.bookmarks.getSubTree(subTreeID, logSubTree);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ +

 

+ + + +

 

diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/gettree/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/gettree/index.html new file mode 100644 index 0000000000..b66987075d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/gettree/index.html @@ -0,0 +1,117 @@ +--- +title: bookmarks.getTree() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getTree +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree +--- +

{{AddonSidebar()}}

+ +

bookmarks.getTree() は、ブックマークツリーのルートを表した{{WebExtAPIRef("bookmarks.BookmarkTreeNode")}} オブジェクトの配列を返します。

+ +

構文

+ +
browser.bookmarks.getTree(
+  callback // 関数
+)
+
+ +

引数

+ +
+
callback
+
ルートに相当するノードが取得された際に実行される関数です。この関数には以下の引数が渡ります。
+
+
+
results
+
+

ルートノードを表す {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトが 1 つ含まれた配列

+
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.getTree")}}

+ +

+ +

以下の例は、ブックマークツリー全体を出力するものです。

+ +
function makeIndent(indentLength) {
+  return ".".repeat(indentLength);
+}
+
+function logItems(bookmarkItem, indent) {
+  if (bookmarkItem.url) {
+    console.log(makeIndent(indent) + bookmarkItem.url);
+  } else {
+    console.log(makeIndent(indent) + "Folder");
+    indent++;
+  }
+  if (bookmarkItem.children) {
+    for (child of bookmarkItem.children) {
+      logItems(child, indent);
+    }
+  }
+  indent--;
+}
+
+function logTree(bookmarkItems) {
+  logItems(bookmarkItems[0], 0);
+}
+
+function handleClick() {
+  chrome.bookmarks.getTree(logTree);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/import/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/import/index.html new file mode 100644 index 0000000000..758b72dbfa --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/import/index.html @@ -0,0 +1,114 @@ +--- +title: bookmarks.import() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/import +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - import +translation_of: Archive/Add-ons/bookmarks.import +--- +

{{AddonSidebar()}}

+ +

ブックマークを HTML ブックマークファイルからインポートします。

+ +

構文

+ +
browser.bookmarks.import(
+  function() {...} // 関数(省略可)
+)
+
+ +

引数

+ +
+
callback{{optional_inline}}
+
function.
+
+ +

ブラウザ実装状況

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + +
機能ChromeEdgeFirefox (Gecko)Opera
基本サポート{{ CompatVersionUnknown }}{{ CompatUnknown }}{{ CompatNo() }}{{ CompatOpera('33') }}
+
+ +
+ + + + + + + + + + + + + + + +
機能EdgeFirefox OSFirefox Mobile (Gecko)
基本サポート{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/index.html new file mode 100644 index 0000000000..c1c073c551 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/index.html @@ -0,0 +1,130 @@ +--- +title: bookmarks +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks +--- +

{{AddonSidebar}}

+ +

WebExtensions {{WebExtAPIRef("bookmarks")}} API を利用すると、拡張機能からブラウザーのブックマークシステムにアクセスしたり、操作することができます。ページをブックマークしたり、既存のブックマークを取得したり、ブックマークを編集・削除・整理することが可能です。

+ +

この API を使用する際は、拡張機能の manifest.json ファイルで "bookmarks" パーミッション を指定する必要があります。

+ +

拡張機能ではブックマークツリーのルートノードではブックマークを作成・編集・削除できません。それをしようとすると次のエラーになります: "The bookmark root cannot be modified"

+ +

関連する値の型

+ +
+
{{WebExtAPIRef("bookmarks.BookmarkTreeNode")}}
+
ブックマークツリー上のブックマークやフォルダーを表します。
+
{{WebExtAPIRef("bookmarks.BookmarkTreeNodeType")}}
+
ツリー内のノードがブックマークかフォルダーかセパレーターかを表す {{jsxref("string")}} の列挙型です。
+
{{WebExtAPIRef("bookmarks.BookmarkTreeNodeUnmodifiable")}}
+
ブックマークやフォルダーが変更不可である理由を表す {{jsxref("string")}} の列挙型です。
+
{{WebExtAPIRef("bookmarks.CreateDetails")}}
+
新しいブックマークを作成する際、{{WebExtAPIRef("bookmarks.create()")}} メソッドに渡す情報を含みます。
+
+ +

関数

+ +
+
{{WebExtAPIRef("bookmarks.create()")}}
+
ブックマークやフォルダーを作成します。
+
{{WebExtAPIRef("bookmarks.get()")}}
+
ブックマークの ID や ID の配列を指定し、1 つ以上の {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode(s)")}} を取得します。
+
{{WebExtAPIRef("bookmarks.getChildren()")}}
+
指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} の子要素を取得します。
+
{{WebExtAPIRef("bookmarks.getRecent()")}}
+
最近追加されたブックマークを取得します。
+
{{WebExtAPIRef("bookmarks.getSubTree()")}}
+
指定したノードを起点とする、ブックマークツリーの部分木を取得します。
+
{{WebExtAPIRef("bookmarks.getTree()")}}
+
ブックマークのツリー全体を {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} オブジェクトの配列として取得します。
+
{{WebExtAPIRef("bookmarks.move()")}}
+
指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} を所望の場所に移します。
+
{{WebExtAPIRef("bookmarks.remove()")}}
+
ノードの ID を指定し、ブックマークや空のブックマークフォルダーを削除します。
+
{{WebExtAPIRef("bookmarks.removeTree()")}}
+
ブックマークのフォルダーを再帰的に削除します。すなわち、フォルダーノードの ID を指定し、そのノードと子要素すべてを削除します。
+
{{WebExtAPIRef("bookmarks.search()")}}
+
与えた条件に一致する {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNodes")}} を検索します。
+
{{WebExtAPIRef("bookmarks.update()")}}
+
ブックマークの ID を指定し、ブックマークの URL やタイトル、またはフォルダーの名前を更新します。
+
+ +

Events

+ +
+
{{WebExtAPIRef("bookmarks.onCreated")}}
+
ブックマークやフォルダーが作成された際に発火します。
+
{{WebExtAPIRef("bookmarks.onRemoved")}}
+
ブックマークやフォルダーが削除された際に発火します。フォルダーが再帰的に削除された場合は、そのフォルダーに対して一回だけ発火し、フォルダーの中身については発火しません。
+
{{WebExtAPIRef("bookmarks.onChanged")}}
+
ブックマークやフォルダーが変更された際に発火します。現在は title と url の変更に対してのみ発火します。
+
{{WebExtAPIRef("bookmarks.onMoved")}}
+
異なる親フォルダーへ、または同じフォルダー内の異なる場所へブックマークやフォルダーが移された際に発火します。
+
{{WebExtAPIRef("bookmarks.onChildrenReordered")}}
+
UI で表示されている順序に伴って子フォルダーの順序も変更された際に発火します。{{WebExtAPIRef("bookmarks.move", "move()")}} の実行後には発火しません。
+
{{WebExtAPIRef("bookmarks.onImportBegan")}}
+
ブックマークのインポートが開始した際に発火します。パフォーマンスが重要である場合、イベントのオブザーバは {{WebExtAPIRef("bookmarks.onImportEnded")}} が発火するまで {{WebExtAPIRef("bookmarks.onCreated")}} を無視すべきでしょう。その場合であっても、オブザーバは他のイベントについては即座に処理すべきでしょう。
+
{{WebExtAPIRef("bookmarks.onImportEnded")}}
+
ブックマークのインポートが終了した際に発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.bookmarks")}}

+ + + +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/move/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/move/index.html new file mode 100644 index 0000000000..c164626551 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/move/index.html @@ -0,0 +1,107 @@ +--- +title: bookmarks.move() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/move +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/move +--- +

{{AddonSidebar()}}

+ +

bookmarks.move() は、指定した {{WebExtAPIRef("bookmarks.BookmarkTreeNode", "BookmarkTreeNode")}} をブックマークツリー内の所望の位置に移すメソッドです。このメソッドにより、ブックマークを新しいフォルダの中や、同じフォルダ内の別の場所に移動させることができます。

+ +

構文

+ +
browser.bookmarks.move(
+  id,          // 文字列
+  destination, // オブジェクト
+  callback     // 関数(省略可)
+)
+
+ +

引数

+ +
+
id
+
移動させるブックマーク / フォルダの ID を表す {{jsxref("string")}} です。
+
destination
+
ブックマークの移動先を表す {{jsxref("object")}} です。このオブジェクトには以下のプロパティが必ず 1 つ以上含まれます。
+
+
+
parentId {{optional_inline}}
+
移動先フォルダの ID を指定する {{jsxref("string")}} です。この値が省略された場合、現在と同じフォルダ内の新しい場所へ移動されます。
+
index {{optional_inline}}
+
移動先フォルダ内における位置を指定する 0 起点のインデックスです。値が 0 の場合、そのフォルダの先頭に移動されます。値が省略された場合、新しい親フォルダ内の最後に移動されます。
+
+
+
callback {{optional_inline}}
+
移動が終了した際に呼び出される {{jsxref("function")}} です。この関数は以下の引数を 1 つ受け取ります。
+
+
+
result
+
移動された新しいノードを表す {{WebExtAPIRef('bookmarks.BookmarkTreeNode', 'BookmarkTreeNode')}}
+
+ +

 

+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.move")}}

+ +

使用例

+ +

ブックマークを現在のフォルダの先頭へ移動

+ +

次の例は、既存のブックマークを現在のフォルダの先頭へ移動させるものです。移動後に必要な処理は特にないため、ここではコールバック無しで呼び出しています。

+ +
browser.bookmarks.move(bookmarkID, { index: 0 });
+ +

ブックマークを異なるフォルダへ移動

+ +

以下の例は、ID で指定したブックマークを、別の ID で指定したフォルダへ移動させる関数です。今回は、移動後に実行されるコールバック関数も指定しています。

+ +
function moveToFolder(bookmarkId, destinationId) {
+  browser.bookmarks.move(bookmarkId, { parentId: destinationId },
+                         function(updatedNode) {
+    /* ブックマークの移動後に行う処理 */
+  });
+}
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium chrome.bookmarks API に基づいています。また、このドキュメントbookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchanged/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchanged/index.html new file mode 100644 index 0000000000..bf6cf83ce7 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchanged/index.html @@ -0,0 +1,138 @@ +--- +title: bookmarks.onChanged +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onChanged +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onChanged +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onChanged +--- +
{{AddonSidebar()}}
+ +

以下の変更に対して発火します。

+ + + +

構文

+ +
browser.bookmarks.onChanged.addListener(function(
+  id,        // 文字列
+  changeInfo // オブジェクト
+) {...})
+browser.bookmarks.onChanged.removeListener(listener)
+browser.bookmarks.onChanged.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

+
+
+ +
+
+
+
id
+
変更を受けた要素の ID を表す {{jsxref("string")}}
+
+ +
+
changeInfo
+
変更に関する詳細を含んだ {{jsxref("object")}}
+
+
+
+ +

付随するオブジェクト

+ +

changeInfo

+ +
+
title
+
変更された要素のタイトルを表す {{jsxref("string")}}
+
url{{optional_inline}}
+
変更された要素の URL を表す {{jsxref("string")}}。要素がフォルダだった場合に値は入りません。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onChanged")}}

+ +

使用例

+ +
function handleChanged(id, changeInfo) {
+  console.log("Item: " + id + " changed");
+  console.log("Title: " + changeInfo.title);
+  console.log("Url: " + changeInfo.url);
+}
+
+function handleClick() {
+  chrome.bookmarks.onChanged.addListener(handleChanged);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchildrenreordered/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchildrenreordered/index.html new file mode 100644 index 0000000000..3d5b10eb91 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onchildrenreordered/index.html @@ -0,0 +1,130 @@ +--- +title: bookmarks.onChildrenReordered +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onChildrenReordered +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onChildrenReordered +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onChildrenReordered +--- +

{{AddonSidebar()}}

+ +

UI で表示されている順序に伴って子フォルダの順序も変更された際に発火します。{{WebExtAPIRef("bookmarks.move()")}} の実行後や、UI におけるドラッグの際には発火しません。

+ +

構文

+ +
browser.bookmarks.onChildrenReordered.addListener(function(
+  id,         // 文字列
+  reorderInfo // オブジェクト
+) {...})
+browser.bookmarks.onChildrenReordered.removeListener(listener)
+browser.bookmarks.onChildrenReordered.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

+
+
+ +
+
+
+
id
+
子要素の順序が変更されたフォルダの ID を表す {{jsxref("string")}} です。
+
+ +
+
reorderInfo
+
詳細情報を含んだ {{jsxref("object")}} です。
+
+
+
+ +

付随するオブジェクト

+ +

reorderInfo

+ +
+
childIds
+
{{jsxref("string")}} の {{jsxref("array")}} です。このフォルダに含まれるブックマーク要素すべての ID が含まれており、UI に表示されているのと同じ順番に並んでいます。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onChildrenReordered")}}

+ +

使用例

+ +
function handleChildrenReordered(id, reorderInfo) {
+  console.log("Item: " + id + " children reordered");
+  console.log("Children: " + reorderInfo.childIds);
+}
+
+function handleClick() {
+  chrome.bookmarks.onChildrenReordered.addListener(handleChildrenReordered);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License. に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/oncreated/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/oncreated/index.html new file mode 100644 index 0000000000..5c1eea40d5 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/oncreated/index.html @@ -0,0 +1,104 @@ +--- +title: bookmarks.onCreated +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onCreated +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onCreated +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onCreated +--- +
{{AddonSidebar()}}
+ +

ブックマークやフォルダが作成された際に発火します。

+ +

構文

+ +
browser.bookmarks.onCreated.addListener(function(
+  id,      // 文字列
+  bookmark // BookmarkTreeNode
+) {...})
+browser.bookmarks.onCreated.removeListener(listener)
+browser.bookmarks.onCreated.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される {{jsxref("function")}} です。この関数には以下の引数が渡ります。

+ +
+
id
+
string.
+
+ +
+
bookmark
+
{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}}.
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onCreated")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportbegan/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportbegan/index.html new file mode 100644 index 0000000000..6a11683646 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportbegan/index.html @@ -0,0 +1,110 @@ +--- +title: bookmarks.onImportBegan +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportBegan +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onImportBegan +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportBegan +--- +

{{AddonSidebar()}}

+ +

ブックマークのインポートが開始した際に発火します。

+ +

ブックマークをインポートしている間、{{WebExtAPIRef("bookmarks.onCreated", "onCreated")}} が何度も発火する場合があります。onCreated に紐づけるリスナ関数の処理が重い場合には、onImportBegan と {{WebExtAPIRef("bookmarks.onImportEnded", "onImportEnded")}} をリッスンし、onImportEnded  が発火するまでは onCreated を無視してください。他のイベントは通常通り処理できます。

+ +

構文

+ +
browser.bookmarks.onImportBegan.addListener(function() {...})
+browser.bookmarks.onImportBegan.removeListener(listener)
+browser.bookmarks.onImportBegan.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数に渡される引数はありません。

+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onImportBegan")}}

+ +

使用例

+ +
function handleImportBegan() {
+  console.log("Importing...");
+}
+
+function handleImportEnded() {
+  console.log("...finished.");
+}
+
+function handleClick() {
+  chrome.bookmarks.onImportBegan.addListener(handleImportBegan);
+  chrome.bookmarks.onImportEnded.addListener(handleImportEnded);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License. に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportended/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportended/index.html new file mode 100644 index 0000000000..4ecfe782cf --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onimportended/index.html @@ -0,0 +1,110 @@ +--- +title: bookmarks.onImportEnded +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportEnded +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onImportEnded +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportEnded +--- +

{{AddonSidebar()}}

+ +

ブックマークのインポートが終了した際に発火します。

+ +

{{WebExtAPIRef("bookmarks.onImportBegan")}} も参照してください。

+ +

構文

+ +
browser.bookmarks.onImportEnded.addListener(function() {...})
+browser.bookmarks.onImportEnded.removeListener(listener)
+browser.bookmarks.onImportEnded.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数に渡される引数はありません。

+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onImportEnded")}}

+ +

使用例

+ +
function handleImportBegan() {
+  console.log("Importing...");
+}
+
+function handleImportEnded() {
+  console.log("...finished.");
+}
+
+function handleClick() {
+  chrome.bookmarks.onImportBegan.addListener(handleImportBegan);
+  chrome.bookmarks.onImportEnded.addListener(handleImportEnded);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onmoved/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onmoved/index.html new file mode 100644 index 0000000000..6b14db985b --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onmoved/index.html @@ -0,0 +1,139 @@ +--- +title: bookmarks.onMoved +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onMoved +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onMoved +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onMoved +--- +

{{AddonSidebar()}}

+ +

ブックマークやフォルダが、異なる親フォルダやフォルダ内の別の場所へ移された際に発火します。

+ +

構文

+ +
browser.bookmarks.onMoved.addListener(function(
+  id,      // 文字列
+  moveInfo // オブジェクト
+) {...})
+browser.bookmarks.onMoved.removeListener(listener)
+browser.bookmarks.onMoved.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

+
+
+ +
+
+
+
id
+
移動した要素の ID を表す {{jsxref("string")}} です。
+
+ +
+
moveInfo
+
移動に関する詳細を含んだ {{jsxref("object")}} です。
+
+
+
+ +

付随するオブジェクト

+ +

moveInfo

+ +
+
parentId
+
新しい親フォルダを表す {{jsxref("string")}}
+
index
+
この要素が親から見て何番目にあるかを表す整数
+
oldParentId
+
移動前の親フォルダを表す {{jsxref("string")}}
+
oldIndex
+
移動前において、この要素が親から見て何番目にあったかを表す整数
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onMoved")}}

+ +

Examples

+ +
function handleMoved(id, moveInfo) {
+  console.log("Item: " + id + " moved");
+  console.log("Old index: " + moveInfo.oldIndex);
+  console.log("New index: " + moveInfo.index);
+  console.log("Old folder: " + moveInfo.oldParentId);
+  console.log("New folder: " + moveInfo.parentId);
+}
+
+function handleClick() {
+  chrome.bookmarks.onMoved.addListener(handleMoved);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge compatibility の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onremoved/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onremoved/index.html new file mode 100644 index 0000000000..abe7b7968a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/onremoved/index.html @@ -0,0 +1,135 @@ +--- +title: bookmarks.onRemoved +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/onRemoved +tags: + - API + - Add-ons + - Bookmarks + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onRemoved +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/onRemoved +--- +

{{AddonSidebar()}}

+ +

ブックマークやフォルダが削除された際に発火します。フォルダが再帰的に削除された場合は、そのフォルダに対して 1 回だけ発火し、そのフォルダの中身に関しては発火しません。

+ +

構文

+ +
browser.bookmarks.onRemoved.addListener(function(
+  id,        // 文字列
+  removeInfo // オブジェクト
+) {...})
+browser.bookmarks.onRemoved.removeListener(listener)
+browser.bookmarks.onRemoved.hasListener(listener)
+
+ +

このイベントには 3 つのメソッドが用意されています。

+ +
+
addListener(callback)
+
イベントリスナを追加します。
+
removeListener(listener)
+
イベントリスナを削除します。引数 listener には削除したいリスナを指定します。
+
hasListener(listener)
+
listener がイベントリスナとして登録されているか確認します。登録されていれば true を、それ以外の場合は false を返します。
+
+ +

addListener の構文

+ +

引数

+ +
+
callback
+
+

イベントが発火した際に呼び出される関数を指定します。この関数には以下の引数が渡ります。

+
+
+ +
+
+
+
id
+
削除された要素の ID を表す {{jsxref("string")}}
+
+ +
+
removeInfo
+
削除された要素の詳細を含んだ {{jsxref("object")}}
+
+
+
+ +

付随するオブジェクト

+ +

removeInfo

+ +
+
parentId
+
要素の親の ID を表す {{jsxref("string")}}
+
index
+
この要素が親からみて何番目にあるかを表す 0 以上の整数
+
node
+
削除された要素に関する詳細を含む {{WebExtAPIRef('bookmarks.BookmarkTreeNode')}}
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.onRemoved")}}

+ +

Examples

+ +
function handleRemoved(id, removeInfo) {
+  console.log("Item: " + id + " removed");
+  console.log("Title: " + removeInfo.node.title);
+  console.log("Url: " + removeInfo.node.url);
+}
+
+function handleClick() {
+  chrome.bookmarks.onRemoved.addListener(handleRemoved);
+}
+
+chrome.browserAction.onClicked.addListener(handleClick);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/remove/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/remove/index.html new file mode 100644 index 0000000000..a76c3f74bc --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/remove/index.html @@ -0,0 +1,96 @@ +--- +title: bookmarks.remove() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/remove +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - remove +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/remove +--- +

{{AddonSidebar()}}

+ +

bookmarks.remove() は、ブックマークや空のブックマークフォルダを削除するメソッドです。

+ +

ブックマークが見つからなかった、またはフォルダが空ではなかった場合には {{WebExtAPIRef("runtime.lastError")}} がセットされ、エラーの有無はコールバック内で確認できます。

+ +

構文

+ +
browser.bookmarks.remove(
+  id,      // 文字列
+  callback // 関数(省略可)
+)
+
+ +

引数

+ +
+
id
+
削除したいブックマーク / 空フォルダの ID を指定する {{jsxref("string")}} です。
+
callback{{optional_inline}}
+
ブックマークやフォルダが削除された際に実行される関数です。この関数に渡される引数はありません。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.remove")}}

+ +

使用例

+ +

以下の例はブックマークを削除するものです。

+ +
function onRemoved() {
+  if (chrome.runtime.lastError) {
+    console.log(chrome.runtime.lastError);
+  } else {
+    console.log("bookmark item removed!");
+  }
+
+}
+
+chrome.bookmarks.remove(bookmarkItemId");
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/removetree/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/removetree/index.html new file mode 100644 index 0000000000..03378dfc79 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/removetree/index.html @@ -0,0 +1,101 @@ +--- +title: bookmarks.removeTree() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/removeTree +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - removeTree +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/removeTree +--- +

{{AddonSidebar()}}

+ +

bookmarks.removeTree() は、ブックマークフォルダやその要素を再帰的に削除するメソッドです。

+ +

ブックマークが見つからなかった場合は {{WebExtAPIRef("runtime.lastError")}} がセットされ、エラーの有無はコールバック内で確認できます。

+ +

構文

+ +
browser.bookmarks.removeTree(
+  id,      // 文字列
+  callback // 関数(省略可)
+)
+
+ +

引数

+ +
+
id
+
子要素とともに削除されるフォルダノードの ID を表す {{jsxref("string")}} です。
+
callback{{optional_inline}}
+
ノードが削除された際に実行される関数です。この関数に渡される引数はありません。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.removeTree")}}

+ +

使用例

+ +

以下の例は、"MDN" という名前のフォルダを探し、それ自身とその子要素をすべて削除するものです。

+ +
function onRemoved() {
+  if (chrome.runtime.lastError) {
+    console.log(chrome.runtime.lastError);
+  } else {
+    console.log("bookmark item removed!");
+  }
+}
+
+function removeMDN(searchResults) {
+  if (searchResults.length) {
+    chrome.bookmarks.removeTree(searchResults[0].id, onRemoved);
+  }
+}
+
+chrome.bookmarks.search({ title: "MDN" }, removeMDN);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/search/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/search/index.html new file mode 100644 index 0000000000..4532e33fdd --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/search/index.html @@ -0,0 +1,135 @@ +--- +title: bookmarks.search() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/search +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - Search + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/search +--- +
{{AddonSidebar()}}
+ +

bookmarks.search() 関数は、指定したクエリにマッチするブックマークを検索するものです。マッチしたブックマークは、{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトの配列として、指定されたコールバック関数の引数に渡されます。

+ +

入力引数の値や型が不正だった場合、この関数は例外を送出します。エラーメッセージはコンソールで確認できます。送出された例外はエラー ID を含んでおらず、またメッセージを変更される可能性があるため、これらを解析するようなコードは書かないでください。

+ +

構文

+ +
browser.bookmarks.search(
+  query,   // 文字列またはオブジェクト
+  callback // 関数
+)
+
+ +

引数

+ +
+
query
+
実行するクエリを表す {{jsxref("string")}} または {{jsxref("object")}} です。
+
query を文字列で指定する場合、query は 0 個以上の検索項から構成されます。検索項はスペースで区切りますが、複数語からなる句を検索したい場合は引用符でくくります。それぞれの検索項はブックマークの URL やタイトルの部分文字列にマッチします(大文字・小文字は区別されません)。あるブックマークがクエリにマッチするには、クエリの検索項すべてがマッチしなければなりません。
+
+

query をオブジェクトで指定する場合、以下の 3 つのプロパティのうち 0 個以上を指定することになります。あるブックマークがクエリにマッチするには、指定されたプロパティすべてにおいてマッチしなければなりません。

+
+
+
+
query{{optional_inline}}
+
1 つ以上の検索項を含んだ {{jsxref("string")}} を指定します。このフォーマットは query 引数における文字列のフォーマットと同じです。このプロパティ値が {{jsxref("string")}} でなかった場合、 例外が送出されます。
+
url{{optional_inline}}
+
ブックマークの URL と完全一致しなければならない {{jsxref("string")}} を指定します。マッチの際に大文字・小文字は区別されず、また末尾のスラッシュも無視されます。
+
+

無効な URL を指定した場合、例外が送出されます。

+
+
+ +
+
title{{optional_inline}}
+
ブックマークのタイトルと完全一致しなければならない {{jsxref("string")}} を指定します。マッチの際には大文字・小文字が区別されます。
+
+
+
callback
+
クエリの結果が得られた場合に呼び出される関数を指定します。この関数には以下の引数が渡ります。
+
+
+
results
+
{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトの配列であり、各要素はマッチしたブックマークをそれぞれ表しています。何も見つからなかった場合は空の配列となります。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.search")}}

+ +

使用例

+ +

以下の例は、ブックマークすべての ID を出力するものです。

+ +
function onGot(bookmarkItems) {
+  for (item of bookmarkItems) {
+    console.log(item.id);
+  }
+}
+
+chrome.bookmarks.search({}, onGot);
+ +

以下の例は、その時にアクティブなタブがブックマークされているかどうかを確認するものです。

+ +
function onGot(bookmarkItems) {
+  if (bookmarkItems.length) {
+    console.log("active tab is bookmarked");
+  } else {
+    console.log("active tab is not bookmarked");
+  }
+}
+
+function checkActiveTab(tab) {
+  chrome.bookmarks.search({url: tab.url}, onGot);
+}
+
+chrome.browserAction.onClicked.addListener(checkActiveTab);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.bookmarks API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードから作成されています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/bookmarks/update/index.html b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/update/index.html new file mode 100644 index 0000000000..8ceee69300 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/bookmarks/update/index.html @@ -0,0 +1,117 @@ +--- +title: bookmarks.update() +slug: Mozilla/Add-ons/WebExtensions/API/bookmarks/update +tags: + - API + - Add-ons + - Bookmarks + - Extensions + - Method + - Non-standard + - Reference + - Update + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/bookmarks/update +--- +

{{AddonSidebar()}}

+ +

bookmarks.update() は、ブックマークの URL やタイトル、またはフォルダの名前を更新するメソッドです。

+ +

ブックマーク要素が見つからなかった場合には {{WebExtAPIRef("runtime.lastError")}} がセットされるので、エラーの有無をコールバックで確認できます。

+ +

構文

+ +
browser.bookmarks.update(
+  id,      // 文字列
+  changes, // オブジェクト
+  callback // 関数(省略可)
+)
+
+ +

引数

+ +
+
id
+
更新したいブックマーク / フォルダの ID を表す {{jsxref("string")}} です。
+
changes
+
適用したい変更内容を表す {{jsxref("object")}} であり、以下のプロパティから構成されます。指定しなかったプロパティについて、ブックマークやフォルダが変更されることはありません。
+ +
+
title{{optional_inline}}
+
id がフォルダを表す場合、ブックマークの新しいタイトル / フォルダの新しい名前を指定する {{jsxref("string")}} です。
+
url{{optional_inline}}
+
ブックマークの新しい URL を指定する {{jsxref("string")}} です。
+
+
+
callback{{optional_inline}}
+
変更が適用された際に実行される関数です。この関数には次の引数が 1 つ渡ります。
+
+
+
result
+
更新されたブックマークを表す{{WebExtAPIRef('bookmarks.BookmarkTreeNode')}} オブジェクトです。
+
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.bookmarks.update")}}

+ +

使用例

+ +

フォルダのリネーム

+ +

以下の例は、"MDN" という名前のフォルダすべてを "MDN" to "Mozilla Developer Network (MDN)" にリネームするものです。

+ +
function updateFolders(items) {
+  for (item of items) {
+    // only folders, so skip items with a `url`
+    if (!item.url) {
+      chrome.bookmarks.update(item.id, {
+        title: "Mozilla Developer Network (MDN)"
+      });
+    }
+  }
+}
+
+chrome.bookmarks.search({ title: "MDN" }, updateFolders);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.bookmarks API. This documentation is derived from bookmarks.json in the Chromium code.

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browseraction/colorarray/index.html b/files/ja/mozilla/add-ons/webextensions/api/browseraction/colorarray/index.html new file mode 100644 index 0000000000..70bb6d5039 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browseraction/colorarray/index.html @@ -0,0 +1,67 @@ +--- +title: browserAction.ColorArray +slug: Mozilla/Add-ons/WebExtensions/API/browserAction/ColorArray +translation_of: Mozilla/Add-ons/WebExtensions/API/browserAction/ColorArray +--- +
{{AddonSidebar()}}
+ +

+ +

RGBA色を定義する、4つの0から255の整数の配列です。4つの値は以下のチャネルを指定します:

+ +
    +
  1. 赤(Red)
  2. +
  3. 緑(Green)
  4. +
  5. 青(Blue)
  6. +
  7. アルファ(Alpha) (不透明度)
  8. +
+ +

たとえば、不透明な赤は[255, 0, 0, 255]です。

+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.browserAction.ColorArray")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

このAPIはChromiumのchrome.browserAction APIに基づいています。このドキュメントはChromiumコードの browser_action.jsonから派生したものです。

+ +

 

+ +

Microsoft Edgeの互換性データはMicrosoft Corporationから提供されており、Creative Commons Attribution 3.0 United States Licenseのもとにここに含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browseraction/disable/index.html b/files/ja/mozilla/add-ons/webextensions/api/browseraction/disable/index.html new file mode 100644 index 0000000000..5eb7c5f3c4 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browseraction/disable/index.html @@ -0,0 +1,87 @@ +--- +title: browserAction.disable() +slug: Mozilla/Add-ons/WebExtensions/API/browserAction/disable +translation_of: Mozilla/Add-ons/WebExtensions/API/browserAction/disable +--- +
{{AddonSidebar()}}
+ +

タブに対してブラウザアクションを無効にします。つまり、タブがアクティブな時クリックされなくなります。

+ +

書式

+ +
browser.browserAction.disable(
+  tabId // optional integer
+)
+
+ +

パラメータ

+ +
+
tabId{{optional_inline}}
+
integer. ブラウザアクションを無効にしたいタブのIDです。
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.browserAction.disable")}}

+ +

+ +

クリックされたときブラウザアクションを無効にし、新しいタブが開かれる毎回再度有効にします:

+ +
browser.tabs.onCreated.addListener(() => {
+  browser.browserAction.enable();
+});
+
+browser.browserAction.onClicked.addListener(() => {
+  browser.browserAction.disable();
+});
+
+ +

アクティブなタブにだけブラウザアクションを無効にします:

+ +
browser.browserAction.onClicked.addListener((tab) => {
+  browser.browserAction.disable(tab.id);
+});
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.browserAction API. This documentation is derived from browser_action.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browseraction/index.html b/files/ja/mozilla/add-ons/webextensions/api/browseraction/index.html new file mode 100644 index 0000000000..f5291179ee --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browseraction/index.html @@ -0,0 +1,129 @@ +--- +title: browserAction +slug: Mozilla/Add-ons/WebExtensions/API/browserAction +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - browserAction +translation_of: Mozilla/Add-ons/WebExtensions/API/browserAction +--- +
{{AddonSidebar}}
+ +

ブラウザーのツールバーにボタンを追加します。

+ +

ブラウザーアクションはブラウザーのツールバー内のボタンです。

+ +

これをボタンつきポップアップと関連付けられます。ポップアップは通常のウェブページ同様に、HTML, CSS, JavaScript を使って指定できます。ポップアップの中で動く JavaScript はバックグラウンドスクリプトとすべて同じ WebExtension API にアクセスできますが、グローバルコンテキストはブラウザーに表示される現在のページではなく、ポップアップになります。ウェブページに影響するには messages 経由で通信する必要があります。

+ +

ユーザーがアイコンをクリックした時に、ポップアップを指定していると、表示され — そしてコンテンツが読み込まれるでしょう 。ポップアップを指定していない時は、ユーザーがアイコンをクリックした時、拡張機能にイベントがディスパッチされます。

+ +

たいていのブラウザーアクションのプロパティは、manifest.json 内の browser_action キーを用いて宣言的に定義できます。

+ +

browserAction API では、次が可能です:

+ + + +

+ +
+
{{WebExtAPIRef("browserAction.ColorArray")}}
+
RGBA 色を決める 0-255 の範囲の4整数の配列
+
{{WebExtAPIRef("browserAction.ImageDataType")}}
+
画像のピクセルデータ。ImageData オブジェクト (例えば {{htmlelement("canvas")}} 要素から) でないといけない。
+
+ +

関数

+ +
+
{{WebExtAPIRef("browserAction.setTitle()")}}
+
ブラウザーアクションのタイトルをセットする。ツールチップに表示される。
+
{{WebExtAPIRef("browserAction.getTitle()")}}
+
ブラウザーアクションのタイトルを取得します。
+
{{WebExtAPIRef("browserAction.setIcon()")}}
+
ブラウザーアクションのアイコンをセットします。
+
{{WebExtAPIRef("browserAction.setPopup()")}}
+
ユーザーがブラウザーアクションのアイコンをクリックした時に表示されるポップアップの HTML 文書をセットします。
+
{{WebExtAPIRef("browserAction.getPopup()")}}
+
ブラウザーアクションのポップアップとしてセットされた HTML 文書を取得します。
+
{{WebExtAPIRef("browserAction.openPopup()")}}
+
ブラウザーアクションのポップアップを開きます。
+
{{WebExtAPIRef("browserAction.setBadgeText()")}}
+
ブラウザーアクションのバッジテキストをセットします。バッジはアイコンの上部に表示されます。
+
{{WebExtAPIRef("browserAction.getBadgeText()")}}
+
ブラウザーアクションのバッジのテキストを取得します。
+
{{WebExtAPIRef("browserAction.setBadgeBackgroundColor()")}}
+
バッジの背景色を指定します。
+
{{WebExtAPIRef("browserAction.getBadgeBackgroundColor()")}}
+
バッジの背景色を取得します。
+
{{WebExtAPIRef("browserAction.enable()")}}
+
タブのブラウザーアクションを有効にします。既定では、ブラウザーアクションはすべてのタブで有効です。
+
{{WebExtAPIRef("browserAction.disable()")}}
+
タブのブラウザーアクションを無効にします。つまりタブがアクティブでもクリックできません。
+
{{WebExtAPIRef("browserAction.isEnabled()")}}
+
ブラウザーアクションが有効か否かをチェックします。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("browserAction.onClicked")}}
+
ブラウザーアクションがクリックされた時に発火します。このイベントはブラウザーアクションがポップアップ付きでない場合は発火しません。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.browserAction")}}

+ + + +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.browserAction API に基づいています。この文書は Chromium コードの browser_action.json から得ています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browseraction/onclicked/index.html b/files/ja/mozilla/add-ons/webextensions/api/browseraction/onclicked/index.html new file mode 100644 index 0000000000..46f3a666a7 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browseraction/onclicked/index.html @@ -0,0 +1,102 @@ +--- +title: browserAction.onClicked +slug: Mozilla/Add-ons/WebExtensions/API/browserAction/onClicked +translation_of: Mozilla/Add-ons/WebExtensions/API/browserAction/onClicked +--- +
{{AddonSidebar()}}
+ +

ブラウザアクションアイコンがクリックされたときに発火します。このイベントはブラウザアクションがポップアップを持っているときは発火しません。

+ +

右クリックを定義するには、contextMenus API の"browser_action" context typeを利用してください。

+ +

書式

+ +
browser.browserAction.onClicked.addListener(listener)
+browser.browserAction.onClicked.removeListener(listener)
+browser.browserAction.onClicked.hasListener(listener)
+
+ +

イベントは3つの関数を持っています:

+ +
+
addListener(listener)
+
このイベントのリスナーを追加します。
+
removeListener(listener)
+
このイベントのリスニングを停止します。引数listenerは削除するリスナーです。
+
hasListener(listener)
+
listenerがこのイベントに登録されているかどうかを調べます。trueが返ればリスニング中です。falseが返ればそうれはありません。
+
+ +

addListenerの書式

+ +

パラメータ

+ +
+
callback
+
+

イベントが発生したときに呼び出される関数です。関数は以下の引数を渡されます:

+ +
+
tab
+
{{WebExtAPIRef('tabs.Tab')}}. アイコンがクリックされたときにアクティブなタブです。
+
+
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.browserAction.onClicked")}}

+ +

+ +

ユーザがアイコンをクリックすると、アクティブなタブではアイコンを無効にし、タブのURLをログします:

+ +
browser.browserAction.onClicked.addListener((tab) => {
+  // disable the active tab
+  browser.browserAction.disable(tab.id);
+  // requires the "tabs" or "activeTab" permission
+  console.log(tab.url);
+});
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

このAPIはChromiumのchrome.browserAction APIに基づいています。このドキュメントはChromiumコードのbrowser_action.jsonから派生したものです。

+ +

Microsoft Edgeの互換性データはMicrosoft Corporationから提供されており、Creative Commons Attribution 3.0 United States Licenseのもとにここに含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browsersettings/index.html b/files/ja/mozilla/add-ons/webextensions/api/browsersettings/index.html new file mode 100644 index 0000000000..a9bbf45a6a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browsersettings/index.html @@ -0,0 +1,49 @@ +--- +title: browserSettings +slug: Mozilla/Add-ons/WebExtensions/API/browserSettings +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - WebExtensions + - browserSettings +translation_of: Mozilla/Add-ons/WebExtensions/API/browserSettings +--- +
{{AddonSidebar}}
+ +
拡張機能にグローバルなブラウザー設定の変更を可能にします。この API の各プロパティは {{WebExtAPIRef("types.BrowserSetting", "BrowserSetting")}} オブジェクトで、これはそれぞれの設定の変更能力を提供します。
+ +
 
+ +
これはグローバルな設定のため、拡張機能で衝突が起きる可能性があります。衝突の処理方法の詳細は BrowserSetting.set() の文書を見てください。
+ +
 
+ +
+

この API を使うには "browserSettings" パーミッションが必要です。

+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("browserSettings.allowPopupsForUserEvents")}}
+
ユーザーのイベントに反応して、ウェブページで実行しているコードがポップアップを許可するかどうかを決める
+
{{WebExtAPIRef("browserSettings.cacheEnabled")}}
+
ブラウザーキャッシュの有効・無効を決める
+
{{WebExtAPIRef("browserSettings.homepageOverride")}}
+
ブラウザーのホームページの値を読む
+
{{WebExtAPIRef("browserSettings.imageAnimationBehavior")}}
+
ブラウザーが画像アニメーションをどう扱うのかを決める
+
{{WebExtAPIRef("browserSettings.newTabPageOverride")}}
+
ブラウザーの新規タブページ値を読む
+
{{WebExtAPIRef("browserSettings.webNotificationsDisabled")}}
+
ウェブサイトが Notification Web API を使って通知を表示するのを妨げる
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.browserSettings")}}

+ +

{{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/browsersettings/newtabpageoverride/index.html b/files/ja/mozilla/add-ons/webextensions/api/browsersettings/newtabpageoverride/index.html new file mode 100644 index 0000000000..de5eda9664 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browsersettings/newtabpageoverride/index.html @@ -0,0 +1,27 @@ +--- +title: browserSettings.newTabPageOverride +slug: Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPageOverride +translation_of: Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPageOverride +--- +
{{AddonSidebar()}}
+ +

{{WebExtAPIRef("types.BrowserSetting", "BrowserSetting")}} オブジェクトを使用すると「新規タブ」ページ、つまりユーザーが新しい空のタブを開いたときのページを表すURLを取得することができます。

+ +

なお、これは読み取り専用の設定です。

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.browserSettings.newTabPageOverride", 10)}}

+ +

+ +

現在の新規タブURLを取得する:

+ +
browser.browserSettings.newTabPageOverride.get({}).then(result => {
+  console.log(result.value);
+});
+
+ +

{{WebExtExamples}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/browsingdata/index.html b/files/ja/mozilla/add-ons/webextensions/api/browsingdata/index.html new file mode 100644 index 0000000000..c648980e4e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browsingdata/index.html @@ -0,0 +1,127 @@ +--- +title: browsingData +slug: Mozilla/Add-ons/WebExtensions/API/browsingData +tags: + - Add-ons + - Extensions + - Non-standard + - Reference + - WebExtensions + - browsingData +translation_of: Mozilla/Add-ons/WebExtensions/API/browsingData +--- +
{{AddonSidebar}}
+ +
拡張機能がユーザーのブラウズ中に蓄積したデータをクリアできるようにします。
+ +

 browsingData APIでは、ブラウズデータは下記の型に分けられます:

+ + + +

これらの型の組み合わせを削除するのに {{WebExtAPIRef("browsingData.remove()")}} 関数を使用できます。それぞれのデータ型を削除する専用関数もあり、例えば {{WebExtAPIRef("browsingData.removePasswords()", "removePasswords()")}}, {{WebExtAPIRef("browsingData.removeHistory()", "removeHistory()")}} などです。

+ +

すべての browsingData.remove[X]() 関数は {{WebExtAPIRef("browsingData.RemovalOptions")}} オブジェクトを取って、これをデータ削除のその他2つの側面を管理するのに使うことができます:

+ + + +

最後に、この API の {{WebExtAPIRef("browsingData.settings()")}} 関数で、ブラウザー組み込みの「履歴消去」機能の現在の設定値を取得できます。

+ +

この API を使うには、"browsingData" の API パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("browsingData.DataTypeSet")}}
+
削除データの型を指定するオブジェクト: 例えば、history, downloads, passwords, など
+
{{WebExtAPIRef("browsingData.RemovalOptions")}}
+
データ削除するのにどれくらい以前に遡るのか、通常のウェブブラウジング/ホスト型アプリ/アドオンのどのデータを削除するのかを指定するオブジェクト。
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("browsingData.remove()")}}
+
指定された型のブラウジングデータを削除する
+
{{WebExtAPIRef("browsingData.removeCache()")}}
+
ブラウザーキャッシュを消去する
+
{{WebExtAPIRef("browsingData.removeCookies()")}}
+
cookies を削除する
+
{{WebExtAPIRef("browsingData.removeDownloads()")}}
+
ダウンロード済みのファイルを削除する
+
{{WebExtAPIRef("browsingData.removeFormData()")}}
+
保存されたフォームデータを消去する
+
{{WebExtAPIRef("browsingData.removeHistory()")}}
+
ブラウザー履歴を消去する
+
{{WebExtAPIRef("browsingData.removeLocalStorage()")}}
+
ウェブサイトが作成した local storage を消去する
+
{{WebExtAPIRef("browsingData.removePasswords()")}}
+
パスワードを消去する
+
{{WebExtAPIRef("browsingData.removePluginData()")}}
+
プラグインに関連するデータを消去する
+
{{WebExtAPIRef("browsingData.settings()")}}
+
ブラウザーの「履歴消去」機能の現在の設定値を得る
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.browsingData", 1, 1)}}

+ + + +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.browsingData API に基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.html b/files/ja/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.html new file mode 100644 index 0000000000..cf43475f5a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.html @@ -0,0 +1,100 @@ +--- +title: browsingData.removeCache() +slug: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache +tags: + - API + - Add-ons + - Extensions + - Method + - Reference + - WebExtensions + - browsingData + - removeCache +translation_of: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache +--- +
{{AddonSidebar()}}
+ +

ブラウザのキャッシュを消去します。

+ +

この関数は{{WebExtAPIRef("browsingData.RemovalOptions")}} オブジェクトを引数に取りますが無視されます。そのためこの関数を使うとすべてのキャッシュが消去されるため注意してください。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var removing = browser.browsingData.removeCache(
+  removalOptions            // RemovalOptions オブジェクト
+)
+
+ +

引数

+ +
+
removalOptions {{optional_inline}}
+
{{WebExtAPIRef("browsingData.RemovalOptions")}} オブジェクト このパラメータは無視されます。
+
+ +

返り値

+ +

消去が完了した後に実行される Promise が返されます。この Promise は引数を持ちません。エラーが発生した場合はエラーメッセージを引数にしてrejectを呼び出します。

+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.browsingData.removeCache")}}

+ +

+ +

ブラウザキャッシュを消去します。

+ +
function onRemoved() {
+  console.log("removed");
+}
+
+function onError(error) {
+  console.error(error);
+}
+
+browser.browsingData.removeCache({}).
+then(onRemoved, onError);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

この API は Chromium の chrome.browsingData API に基づいています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは  Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/clipboard/index.html b/files/ja/mozilla/add-ons/webextensions/api/clipboard/index.html new file mode 100644 index 0000000000..f104a67940 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/clipboard/index.html @@ -0,0 +1,39 @@ +--- +title: clipboard +slug: Mozilla/Add-ons/WebExtensions/API/clipboard +tags: + - API + - Add-ons + - Clipboard + - Extensions + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/clipboard +--- +
{{AddonSidebar}}
+ +

クリップボード API は、拡張機能がシステムのクリップボードに要素をクリップするのを可能にします。現在この API は画像のコピーだけをサボートしていますが、将来的にはテキストとHTMLのコピーをサボートする計画です。

+ +

この WebExtension API は主に標準の web クリップボード API がクリップボードに画像を書き込めないために存在しています。標準 web API にこの力が備わった時には、このAPI は非推奨になるはずです。

+ +

クリップボードの読み込みはこの API でサポートしません。なぜならクリップボードはすでに標準 web プラットホーム API を用いて読むことができるからです。クリップボードとやりとりするを見てください。

+ +

この API は Chrome の clipboard API に基づきますが、その API はChrome アプリだけで利用できて、拡張機能ではできません。

+ +

この API を使うには "clipboardWrite" パーミッションが必要です。

+ +

関数

+ +
+
{{WebExtAPIRef("clipboard.setImageData()")}}
+
画像をクリップボードにコピーする
+
+ +

ブラウザー互換性

+ +

{{Compat("webextensions.api.clipboard", 1, 1)}} {{WebExtExamples("h2")}}

+ +
Acknowledgements + +

この API は Chromiumの chrome.clipboard API に基づきます。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/clipboard/setimagedata/index.html b/files/ja/mozilla/add-ons/webextensions/api/clipboard/setimagedata/index.html new file mode 100644 index 0000000000..950f1c866e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/clipboard/setimagedata/index.html @@ -0,0 +1,72 @@ +--- +title: clipboard.setImageData() +slug: Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData +translation_of: Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData +--- +
{{AddonSidebar()}}
+ +

イメージをクリップボードにコピーします。イメージはクリップボードに書き込まれる前に再エンコードされます。イメージが無効な場合、クリップボードは修正されません。

+ +

The image is provided as an ArrayBuffer containing the encoded image. JPEG and PNG formats are supported.

+ +

Although this API is based on Chrome's clipboard.setImageData() API, there are some differences:

+ + + +

これはPromiseを返す非同期関数です。

+ +

書式

+ +
browser.clipboard.setImageData(imageData, imageType)
+
+ +

パラメータ

+ +
+
imageData
+
An ArrayBuffer containing the encoded image data to copy to the clipboard.
+
imageType
+
A {{domxref("DOMString")}} indicating the type of image contained in imageData: "png" or "jpeg".
+
+ +

返り値

+ +

A Promise that will be resolved with no arguments if the operation succeeded, or rejected if there was an error (for example, because the data did not represent a valid image).

+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.clipboard.setImageData", 10)}}

+ +

+ +

Copy a remote image:

+ +
// requires:
+// * the host permission for "https://cdn.mdn.mozilla.net/*"
+// * the API permission "clipboardWrite"
+
+fetch('https://cdn.mdn.mozilla.net/static/img/favicon144.png')
+.then(response => response.arrayBuffer())
+.then(buffer => browser.clipboard.setImageData(buffer, 'png'));
+ +

Copy an image that was bundled with the extension:

+ +
// requires the API permission "clipboardWrite"
+
+fetch(browser.runtime.getURL('image.png'))
+.then(response => response.arrayBuffer())
+.then(buffer => browser.clipboard.setImageData(buffer, 'png'));
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.clipboard API.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/commands/index.html b/files/ja/mozilla/add-ons/webextensions/api/commands/index.html new file mode 100644 index 0000000000..0e622b38d2 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/commands/index.html @@ -0,0 +1,84 @@ +--- +title: commands +slug: Mozilla/Add-ons/WebExtensions/API/commands +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - commands +translation_of: Mozilla/Add-ons/WebExtensions/API/commands +--- +
{{AddonSidebar}}
+ +

commands manifest.json キーを使って、登録したコマンドをユーザーが実行するのをリッスンします。

+ +

+ +
+
{{WebExtAPIRef("commands.Command")}}
+
コマンドを表す型。これは manifest.json の commands キーのコマンドで指定された情報が入っています。
+
+ +

関数

+ +
+
{{WebExtAPIRef("commands.getAll")}}
+
+

拡張機能用のすべての登録済みコマンドを取得します。

+
+
+ +

イベント

+ +
+
{{WebExtAPIRef("commands.onCommand")}}
+
+
関連付けされたキーボードショートカットを使ってコマンドが実行された時に発火します。
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.commands")}} {{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.commands API に基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html new file mode 100644 index 0000000000..d72cf1de1d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/index.html @@ -0,0 +1,47 @@ +--- +title: contentScripts +slug: Mozilla/Add-ons/WebExtensions/API/contentScripts +tags: + - API + - Extensions + - Interface + - WebExtensions + - contentScripts + - インタフェース + - コンテントスクリプト + - 拡張機能 +translation_of: Mozilla/Add-ons/WebExtensions/API/contentScripts +--- +
{{AddonSidebar}}
+ +

このAPIはコンテントスクリプトを登録するためにお使いいただけます。コンテントスクリプトを登録することで、指定したURLにマッチするページにそのスクリプトを挿入するようブラウザに指定することができます。

+ +

このAPIはmanifest.jsonにある"content_scripts"キーと似ていますが、"content_scripts"ではコンテントスクリプトとURLのパターンはインストールタイムに固定されます。一方content_scripts APIは、ランタイム(実行時)でスクリプトを登録・登録解除することが可能です。

+ +

このAPIは、{{WebExtAPIRef("contentScripts.register()")}} メソッドを呼び出して使用していただけます。その際は、登録するコンテントスクリプト、URLのマッチングパターン、またその他のオプションを実引数(arguments)として渡してください。このメソッドは{{WebExtAPIRef("contentScripts.RegisteredContentScript")}} オブジェクトがresolveされた Promise を返します。

+ +

RegisteredContentScript オブジェクトは register() で登録されたスクリプトを保持し、unregister()でそのスクリプトを登録解除(unregister)できます。また、コンテントスクリプトはそれらを作ったページが消された際にも自動的に登録解除されます。例えば、backgroundページによって登録されたコンテントスクリプトは、backgroundページが消去された際に自動的に登録解除されます。

+ +

contentScripts API にパーミッションは存在しませんが、拡張機能はregister()でマッチさせるURLにおいては適切なhost permissionsを持っている必要があります。

+ +

Types

+ +
+
{{WebExtAPIRef("contentScripts.RegisteredContentScript")}}
+
+

このタイプのオブジェクトは{{WebExtAPIRef("contentScripts.register()")}}関数の返り値です。{{WebExtAPIRef("contentScripts.register()")}}関数で登録されたコンテントスクリプトを持ち、このオブジェクトを使ってそれらを登録解除することができます。

+
+
+ +

Functions

+ +
+
{{WebExtAPIRef("contentScripts.register()")}}
+
コンテントスクリプトを登録します。
+
+ +

ブラウザの互換性

+ +

{{Compat("webextensions.api.contentScripts", 10, 1)}}

+ +

{{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html new file mode 100644 index 0000000000..ec8cfeaa28 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/contentscripts/register/index.html @@ -0,0 +1,107 @@ +--- +title: contentScripts.register() +slug: Mozilla/Add-ons/WebExtensions/API/contentScripts/register +tags: + - API + - Extensions + - Method + - Reference + - contentScripts + - register +translation_of: Mozilla/Add-ons/WebExtensions/API/contentScripts/register +--- +
{{AddonSidebar()}}
+ +

このメソッドは一つ以上の content scripts を登録するときに使用します。

+ +

manifest.json内の content_scripts に似た一つのオブジェクトを引数に持ちます。content_scripts では配列ですが、この register() ではオブジェクトを引数に持ちます。

+ +

これは Promise を返す非同期関数です。

+ +

構文

+ +
var registering = browser.contentScripts.register(
+  contentScriptOptions       // object
+)
+
+ +

パラメーター

+ +
+
contentScriptOptions
+
+

object です。RegisteredContentScriptOptions オブジェクトは登録するコンテントスクリプトを表します。content_scripts と似た構文のオブジェクトで、その違いは以下の通りです。

+ +
    +
  • プロパティ名にはスネーク形式ではなくキャメル形式を使用します (例えば、excludeMatchesを使用します。exclude_matches ではありません)
  • +
  • js プロパティと css プロパティには、相対パスのほかに文字列も指定できます。このため、登録したいものがどちらであるのかを明確にできる構文になっています。
  • +
+ +

RegisteredContentScriptOptions は次のプロパティを持ちます:

+ +
+
allFrames{{optional_inline}}
+
content_scripts における all_frames と同様です。
+
css{{optional_inline}}
+
オブジェクトの配列。 それぞれのオブジェクトは file という名前の manifest.json からの相対パスで登録したい CSS ファイルを指定した URL の文字列を持つプロパティか、code という名前の登録したい CSS の文字列を持つプロパティを含みます。
+
excludeGlobs{{optional_inline}}
+
content_scripts における exclude_globs と同様です。
+
excludeMatches{{optional_inline}}
+
content_scripts における exclude_matches と同様です。
+
includeGlobs{{optional_inline}}
+
content_scripts における include_globs と同様です。
+
js{{optional_inline}}
+
オブジェクトの配列。各オブジェクトは file または code プロパティを含み、その要素は css プロパティと同様です。
+
matchAboutBlank{{optional_inline}}
+
content_scripts における match_about_blank と同様です。
+
matches
+
content_scripts における matches と同様です。
+
runAt{{optional_inline}}
+
content_scripts における run_at と同様です。
+
+
+
+ +

返り値

+ +

登録したコンテントスクリプトを削除することができる {{WebExtAPIRef("contentScripts.RegisteredContentScript")}} オブジェクトを引数に持つ Promise を返します。

+ +


+ 現在、登録したコンテントスクリプトは、これを登録した拡張機能ページをアンロードしたときに削除されます。したがって、コンテントスクリプトを登録する際は、少なくとも登録されたままであってほしいだけ存在する拡張機能ページから登録すべきです。

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.contentScripts.register", 10)}}

+ +

+ +

defaultCode コンテントスクリプトを、すべての .org URL に対して登録します。

+ +
const defaultHosts = "*://*.org/*";
+const defaultCode = "document.body.innerHTML = '<h1>このページは書き換えられました<h1>'";
+
+async function register(hosts, code) {
+
+  return await browser.contentScripts.register({
+    matches: [hosts],
+    js: [{code}],
+    runAt: "document_idle"
+  });
+
+}
+
+var registered = register(defaultHosts, defaultCode);
+ +

次のコードは content_scripts/example.js にある JavaScript ファイルを登録します。

+ +
const scriptObj = await browser.contentScripts.register({
+  "js": [{file: "/content_scripts/example.js"}],
+  "matches": ["<all_urls>"],
+  "allFrames": true,
+  "runAt": "document_start"
+});
+
+ +

{{WebExtExamples}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/contextualidentities/index.html b/files/ja/mozilla/add-ons/webextensions/api/contextualidentities/index.html new file mode 100644 index 0000000000..46f956e09e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/contextualidentities/index.html @@ -0,0 +1,63 @@ +--- +title: contextualIdentities +slug: Mozilla/Add-ons/WebExtensions/API/contextualIdentities +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/contextualIdentities +--- +
{{AddonSidebar}}
+ +

contextual identitiesの操作: contextual identities を一覧、作成、削除、更新します。

+ +

"Contextual identities"は「コンテナ」とも言われ、ブラウザーの機能で、ユーザーがウェブブラウズしている時に複数のIDを想定し、そこでもID同時の分離を維持したいアイデアを指します。例えば、ユーザーが「仕事のID」と「個人のID」を分けたいと考えて、これら2つのコンテキストで cookies を共有したくない場合など。

+ +

contextual identities 機能により、各コンテキストIDは名前、色、及びアイコンを持ちます。新規タブがIDにアサインされ、名前、アイコン、色がアドレスバーに出現します。内部的には、各IDが他のタブには共有されない自分の cookie ストアを持ちます。

+ +

Contextual identities は Firefox の実験的機能であり、Firefox Nightly だけでデフォルト有効になっています。その他のバージョンの Firefox で有効にするには、 privacy.userContext.enabled の設定を true にします。contextual identities は Android版Firefox でも利用できますが、このバージョンでは動作する UI がないのにご注意ください。

+ +

Firefox 57 より前では、contextualIdentities API は contextual identities 機能自体が有効になっている場合にだけ利用できます。機能が無効なまま拡張機能が contextualIdentities API を使おうとした場合、メソッド呼び出しは promises を false に解決します。

+ +

Firefox 57 以降では、contextualIdentities API を使う拡張機能がインストールされたら、contextual identities 機能は自動的に有効化されます。"privacy.userContext.enabled" プリファレンスを使って、まだユーザーが機能を無効化できるのに注意します。これが起きたら、contextualIdentities メソッドの呼び出しで、エラーメッセージと共に promises を拒否します。

+ +

Firefox での contextual identities のより詳しい情報はこのガイドを見てください。

+ +

Contextual identities は現在その他のブラウザーではサポートされていません。

+ +

この API を使うには、 manifest.json ファイル内で "contextualIdentities" パーミッションを入れます。

+ +

+ +
+
{{WebExtAPIRef("contextualIdentities.ContextualIdentity")}}
+
contextual identity に関する情報を含みます。
+
+ +

関数

+ +
+
{{WebExtAPIRef("contextualIdentities.create()")}}
+
新しい contextual identity を作成します
+
{{WebExtAPIRef("contextualIdentities.get()")}}
+
cookie ストア ID を引数に、単一の contextual identity を取得します
+
{{WebExtAPIRef("contextualIdentities.query()")}}
+
すべての contextual identities を取得、あるいは特定の名前の全 contextual identities を取得します
+
{{WebExtAPIRef("contextualIdentities.update()")}}
+
既存のcontextual identity のプロパティを更新します
+
{{WebExtAPIRef("contextualIdentities.remove()")}}
+
contextual identity を削除します
+
+

イベント

+
+
{{WebExtAPIRef("contextualIdentities.onCreated")}}
+
contextual identity 作成時に発火します
+
{{WebExtAPIRef("contextualIdentities.onRemoved")}}
+
contextual identity 削除時に発火します
+
{{WebExtAPIRef("contextualIdentities.onUpdated")}}
+
1つ以上の contextual identity のプロパティが更新された時に発火します
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.contextualIdentities")}}

+ +

{{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/cookies/cookie/index.html b/files/ja/mozilla/add-ons/webextensions/api/cookies/cookie/index.html new file mode 100644 index 0000000000..b308cb0f6a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/cookies/cookie/index.html @@ -0,0 +1,111 @@ +--- +title: cookies.Cookie +slug: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie +tags: + - API + - Add-ons + - Cookies + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions + - cookie +translation_of: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie +--- +
{{AddonSidebar()}}
+ +

{{WebExtAPIRef("cookies")}} API の Cookie 型はHTTP cookie の情報を持ちます。

+ +

+ +

以下のプロパティを含むオブジェクトです。

+ +
+
domain
+
cookie の所属するドメイン (例えば "www.google.com" や "example.com") を示す文字列を持つ string 型です。
+
expirationDate{{optional_inline}}
+
cookie の有効期限をUNIX時刻からの秒数で持つ number 型です。セッション cookie はこのプロパティを持っていません。
+
firstPartyDomain
+
cookie に関連付けられたファーストパーティドメインを表す文字列を格納している string 型です。 cookie のFirst-party isolationが無効の間は空文字列になります。詳細は First-party isolation をご覧ください。
+
hostOnly
+
boolean 型です。cookie がホストオンリークッキー (リクエストのホストが cookie の指定ドメインと完全一致している場合のみ送信) である場合に true 、でなければ false になります。
+
httpOnly
+
boolean 型です。 cookieに HttpOnly 属性 ( cookie をクライアント側スクリプトから参照できなくする属性) が付与されている場合に true 、でなければ false が格納されます。
+
name
+
cookie の名前が格納される string 型です。
+
path
+
cookie のパスが格納される string 型です。
+
secure
+
boolean 型です。 cookie に secure 属性(暗号化通信でのみ cookie を送信する属性)が付与されている場合に true 、でなければ false になります。
+
session
+
boolean 型です。 cookie がセッション cookie ( セッション限りで破棄される cookie )である場合に true 、でなければ false が付与されます。
+
storeId
+
この cookie が格納されている cookie ストアのIDを格納する string 型です。{{WebExtAPIRef("cookies.getAllCookieStores()")}}によって提供されます。
+
value
+
 cookie の値を格納する string 型です。
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.cookies.Cookie")}}

+ +

+ +

cookies API のほとんどは入力パラメータまたは戻り値の一部として使用される Cookie オブジェクトを含みます。例えば {{WebExtAPIRef("cookies.getAll()")}} は Cookie オブジェクトの配列を返します。

+ +

以下の例ではすべての cookie を取得し、コンソールログに  Cookie オブジェクト中のいくつかのプロパティを出力します。

+ +
function logCookies(cookies) {
+  for (cookie of cookies) {
+    console.log(`Domain: ${cookie.domain}`);
+    console.log(`Name: ${cookie.name}`);
+    console.log(`Value: ${cookie.value}`);
+    console.log(`Persistent: ${!cookie.session}`);
+  }
+}
+
+var gettingAll = browser.cookies.getAll({});
+gettingAll.then(logCookies);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

この API は Chromium の chrome.cookies API に基づいています。 また、このドキュメントは cookies.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/cookies/index.html b/files/ja/mozilla/add-ons/webextensions/api/cookies/index.html new file mode 100644 index 0000000000..63788a4292 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/cookies/index.html @@ -0,0 +1,143 @@ +--- +title: cookies +slug: Mozilla/Add-ons/WebExtensions/API/cookies +tags: + - API + - Add-ons + - Cookies + - Extensions + - Interface + - Reference + - dard +translation_of: Mozilla/Add-ons/WebExtensions/API/cookies +--- +
{{AddonSidebar}}
+ +

拡張機能に cookie の取得と設定と、変更された時の通知を可能にします。

+ +

この API を使用するには、manifest.json ファイルで "cookies" の API パーミッション があることと、同様にアクセスする cookie を持つ host パーミッション も必要になります。cookie パーミッションを見てください。

+ +

+ +
+
{{WebExtAPIRef("cookies.Cookie")}}
+
HTTP cookieの情報を表す。
+
{{WebExtAPIRef("cookies.CookieStore")}}
+
ブラウザーの cookie store を表す。
+
{{WebExtAPIRef("cookies.OnChangedCause")}}
+
cookie の変更理由を表す。
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("cookies.get()")}}
+
1つの cookie の情報を取得する。
+
{{WebExtAPIRef("cookies.getAll()")}}
+
与えられたフィルターにマッチするすべての cookies を取得する。
+
{{WebExtAPIRef("cookies.set()")}}
+
与えられた cookie データ を cookie に設定する; おなじ cookies が存在すれば上書きする。
+
{{WebExtAPIRef("cookies.remove()")}}
+
指定した名前の cookie を削除する。
+
{{WebExtAPIRef("cookies.getAllCookieStores()")}}
+
すべての cookie stores を一覧する。
+
+ +

イベントハンドラー

+ +
+
{{WebExtAPIRef("cookies.onChanged")}}
+
cookie が設定、削除された時に発火する。
+
+ +

パーミッション

+ +

この API を使うには、アドオンは manifest で "cookies" の API パーミッション を指定せねばならず、同様に cookie がアクセスするあらゆるサイトの host パーミッションも要ります。アドオンは host パーミッションにマッチするURLから読み書きされる cookie を読み書きできます。例えば:

+ +
+
http://*.example.com/
+
+

この host パーミッションを持つアドオンは下記ができます:

+ +
    +
  • www.example.com のあらゆるパスの、非セキュア型 cookie を読む
  • +
  • セキュア/非セキュア問わず、www.example.com のあらゆるパスの cookie に書き込む
  • +
+ +

下記はできません:

+ +
    +
  • www.example.com のセキュア型cookie を読む
  • +
+
+
http://www.example.com/
+
+

この host パーミッションを持つアドオンは下記ができます:

+ +
    +
  • www.example.com のあらゆるパスの、非セキュア型cookie を読む
  • +
  • .example.comのあらゆるパスの、非セキュア型cookie を読む
  • +
  • セキュア/非セキュア問わず、www.example.comのあらゆるパスの cookie に書き込む
  • +
  • セキュア/非セキュア問わず、.example.comのあらゆるパスの cookie に書き込む
  • +
+ +

下記はできません:

+ +
    +
  • foo.example.com の cookie の読み書き
  • +
  • foo.www.example.com の cookie の読み書き
  • +
+
+
*://*.example.com/
+
+

この host パーミッションを持つアドオンは下記ができます:

+ +
    +
  • セキュア/非セキュア問わず、www.example.com のあらゆるパスの cookie の読み書き
  • +
+
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.cookies")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.cookies API に基づいています。また、このドキュメントは cookies.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html new file mode 100644 index 0000000000..5ed0d6580f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/eval/index.html @@ -0,0 +1,211 @@ +--- +title: devtools.inspectedWindow.eval() +slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval +translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval +--- +
{{AddonSidebar()}}
+ +

devtools が接続されているウィンドウで JavaScript を実行します。

+ +

これは {{WebExtAPIRef("tabs.executeScript()")}} を使用してコンテンツスクリプトを添付することに似ていますが、主に2つの違いがあります。

+ +

第1に、JavaScript はブラウザが通常 devtools コンソール実装で提供する特別なコマンドのセットを使用できます。たとえば、"$0" を使用してインスペクタで現在選択されている要素を参照します。

+ +

次に、実行する JavaScript はページが読み込んだスクリプトによってページに加えられた変更を確認できます。これは、ページスクリプトが読み込まれなかった場合に存在するページを表示するコンテンツスクリプトとは対照的です。ただし、コンテンツスクリプトによって提供される分離は意図的なセキュリティ機能であり、DOM 関数とプロパティを再定義することにより、悪意のあるまたは単に非協力的な Web ページがWebExtensions API を混乱または破壊することを困難にすることを目的としています。つまり eval() を使用してこの保護を放棄する場合は非常に注意する必要があり、eval() を使用する必要がない限りコンテンツスクリプトを使用する必要があります。

+ +

スクリプトは、ページのメインフレームでデフォルトで評価されます。スクリプトは、JSON として表現できる値に評価する必要があります (たとえば、関数または関数を含むオブジェクトには評価されない可能性があることを意味します)。デフォルトでは、スクリプトはページに添付されたコンテンツスクリプトを表示しません。

+ +

"about:addons" などの特権ブラウザウィンドウで eval() を呼び出すことはできません。

+ +

オプションで options パラメータを指定できます。options パラメータには、異なるフレームまたは添付コンテンツスクリプトのコンテキストでスクリプトを評価するオプションが含まれます。Firefox はまだ options パラメータをサポートしていないことに注意してください。

+ +

eval() 関数は、スクリプトの評価結果またはエラーを解決する Promise を返します。

+ +

ヘルパー

+ +

The script gets access to a number of objects that help the injected script interact with the developer tools. The following helpers are currently supported:

+ +
+
$0
+
Contains a reference to the element that's currently selected in the devtools Inspector.
+
inspect()
+
Given an object, if it is an DOM element in the page, selects it in the devtools Inspector, otherwise it creates an object preview in the webconsole.
+
+ +

See some examples.

+ +

Syntax

+ +
var evaluating = browser.devtools.inspectedWindow.eval(
+  expression,       // string
+  options           // object
+)
+
+ +

Parameters

+ +
+
expression
+
string. The JavaScript expression to evaluate. The string must evaluate to a object that can be represented as JSON, or an exception will be thrown. For example, expression must not evaluate to a function.
+
options{{optional_inline}}
+
object. Options for the function (Note that Firefox does not yet support this options), as follows:
+
+
+
frameURL{{optional_inline}}
+
string. The URL of the frame in which to evaluate the expression. If this is omitted, the expression is evaluated in the main frame of the window.
+
useContentScriptContext{{optional_inline}}
+
boolean. If true, evaluate the expression in the context of any content scripts that this extension has attached to the page. If you set this option, then you must have actually attached some content scripts to the page, or a Devtools error will be thrown.
+
contextSecurityOrigin {{optional_inline}}
+
string. Evaluate the expression in the context of a content script attached by a different extension, whose origin matches the value given here. This overrides useContentScriptContext.
+
+
+
+ +

Return value

+ +

A Promise that will be fulfilled with an array containing two elements.

+ +

If no error occurred, element 0 will contain the result of evaluating the expression, and element 1 will be undefined.

+ +

If an error occurred, element 0 will be undefined, and element 1 will contain an object giving details about the error. Two different sorts of errors are distinguished:

+ + + +

ブラウザの対応状況

+ +

{{Compat("webextensions.api.devtools.inspectedWindow.eval")}}

+ + + +

+ +

This tests whether jQuery is defined in the inspected window, and logs the result. Note that this wouldn't work in a content script, because even if jQuery were defined, the content script would not see it.

+ +
function handleError(error) {
+  if (error.isError) {
+    console.log(`Devtools error: ${error.code}`);
+  } else {
+    console.log(`JavaScript error: ${error.value}`);
+  }
+}
+
+function handleResult(result) {
+  console.log(result);
+  if (result[0] !== undefined) {
+    console.log(`jQuery: ${result[0]}`);
+  } else if (result[1]) {
+    handleError(result[1]);
+  }
+}
+
+const checkjQuery = "typeof jQuery != 'undefined'";
+
+evalButton.addEventListener("click", () => {
+  browser.devtools.inspectedWindow.eval(checkjQuery)
+    .then(handleResult);
+});
+ +

Helper examples

+ +

This uses the $0 helper to set the background color of the element that's currently selected in the Inspector:

+ +
const evalButton = document.querySelector("#reddinate");
+const evalString = "$0.style.backgroundColor = 'red'";
+
+function handleError(error) {
+  if (error.isError) {
+    console.log(`Devtools error: ${error.code}`);
+  } else {
+    console.log(`JavaScript error: ${error.value}`);
+  }
+}
+
+function handleResult(result) {
+  if (result[1]) {
+    handleError(result[1]);
+  }
+}
+
+evalButton.addEventListener("click", () => {
+  browser.devtools.inspectedWindow.eval(evalString)
+    .then(handleResult);
+});
+
+ +

This uses the inspect() helper to select the first <h1> element in the page:

+ +
const inspectButton = document.querySelector("#inspect");
+const inspectString = "inspect(document.querySelector('h1'))";
+
+function handleError(error) {
+  if (error.isError) {
+    console.log(`Devtools error: ${error.code}`);
+  } else {
+    console.log(`JavaScript error: ${error.value}`);
+  }
+}
+
+function handleResult(result) {
+  if (result[1]) {
+    handleError(result[1]);
+  }
+}
+
+inspectButton.addEventListener("click", () => {
+  browser.devtools.inspectedWindow.eval(inspectString)
+    .then(handleResult);
+});
+
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.devtools API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html new file mode 100644 index 0000000000..e7a8f7181d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/index.html @@ -0,0 +1,79 @@ +--- +title: devtools.inspectedWindow +slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - devtools.inspectedWindow +translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow +--- +
{{AddonSidebar}}
+ +
+

このページは Firefox 54 に存在する WebExtensions devtools APIs を記述しています。このAPI は Chrome devtools APIs に基づいていますが、Firefoxでは実装されていない多くの機能があり、よってここに文書化されていません。現在欠けている機能を見るには、 Limitations of the devtools APIs を見てください。

+
+ +

devtools.inspectedWindow API によって開発ツール拡張機能では開発ツールが割当てられたウィンドウと相互作用できます。

+ +

すべての devtools API と同様に、この API はmanifest.json devtools_page キー内に定義されたドキュメントや、拡張機能が作成するその他の開発ツールドキュメント(例えば拡張機能が作ったパネル自身のドキュメント)の中だけでコードを利用できます。詳細は developer tools の拡張 を見てください。

+ +

プロパティ

+ +
+
devtools.inspectedWindow.tabId
+
開発ツールが付属しているウィンドウの ID
+
+ +

Functions

+ +
+
devtools.inspectedWindow.eval()
+
ターゲットウィンドウ内の  JavaScript を評価する
+
devtools.inspectedWindow.reload()
+
ターゲットウィンドウのドキュメントを再読み込みする
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.devtools.inspectedWindow")}}{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.devtools.inspectedWindow API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html new file mode 100644 index 0000000000..6837e95e36 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/devtools.inspectedwindow/tabid/index.html @@ -0,0 +1,77 @@ +--- +title: devtools.inspectedWindow.tabId +slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId +translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId +--- +
{{AddonSidebar()}}
+ +

devtools のこのインスタンスがアタッチされる {{WebExtAPIRef("tabs.Tab", "tab")}} の ID。番号で表されます。

+ +

これは拡張機能のバックグラウンドページに送信できるため、バックグラウンドページは {{WebExtAPIRef("tabs")}} API を使用してタブと対話できます:

+ +
// devtools-panel.js
+
+const scriptToAttach = "document.body.innerHTML = 'Hi from the devtools';";
+
+attachContentScriptButton.addEventListener("click", () => {
+  browser.runtime.sendMessage({
+    tabId: browser.devtools.inspectedWindow.tabId,
+    script: scriptToAttach
+  });
+});
+ +
// background.js
+
+function handleMessage(request, sender, sendResponse) {
+  browser.tabs.executeScript(request.tabId, {
+    code: request.script
+  });
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

ブラウザの対応状況

+ +

{{Compat("webextensions.api.devtools.inspectedWindow.tabId")}}

+ + + +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.devtools API に基づいています。

+ +

Microsoft Edge の互換性データは Microsoft Corporation によって提供され、Creative Commons Attribution 3.0 United States License に含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/devtools.network/index.html b/files/ja/mozilla/add-ons/webextensions/api/devtools.network/index.html new file mode 100644 index 0000000000..b5d97b1b1e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/devtools.network/index.html @@ -0,0 +1,74 @@ +--- +title: devtools.network +slug: Mozilla/Add-ons/WebExtensions/API/devtools.network +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - devtools.network +translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.network +--- +
{{AddonSidebar}}
+ +
+

このページは Firefox 54 に存在する WebExtensions devtools APIs を記述しています。このAPI は Chrome devtools APIs に基づいていますが、Firefoxでは実装されていない多くの機能があり、よってここに文書化されていません。現在欠けている機能を見るには、 Limitations of the devtools APIs を見てください。

+
+ +

devtools.network API によって開発ツール拡張機能では開発ツールが付属しているウィンドウ(インスペクト対象ウィンドウ)に関連するネットワークリクエストの情報を取得できます。

+ +

すべての devtools API と同様に、この API はmanifest.json devtools_page キー内に定義されたドキュメントや、拡張機能が作成するその他の開発ツールドキュメント(例えば拡張機能が作ったパネル自身のドキュメント)の中だけでコードを利用できます。これ以上は 開発ツールを拡張するを見てください。

+ +

Events

+ +
+
devtools.network.onNavigated
+
ユーザーが新規ページのインスペクト対象ウィンドウに移動した時に発火します
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.devtools.network")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.devtools.network API に基づいています。また、このドキュメントは bookmarks.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/devtools.panels/index.html b/files/ja/mozilla/add-ons/webextensions/api/devtools.panels/index.html new file mode 100644 index 0000000000..efb826a25f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/devtools.panels/index.html @@ -0,0 +1,105 @@ +--- +title: devtools.panels +slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - devtools.panels +translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels +--- +
{{AddonSidebar}}
+ +
+

このAPI は Chrome devtools APIs に基づいていますが、Firefoxでは実装されていない多くの機能があり、よってここに文書化されていません。現在欠けている機能を見るには、 Limitations of the devtools APIs を見てください。

+
+ +

devtools.panels API によって開発ツール拡張機能では開発ツールウィンドウ内のユーザーインターフェイスの定義ができます。

+ +

開発ツールウィンドウにはいくつもの個別のツールがあります - JavaScript デバッガー、ネットワークモニター、などが。最上位のタブの行でユーザーは色々なツールを切り替えられます。ツールのUIをホストするこのウィンドウは「パネル」と呼ばれます。

+ +

devtools.panels API にて開発ツールウィンドウ内の新規パネルを作成できます。

+ +

すべての devtools API と同様に、この API はmanifest.json devtools_page キー内に定義されたドキュメントや、拡張機能が作成するその他の開発ツールドキュメント(例えばパネル自身のドキュメント)の中だけでコードを利用できます。これ以上は 開発ツールを拡張するを見てください。

+ +

+ +
+
devtools.panels.ElementsPanel
+
ブラウザーの開発ツールの HTML/CSS インスペクターを表す
+
devtools.panels.ExtensionPanel
+
拡張機能によって作られた開発ツールパネルを表す
+
devtools.panels.ExtensionSidebarPane
+
ブラウザーの開発ツールの HTML/CSS インスペクターに、拡張機能が追加したペインを表す
+
+ +

プロパティ

+ +
+
devtools.panels.elements
+
ElementsPanel オブジェクトの参照
+
devtools.panels.themeName
+
現在の開発ツールテーマの名前
+
+ +

関数

+ +
+
devtools.panels.create()
+
開発ツールを作成する
+
+ +

イベント

+ +
+
devtools.panels.onThemeChanged
+
開発ツールテーマが変更された時に発火する
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.devtools.panels", 2)}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.devtools.panels API に基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/downloads/download/index.html b/files/ja/mozilla/add-ons/webextensions/api/downloads/download/index.html new file mode 100644 index 0000000000..daf99a07a2 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/downloads/download/index.html @@ -0,0 +1,127 @@ +--- +title: downloads.download() +slug: Mozilla/Add-ons/WebExtensions/API/downloads/download +translation_of: Mozilla/Add-ons/WebExtensions/API/downloads/download +--- +
{{AddonSidebar()}}
+ +

{{WebExtAPIRef("downloads")}} API の download() 関数ではURLとそのほかのオプションの設定を行うことでファイルのダウンロードをすることができます。

+ + + +

この関数は非同期に実行され、Promiseを返します。

+ +

構文

+ +
var downloading = browser.downloads.download(
+  options                   // object
+)
+
+ +

パラメータ

+ +
+
options
+
このobjectではダウンロードしたいファイルやその他のダウンロードに関する設定を指定します。指定できるプロパティは以下です。
+
+
+
body{{optional_inline}}
+
リクエストのbodyをstringで指定します。
+
conflictAction{{optional_inline}}
+
A string representing the action you want taken if there is a filename conflict, as defined in the {{WebExtAPIRef('downloads.FilenameConflictAction')}} type (defaults to "uniquify" when it is not specified).
+
filename{{optional_inline}}
+
A string representing a file path relative to the default downloads directory — this provides the location where you want the file to be saved, and what filename you want to use. Absolute paths, empty paths, and paths containing back-references (../) will cause an error. If omitted, this value will default to the filename already given to the download file, and a location immediately inside the downloads directory.
+
headers{{optional_inline}}
+
An array of objects representing extra HTTP headers to send with the request if the URL uses the HTTP[s] protocol. Each header is represented as a dictionary object containing the keys name and either value or binaryValue, restricted to those allowed by XMLHttpRequest.
+
incognito{{optional_inline}}
+
A boolean: if present and set to true, then associate this download with a private browsing session. This means that it will only appear in the download manager for any private windows that are currently open.
+
method{{optional_inline}}
+
HTTP[S]を使用したURLを指定した際、HTTPメソッドをstringで指定します。GETもしくはPOSTを設定できます。
+
saveAs{{optional_inline}}
+
+

A boolean that specifies whether to provide a file chooser dialog to allow the user to select a filename (true), or not (false).

+ +

If this option is omitted, the browser will show the file chooser or not based on the general user preference for this behavior (in Firefox this preference is labeled "Always ask you where to save files" in about:preferences, or browser.download.useDownloadDir in about:config).

+
+
url
+
ダウンロードするURLをstringで指定します。
+
+
+
+ +

戻り値

+ +

Promiseが返却されます。ダウンロードが成功した場合、new {{WebExtAPIRef("downloads.DownloadItem")}}のidが格納されたpromiseを受け取ります。対して、promiseがrejectされた場合は、エラーメッセージを受け取ります。

+ +

ブラウザ実装状況

+ + + +

 

+ +

{{Compat("webextensions.api.downloads.download")}}

+ +

 

+ +

+ +

以下のダウンロードの例ではファイル名と保存場所を指定し、conflictActionuniquifyを指定しています。

+ +
function onStartedDownload(id) {
+  console.log(`Started downloading: ${id}`);
+}
+
+function onFailed(error) {
+  console.log(`Download failed: ${error}`);
+}
+
+var downloadUrl = "https://example.org/image.png";
+
+var downloading = browser.downloads.download({
+  url : downloadUrl,
+  filename : 'my-image-again.png',
+  conflictAction : 'uniquify'
+});
+
+downloading.then(onStartedDownload, onFailed);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

このAPIはChromiumの chrome.downloads APIを元にしています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/downloads/index.html b/files/ja/mozilla/add-ons/webextensions/api/downloads/index.html new file mode 100644 index 0000000000..98dcaef054 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/downloads/index.html @@ -0,0 +1,134 @@ +--- +title: downloads +slug: Mozilla/Add-ons/WebExtensions/API/downloads +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - downloads +translation_of: Mozilla/Add-ons/WebExtensions/API/downloads +--- +
{{AddonSidebar}}
+ +

拡張機能にブラウザーのダウンロードマネージャーとのやりとりを可能にします。このAPI モジュールを、ファイルマネージャーでのファイルのダウンロード、キャンセル、停止、ダウンロードの再開、ダウンロード済みのファイルの表示に使用できます。

+ +

このAPIを使うには manifest.json ファイルで指定する "downloads" API パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("downloads.FilenameConflictAction")}}
+
ダウンロードされたファイル名が既存ファイルと衝突する場合の動作オプション定義
+
{{WebExtAPIRef("downloads.InterruptReason")}}
+
ダウンロードが中断された理由の集合を定義
+
{{WebExtAPIRef("downloads.DangerType")}}
+
ダウンロード可能なファイルに関連した想定される危険性への警告の集合を定義
+
{{WebExtAPIRef("downloads.State")}}
+
現在のダウンロードが取りうるさまざまな状態を定義
+
{{WebExtAPIRef("downloads.DownloadItem")}}
+
ダウンロード済みのファイルを表現する
+
{{WebExtAPIRef("downloads.StringDelta")}}
+
2つの文字列の差異を表現する
+
{{WebExtAPIRef("downloads.DoubleDelta")}}
+
2つの倍精度実数の差異を表現する
+
{{WebExtAPIRef("downloads.BooleanDelta")}}
+
2つの真偽値の差異を表現する
+
{{WebExtAPIRef("downloads.DownloadTime")}}
+
ダウンロード完了にかかった時間を表現する
+
{{WebExtAPIRef("downloads.DownloadQuery")}}
+
ダウンロードマネージャーで特定のダウンロードを検索するのに使われるパラメーターを定義
+
+ +

関数

+ +
+
{{WebExtAPIRef("downloads.download()")}}
+
URL とオプション設定を与えて、ファイルをダウンロードします
+
{{WebExtAPIRef("downloads.search()")}}
+
ブラウザーのダウンロードマネージャーで使える {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} に問い合わせて、指定した検索条件にマッチするものを返します
+
{{WebExtAPIRef("downloads.pause()")}}
+
ダウンロードを停止します
+
{{WebExtAPIRef("downloads.resume()")}}
+
停止したダウンロードを再開します
+
{{WebExtAPIRef("downloads.cancel()")}}
+
ダウンロードをキャンセルします
+
{{WebExtAPIRef("downloads.getFileIcon()")}}
+
指定したダウンロードのアイコンを取得します
+
{{WebExtAPIRef("downloads.open()")}}
+
関連付けられたアプリケーションでダウンロード済みのファイルを開きます
+
{{WebExtAPIRef("downloads.show()")}}
+
プラットフォームのファイルマネージャーアプリケーションを開いて、ダウンロードフォルダー内のファイルを表示します
+
{{WebExtAPIRef("downloads.showDefaultFolder()")}}
+
プラットフォームのファイルマネージャーアプリケーションを開いて、デフォルトのダウンロードフォルダーを表示します
+
{{WebExtAPIRef("downloads.erase()")}}
+
ダウンロード済みのファイルをディスクから消去することなく、ブラウザーのダウンロード履歴からマッチした {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} を消去します
+
{{WebExtAPIRef("downloads.removeFile()")}}
+
ブラウザーのダウンロード履歴ではなく、ダウンロード済みのファイルをディスクから消去します
+
{{WebExtAPIRef("downloads.acceptDanger()")}}
+
危険なダウンロードを受け入れるかキャンセルするかを、ユーザーに確認します
+
{{WebExtAPIRef("downloads.drag()")}}
+
ダウンロード済みのファイルを他のアプリケーションにドラッグし始めます
+
{{WebExtAPIRef("downloads.setShelfEnabled()")}}
+
現在のブラウザープロファイルに関連するすぺてのウィンドウの下のグレーの棚を有効化/無効化します。この棚は少なくとも1つの拡張機能が無効化すると無効になります。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("downloads.onCreated")}}
+
ダウンロード開始時に {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}} オブジェクトと共に発火します
+
{{WebExtAPIRef("downloads.onErased")}}
+
ダウンロードが履歴から消去された時に downloadId と共に発火します
+
{{WebExtAPIRef("downloads.onChanged")}}
+
bytesReceived を除くいかなる {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}} のプロパティが変わった時、このイベントは downloadId や変更したプロパティを含むオブジェクトと共に発火します
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.downloads")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.downloads API に基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/events/index.html b/files/ja/mozilla/add-ons/webextensions/api/events/index.html new file mode 100644 index 0000000000..7b911a1f0a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/events/index.html @@ -0,0 +1,74 @@ +--- +title: events +slug: Mozilla/Add-ons/WebExtensions/API/events +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - events +translation_of: Mozilla/Add-ons/WebExtensions/API/events +--- +
{{AddonSidebar}}
+ +

イベントをディスパッチする API から使われる共通の型です。

+ +

+ +
+
{{WebExtAPIRef("events.Rule")}}
+
イベント処理用の宣言的ルールを記述します。
+
{{WebExtAPIRef("events.Event")}}
+
Chrome イベントにリスナーを追加、削除できるオブジェクト。
+
{{WebExtAPIRef("events.UrlFilter")}}
+
いろいろな条件で URL をフィルターする。所与の条件のいずれかがマッチした場合、フィルター全体がマッチする。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.events")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.events API に基づいています。また、このドキュメントは events.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/extension/index.html b/files/ja/mozilla/add-ons/webextensions/api/extension/index.html new file mode 100644 index 0000000000..49c768d793 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/extension/index.html @@ -0,0 +1,105 @@ +--- +title: extension +slug: Mozilla/Add-ons/WebExtensions/API/extension +tags: + - API + - Add-ons + - Extension + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/extension +--- +
{{AddonSidebar}}
+ +

拡張機能に関連するユーティリティ。拡張機能のリソースパッケージのURLを取得したり、拡張機能のページの Window オブジェクトを取得したり、いろいろな設定の値を取得したりします。注意として、このモジュールのメッセージ APIs は非推奨で、 runtime モジュールの同様な API が好まれます。

+ +

+ +
+
{{WebExtAPIRef("extension.ViewType")}}
+
拡張機能ビューの型
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("extension.lastError")}}
+
同期型の拡張機能APIがエラーに終わった場合のコールバックの寿命をセットします。エラーが起きなかったら lastError は undefined.になります。
+
{{WebExtAPIRef("extension.inIncognitoContext")}}
+
incognito タブ内でコンテンツスクリプトが実行されたり、 incognito プロセス内で拡張機能ページが実行されたら true になります。後者は 'split' incognito_behavior の場合だけです。
+
+ +

関数

+ +
+
{{WebExtAPIRef("extension.getURL()")}}
+
拡張機能がインストールされたディレクトリーの相対パスを完全修飾 URL に変換する
+
{{WebExtAPIRef("extension.getViews()")}}
+
今の拡張機能内で実行されているページの Window オブジェクトを返す
+
{{WebExtAPIRef("extension.getBackgroundPage()")}}
+
今の拡張機能内で実行されているバックグラウンドページの Window オブジェクトを返す。拡張機能がバックグラウンドページを持たない場合は null を返す
+
{{WebExtAPIRef("extension.isAllowedIncognitoAccess()")}}
+
拡張機能が Incognito-モード (ユーザーが制御する 'Incognito を許可' のチェックボックスで定義される) にアクセスする状態を取得する
+
{{WebExtAPIRef("extension.isAllowedFileSchemeAccess()")}}
+
拡張機能が 'file://' スキーム(ユーザーが制御する 'File URLs のアクセスを許可' のチェックボックスで定義される) にアクセスする状態を取得する
+
{{WebExtAPIRef("extension.setUpdateUrlData()")}}
+
拡張機能の更新URL内で使われる ap CGI パラメーターをセットする。この値はブラウザーのベンダーストアでホストされる拡張機能では無視される
+
+ +

イベント

+ +
+
{{WebExtAPIRef("extension.onRequest")}}
+
拡張機能のプロセスかコンテンツスクリプトのいずれかからリクエストが送られた時に発火します
+
{{WebExtAPIRef("extension.onRequestExternal")}}
+
その他の拡張機能からリクエストが送られた時に発火します
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.extension")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.extension API に基づいています。また、このドキュメントは extension.jsonにおける Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/imagedetails/index.html b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/imagedetails/index.html new file mode 100644 index 0000000000..b3f77ef0ec --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/imagedetails/index.html @@ -0,0 +1,75 @@ +--- +title: extensionTypes.ImageDetails +slug: Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageDetails +tags: + - API + - Add-ons + - Extensions + - ImageDetails + - Non-standard + - Reference + - Type + - WebExtensions + - extensionTypes +translation_of: Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageDetails +--- +
{{AddonSidebar()}}
+ +

画像のフォーマットと品質に関する詳細。

+ +

+ +

この型はオブジェクトです。以下のプロパティを持ちます。

+ +
+
format{{optional_inline}}
+
{{WebExtAPIRef('extensionTypes.ImageFormat')}} 型。出力される画像のフォーマット。デフォルトは "png"
+
quality{{optional_inline}}
+
integer 型。フォーマットが "jpeg" の場合、出力される画像の品質はこの値により変化する。0 から 100 の間の数値であり、0 から 1 の間の数値に変換されて HTMLCanvasElement.toDataURL() の引数 encoderOptions として使われる。省略された場合は、92 が使われる。品質を下げると、出力される画像の視覚的な変化が大きくなり、画像の格納に必要なバイト数も小さくなる。PNG 画像の場合、この値は無視される。
+
+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.extensionTypes.ImageDetails")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.extensionTypes API に基づいています。このドキュメントは extension_types.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/index.html b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/index.html new file mode 100644 index 0000000000..3c6424f619 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/index.html @@ -0,0 +1,76 @@ +--- +title: extensionTypes +slug: Mozilla/Add-ons/WebExtensions/API/extensionTypes +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - extensionTypes +translation_of: Mozilla/Add-ons/WebExtensions/API/extensionTypes +--- +
{{AddonSidebar}}
+ +

その他の WebExtension API で使われる共通な型

+ +

+ +
+
{{WebExtAPIRef("extensionTypes.ImageFormat")}}
+
画像フォーマット
+
{{WebExtAPIRef("extensionTypes.ImageDetails")}}
+
画像のフォーマットと画質の詳細
+
{{WebExtAPIRef("extensionTypes.RunAt")}}
+
タブに JavaScript か CSS が挿入されてほんのすぐ
+
extensionTypes.CSSOrigin
+
tabs.insertCSS で挿入された CSS スタイルシートが "author" か "user" のスタイルシートのどちらであるかを示す
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.extensionTypes")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.extensionTypes API に基づいています。また、このドキュメントは extension_types.jsonにおける Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+ +

 

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/runat/index.html b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/runat/index.html new file mode 100644 index 0000000000..eb04888c5f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/extensiontypes/runat/index.html @@ -0,0 +1,76 @@ +--- +title: extensionTypes.RunAt +slug: Mozilla/Add-ons/WebExtensions/API/extensionTypes/RunAt +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - RunAt + - Type + - WebExtensions + - extensionTypes +translation_of: Mozilla/Add-ons/WebExtensions/API/extensionTypes/RunAt +--- +
{{AddonSidebar()}}
+ +

JavaScript や CSS がどの時点でタブに挿入されるか。

+ +

+ +

この型の値は文字列です。とりうる値は、"document_start", "document_end", "document_idle" です。

+ + + +

デフォルトの値は "document_idle" です。

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.extensionTypes.RunAt")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.extensionTypes API に基づいています。また、このドキュメントは extension_types.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/find/find/index.html b/files/ja/mozilla/add-ons/webextensions/api/find/find/index.html new file mode 100644 index 0000000000..e33d2cf4f9 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/find/find/index.html @@ -0,0 +1,298 @@ +--- +title: find.find() +slug: Mozilla/Add-ons/WebExtensions/API/find/find +translation_of: Mozilla/Add-ons/WebExtensions/API/find/find +--- +
{{AddonSidebar()}}
+ +

テキストによるタブ内の検索をします。

+ +

次のことができます。

+ + + +

デフォルトではマッチ件数ぐらいしか返ってきませんが、タブ内でのより多くの情報を得るため、次のオプションを指定することができます。

+ + + +

結果を内部的に保持しているため、ハイライト機能は次に上書き(find())されるまで次の関数で起動できます。

+ + + +

この関数は asynchronous/ 非同期 関数で Promise を返します。

+ +

Syntax

+ +
browser.find.find(
+  queryphrase,       // string
+  options            // optional object
+)
+
+ +

Parameters

+ +
+
queryphrase
+
string. 検索語。
+
options{{optional_inline}}
+
+

object. An object specifying additional options. It may take any of the following properties, all optional:

+ +
+
tabId
+
integer. ID of the tab to search. Defaults to the active tab.
+
caseSensitive
+
boolean. If true, the search is case-sensitive. Defaults to false.
+
entireWord
+
boolean. Match only entire words: so "Tok" will not be matched inside "Tokyo". Defaults to false.
+
includeRangeData
+
boolean. Include range data in the response, which describe where in the page DOM the match was found. Defaults to false.
+
includeRectData
+
boolean. Include rectangle data in the response, which describes where in the rendered page the match was found. Defaults to false.
+
+
+
+ +

Return value

+ +

A Promise that will be fulfilled with an object containing up to three properties:

+ +
+
count
+
integer. The number of results found.
+
rangeData{{optional_inline}}
+
+

array. If includeRangeData was given in the options parameter, then this property will be included. It is provided as an array of RangeData objects, one for each match. それぞれのRangeData はDOM ツリー構造をしています。検索語の周りを表示することなどにも使えます。

+ +

次の rectData, も同様に配列で rangeData[i]rectData[i]は1対1で対応します。.

+ +

Each RangeData contains the following properties:

+ +
+
framePos
+
マッチしたframe番号(訳注: iframeごとで変わる番号). 0 は通常のページ部分で親です。 Note that the order of objects in the rangeData array will sequentially line up with the order of frame indexes: for example, framePos for the first sequence of rangeData objects will be 0, framePos for the next sequence will be 1, and so on.
+
startTextNodePos
+
テキスト Nodeの 開始側Index(訳注:直接この値をAPI一本で活用できないため、下記のサンプルを参照)
+
endTextNodePos
+
テキスト Nodeの 終端側Index.
+
startOffset
+
開始Node内の 初めの文字列の位置.
+
endOffset
+
終端Node内の 終わりの文字列の位置
+
+
+
rectData{{optional_inline}}
+
+

array. 呼び出し時にoptionsで includeRectData 引数を与えると結果を返します。 RectData objectsの配列です。それらはマッチしたワードを含む、client rectangles を返します。拡張機能でハイライトなどに使えるでしょう。.

+ +

Each RectData object はそれぞれ 1つのマッチに対して2つのプロパティを持ちます。

+ +
+
rectsAndTexts
+
1対1の関係となる2つの配列を持ちます: +
    +
  • rectList: 4つの integer をもつ配列: top, left, bottom, right. その位置情報はviewportにおける左上からの位置です。
  • +
  • textList: 上記rectList[i]に含まれた textList[i] (string)を持つ配列です。
  • +
+ +

例えば Webページ上で:

+ +

"You may"を探すと2つの矩形エリアで表現されます。:

+ +

RectData はこのようにマッチし、 rectsAndTexts.rectListrectsAndTexts.textListは次のようになります。

+ +
    +
  • textList[0] = "You ",  rectList[0] はHTML上の境界を表す矩形エリアを含みます。
  • +
  • textList[1] = "may",  rectList[1]も"may"について同様です。
  • +
+
+
text
+
マッチしたテキスト全体、上の例では"You may"が丸ごと入ります。
+
+
+
+ +

Browser compatibility

+ + + +

{{Compat("webextensions.api.find.find", 10)}}

+ +

Examples

+ +

Basic examples

+ +

Search the active tab for "banana", log the number of matches, and highlight them:

+ +
function found(results) {
+  console.log(`There were: ${results.count} matches.`);
+  if (results.count > 0) {
+    browser.find.highlightResults();
+  }
+}
+
+browser.find.find("banana").then(found);
+ +

Search for "banana" across all tabs (note that this requires the "tabs" permission, because it accesses tab.url):

+ +
async function findInAllTabs(allTabs) {
+  for (let tab of allTabs) {
+    let results = await browser.find.find("banana", {tabId: tab.id});
+    console.log(`In page "${tab.url}": ${results.count} matches.`)
+  }
+}
+
+browser.tabs.query({}).then(findInAllTabs);
+ +

Using rangeData

+ +

In this example the extension uses rangeData to get the context in which the match was found. The context is the complete textContent of the node in which the match was found. If the match spanned nodes, the context is the concatenation of the textContent of all spanned nodes.

+ +

Note that for simplicity, this example doesn't handle pages that contain frames. To support this you'd need to split rangeData into groups, one per frame, and execute the script in each frame.

+ +

The background script:

+ +
// background.js
+
+async function getContexts(matches) {
+
+  // get the active tab ID
+  let activeTabArray = await browser.tabs.query({
+    active: true, currentWindow: true
+  });
+  let tabId = activeTabArray[0].id;
+
+  // execute the content script in the active tab
+  await browser.tabs.executeScript(tabId, {file: "get-context.js"});
+  // ask the content script to get the contexts for us
+  let contexts = await browser.tabs.sendMessage(tabId, {
+    ranges: matches.rangeData
+  });
+  for (let context of contexts) {
+    console.log(context);
+  }
+
+}
+
+browser.browserAction.onClicked.addListener((tab) => {
+  browser.find.find("example", {includeRangeData: true}).then(getContexts);
+});
+
+ +

The content script:

+ +
/**
+ * Get all the text nodes into a single array
+ */
+function getNodes() {
+  let walker = document.createTreeWalker(document, window.NodeFilter.SHOW_TEXT, null, false);
+  let nodes = [];
+  while(node = walker.nextNode()) {
+    nodes.push(node);
+  }
+
+  return nodes;
+}
+
+/**
+ * Gets all text nodes in the document, then for each match, return the
+ * complete text content of nodes that contained the match.
+ * If a match spanned more than one node, concatenate the textContent
+ * of each node.
+ */
+function getContexts(ranges) {
+
+  let contexts = [];
+  let nodes = getNodes();
+
+  for (let range of ranges) {
+    let context = nodes[range.startTextNodePos].textContent;
+    let pos = range.startTextNodePos;
+    while (pos < range.endTextNodePos) {
+      pos++;
+      context += nodes[pos].textContent;
+    }
+    contexts.push(context);
+  }
+  return contexts;
+}
+
+browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
+  sendResponse(getContexts(message.ranges));
+});
+
+ +

Using rectData

+ +

In this example the extension uses rectData to "redact" the matches, by adding black DIVs over the top of their bounding rectangles:

+ +

Note that in many ways this is a poor way to redact pages.

+ +

The background script:

+ +
// background.js
+
+async function redact(matches) {
+
+  // get the active tab ID
+  let activeTabArray = await browser.tabs.query({
+    active: true, currentWindow: true
+  });
+  let tabId = activeTabArray[0].id;
+
+  // execute the content script in the active tab
+  await browser.tabs.executeScript(tabId, {file: "redact.js"});
+  // ask the content script to redact matches for us
+  await browser.tabs.sendMessage(tabId, {rects: matches.rectData});
+}
+
+browser.browserAction.onClicked.addListener((tab) => {
+  browser.find.find("banana", {includeRectData: true}).then(redact);
+});
+
+ +

The content script:

+ +
// redact.js
+
+/**
+ * Add a black DIV where the rect is.
+ */
+function redactRect(rect) {
+  var redaction = document.createElement("div");
+  redaction.style.backgroundColor = "black";
+  redaction.style.position = "absolute";
+  redaction.style.top = `${rect.top}px`;
+  redaction.style.left = `${rect.left}px`;
+  redaction.style.width = `${rect.right-rect.left}px`;
+  redaction.style.height = `${rect.bottom-rect.top}px`;
+  document.body.appendChild(redaction);
+}
+
+/**
+ * Go through every rect, redacting them.
+ */
+function redactAll(rectData) {
+  for (match of rectData) {
+    for (rect of match.rectsAndTexts.rectList) {
+      redactRect(rect);
+    }
+  }
+}
+
+browser.runtime.onMessage.addListener((message) => {
+  redactAll(message.rects);
+});
+
+ +

{{WebExtExamples}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/find/index.html b/files/ja/mozilla/add-ons/webextensions/api/find/index.html new file mode 100644 index 0000000000..903eef3507 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/find/index.html @@ -0,0 +1,32 @@ +--- +title: find +slug: Mozilla/Add-ons/WebExtensions/API/find +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - find +translation_of: Mozilla/Add-ons/WebExtensions/API/find +--- +
{{AddonSidebar}}
+ +

ウェブページのテキストを検索し、マッチしたものをハイライトします。

+ +

この API を使うには "find" パーミッションが必要です。

+ +

関数

+ +
+
{{WebExtAPIRef("find.find()")}}
+
ウェブページのテキストを検索する
+
{{WebExtAPIRef("find.highlightResults()")}}
+
最後に検索にマッチした集合をハイライトする
+
{{WebExtAPIRef("find.removeHighlighting()")}}
+
あらゆるハイライトを削除する
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.find", 1, 1)}} {{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/history/historyitem/index.html b/files/ja/mozilla/add-ons/webextensions/api/history/historyitem/index.html new file mode 100644 index 0000000000..d698e6101e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/history/historyitem/index.html @@ -0,0 +1,83 @@ +--- +title: history.HistoryItem +slug: Mozilla/Add-ons/WebExtensions/API/history/HistoryItem +tags: + - API + - Add-ons + - Extensions + - History + - HistoryItem + - Non-standard + - Reference + - Type + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/history/HistoryItem +--- +

{{AddonSidebar()}}

+ +

HistoryItem オブジェクトはブラウザー履歴でのページ情報を提供します。

+ +

+ +

これは下記のプロパティを持つオブジェクトです:

+ +
+
id
+
string。アイテムに固有のID。
+
url {{optional_inline}}
+
string。ページのURL。
+
title {{optional_inline}}
+
string。ページのタイトル。
+
lastVisitTime {{optional_inline}}
+
number。ページが最後に読み込まれた日付と時間で、epochからのミリ秒で表現される。
+
visitCount {{optional_inline}}
+
number。ユーザーがページを訪問した回数。
+
typedCount {{optional_inline}}
+
number。ユーザーがアドレスをタイプしてページに移動したきた回数。
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.history.HistoryItem")}}

+ +

{{WebExtExamples}}

+ +
+ +

この API は Chromium の chrome.history API に基づいています。また、このドキュメントは history.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/history/index.html b/files/ja/mozilla/add-ons/webextensions/api/history/index.html new file mode 100644 index 0000000000..20f5a6e995 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/history/index.html @@ -0,0 +1,132 @@ +--- +title: history +slug: Mozilla/Add-ons/WebExtensions/API/history +tags: + - API + - Add-ons + - Extensions + - History + - Interface + - Non-standard + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/history +--- +
 {{AddonSidebar}}
+ +

ブラウザー履歴とやりとりする history API を使用します。

+ +
+

downloads は HistoryItem オブジェクトとして扱われるのに注意します。このため、ダウンロードのために history.onVisited も発火します。

+
+ +

ブラウザー履歴はユーザーが訪れたページの時間順の記録です。history API では次の事ができます:

+ + + +

しかしながら、ユーザーは1つのページを何度も訪問することがあるので、このAPI は「訪問数」の概念もあります。したがってこの API を次のようにも使えます:

+ + + +

このAPIを使うには manifest.json ファイルで指定する "history" パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("history.TransitionType")}}
+
ブラウザーがあるページにどのように移動したのかを記述
+
{{WebExtAPIRef("history.HistoryItem")}}
+
+

ブラウザー履歴のあるページに関する情報を提供

+
+
{{WebExtAPIRef("history.VisitItem")}}
+
+

ページへの単一の訪問を記述

+
+
+ +

関数

+ +
+
{{WebExtAPIRef("history.search()")}}
+
ブラウザー履歴を検索して、所与の条件にマッチする history.HistoryItem オブジェクトを得る
+
{{WebExtAPIRef("history.getVisits()")}}
+
所定のページへの訪問についての情報を取得する
+
{{WebExtAPIRef("history.addUrl()")}}
+
ブラウザー履歴に所定のページへの訪問のレコードを追加する
+
{{WebExtAPIRef("history.deleteUrl()")}}
+
ブラウザー履歴から 所定のURLへのすべての訪問を削除する
+
{{WebExtAPIRef("history.deleteRange()")}}
+
所定の時間範囲でユーザーが訪問したすべてのページを削除する
+
{{WebExtAPIRef("history.deleteAll()")}}
+
ブラウザー履歴からすべての訪問を削除する
+
+ +

イベント

+ +
+
{{WebExtAPIRef("history.onTitleChanged")}}
+
+
ユーザーがあるページに訪問してタイトルが記録された時に発火します
+
+
{{WebExtAPIRef("history.onVisited")}}
+
ユーザーがあるページに {{WebExtAPIRef("history.HistoryItem")}} を提供しつつそのページを訪問した時に発火します
+
{{WebExtAPIRef("history.onVisitRemoved")}}
+
+

ある URL がブラウザー履歴から完全に削除された時に発火します

+
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.history")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.history API に基づいています。また、このドキュメントは history.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/detectlanguage/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/detectlanguage/index.html new file mode 100644 index 0000000000..f34d266ad8 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/detectlanguage/index.html @@ -0,0 +1,115 @@ +--- +title: i18n.detectLanguage() +slug: Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - detectLanguage + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage +--- +
{{AddonSidebar()}}
+ +

提供されたテキストの言語を Compact Language Detector (CLD) を利用して検出します。

+ +

これは、Promise を返す非同期関数です。

+ +

構文

+ +
var detectingLanguages = browser.i18n.detectLanguage(
+  text                  // string
+)
+
+ +

引数

+ +
+
text
+
文字列。翻訳されるユーザー入力の文字列です。
+
+ +

戻り値

+ +

結果オブジェクトで解決される Promise。結果オブジェクトは 2 個のプロパティを持ちます:

+ +
+
isReliable
+
真偽値。検出された言語が確かかどうかを示します。
+
languages
+
オブジェクトの 配列。配列の各項目はさらに 2 個のプロパティを持ちます:
+
+
+
language
+
{{WebExtAPIRef('i18n.LanguageCode')}}。検出された言語です。
+
percentage
+
整数値。検出された言語で入力された文字列の割り合い。
+
+
+
+ +

ブラウザーの実装状況

+ + + +

{{Compat("webextensions.api.i18n.detectLanguage")}}

+ +

+ +
function onLanguageDetected(langInfo) {
+  for (lang of  langInfo.languages) {
+    console.log("Language is: " + lang.language);
+    console.log("Percentage is: " + lang.percentage);
+  }
+}
+
+var text = "L'homme est né libre, et partout il est dans les fers."
+
+var detecting = browser.i18n.detectLanguage(text);
+detecting.then(onLanguageDetected);
+
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/getacceptlanguages/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/getacceptlanguages/index.html new file mode 100644 index 0000000000..636e86d94d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/getacceptlanguages/index.html @@ -0,0 +1,92 @@ +--- +title: i18n.getAcceptLanguages() +slug: Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getAcceptLanguages + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages +--- +
{{AddonSidebar()}}
+ +

ブラウザーの accept-languages を取得します。これは、ブラウザーに使用されているロケールとは異なります。ロケールを取得するには、{{WebExtAPIRef('i18n.getUILanguage')}} を使用してください。

+ +

これは、Promise を返す非同期関数です。

+ +

構文

+ +
var gettingAcceptLanguages = browser.i18n.getAcceptLanguages()
+
+ +

引数

+ +

なし。

+ +

戻り値

+ +

{{WebExtAPIRef('i18n.LanguageCode')}} オブジェクトの 配列 で処理が完了した Promise

+ +

ブラウザーの実装状況

+ + + +

{{Compat("webextensions.api.i18n.getAcceptLanguages")}}

+ +

+ +
function onGot(languages) {
+  console.log(languages);
+  //e.g. Array [ "en-US", "en" ]
+}
+
+var gettingAcceptLanguages = browser.i18n.getAcceptLanguages();
+gettingAcceptLanguages.then(onGot);
+
+ +

 

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/getmessage/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/getmessage/index.html new file mode 100644 index 0000000000..c28d4a83ad --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/getmessage/index.html @@ -0,0 +1,119 @@ +--- +title: i18n.getMessage() +slug: Mozilla/Add-ons/WebExtensions/API/i18n/getMessage +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getMessage + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/getMessage +--- +
{{AddonSidebar()}}
+ +

指定したメッセージのローカライズされた文字列を取得します。

+ +

構文

+ +
browser.i18n.getMessage(
+  messageName,  // 文字列
+  substitutions // 任意
+)
+
+ +

引数

+ +
+
messageName
+
文字列。messages.json で指定されたメッセージ名です。messages.json 内にメッセージを見つけられない場合は:
+
+
    +
  • Firefox は "" を返し、エラーログを出力します。
  • +
  • Chrome は "" を返し、エラーログを出力しません。
  • +
+
+
substitutions{{optional_inline}}
+
文字列 または 文字列配列。単一の置換文字列、または置換文字列の配列です。
+
Chrome では、9 個より多くの置換文字列を与えると、getMessage()undefined を返します。
+
+ +

戻り値

+ +

文字列。現在のロケール向けにローカライズされたメッセージ。

+ +

ブラウザーの実装状況

+ + + +

{{Compat("webextensions.api.i18n.getMessage")}}

+ +

+ +

target.url を置換文字列として渡し、"messageContent" のローカライズされた文字列を取得します:

+ +
var message = browser.i18n.getMessage("messageContent", target.url);
+console.log(message);
+
+ +

これは、_locales/en/messages.json ファイルに含まれた次の内容で動作します:

+ +
{
+  "messageContent": {
+    "message": "You clicked $URL$.",
+    "description": "Tells the user which link they clicked.",
+    "placeholders": {
+      "url" : {
+        "content" : "$1",
+        "example" : "https://developer.mozilla.org"
+      }
+    }
+  }
+}
+ +

target.url が "https://developer.mozilla.org" である場合、"en" ロケールでのメッセージの値は次のようになります:

+ +
"You clicked https://developer.mozilla.org."
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/getuilanguage/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/getuilanguage/index.html new file mode 100644 index 0000000000..51161c8496 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/getuilanguage/index.html @@ -0,0 +1,84 @@ +--- +title: i18n.getUILanguage() +slug: Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - getUILanguage + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage +--- +
{{AddonSidebar()}}
+ +

ブラウザーの UI 言語を取得します。これは、優先されるユーザー言語を返す {{WebExtAPIRef('i18n.getAcceptLanguages')}} とは異なります。

+ +

構文

+ +
browser.i18n.getUILanguage()
+
+ +

引数

+ +

なし。

+ +

戻り値

+ +

文字列。{{WebExtAPIRef("i18n.LanguageCode")}} によるブラウザーの UI 言語コード。

+ +

ブラウザーの実装状況

+ + + +

{{Compat("webextensions.api.i18n.getUILanguage")}}

+ +

+ +
var uiLanguage = browser.i18n.getUILanguage();
+console.log(uiLanguage);
+
+//e.g. "ja"
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/index.html new file mode 100644 index 0000000000..deba5c0bf5 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/index.html @@ -0,0 +1,94 @@ +--- +title: i18n +slug: Mozilla/Add-ons/WebExtensions/API/i18n +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n +--- +
{{AddonSidebar}}
+ +

拡張機能を国際化する関数です。これらの API は、拡張機能に同梱したロケールファイルからローカライズ文字列を取得したり、ブラウザーの現在の言語や、その Accept-Language ヘッダー を調べるために使用します。

+ +

拡張機能で i18n を使用するための詳細は、以下の記事を参照してください:

+ + + +

+ +
+
{{WebExtAPIRef("i18n.LanguageCode")}}
+
"en-US" や "fr" などの 言語タグ
+
+ +

関数

+ +
+
{{WebExtAPIRef("i18n.getAcceptLanguages()")}}
+
ブラウザーの accept-languages を取得します。これは、ブラウザーに使用されているロケールとは異なります。ロケールを取得するには、{{WebExtAPIRef('i18n.getUILanguage')}} を使用してください。
+
{{WebExtAPIRef("i18n.getMessage()")}}
+
指定したメッセージのローカライズ文字列を取得します。
+
{{WebExtAPIRef("i18n.getUILanguage()")}}
+
ブラウザーの UI 言語を取得します。これは、優先されるユーザー言語を返す {{WebExtAPIRef('i18n.getAcceptLanguages')}} とは異なります。
+
{{WebExtAPIRef("i18n.detectLanguage()")}}
+
提供されたテキストの言語を Compact Language Detector を利用して検出します。
+
+ +
+
+ +

ブラウザーの実装状況

+ +

{{Compat("webextensions.api.i18n")}}

+ +

{{WebExtExamples("h2")}}

+ +
+
+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/languagecode/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/languagecode/index.html new file mode 100644 index 0000000000..2ed7796e1f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/languagecode/index.html @@ -0,0 +1,68 @@ +--- +title: i18n.LanguageCode +slug: Mozilla/Add-ons/WebExtensions/API/i18n/LanguageCode +tags: + - API + - Add-ons + - Extensions + - LanguageCode + - Non-standard + - Reference + - Type + - WebExtensions + - i18n +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/LanguageCode +--- +
{{AddonSidebar()}}
+ +

"en-US" や "fr" などの 言語タグ

+ +

+ +

この型の値は文字列です。

+ +

ブラウザーの実装状況

+ + + +

{{Compat("webextensions.api.i18n.LanguageCode")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は、Chromium の chrome.i18n API を基にしています。このドキュメンテーションは、Chromium コード内の i18n.json に由来しています。

+ +

Microsoft Edge 互換性データは、Microsoft Corporation より供給され、Creative Commons Attribution 3.0 United States License の下で含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/i18n/locale-specific_message_reference/index.html b/files/ja/mozilla/add-ons/webextensions/api/i18n/locale-specific_message_reference/index.html new file mode 100644 index 0000000000..adcde0288c --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/i18n/locale-specific_message_reference/index.html @@ -0,0 +1,127 @@ +--- +title: ロケール固有のメッセージ参照 +slug: Mozilla/Add-ons/WebExtensions/API/i18n/Locale-Specific_Message_reference +tags: + - Internationalization + - Localization + - Reference + - String + - WebExtensions + - i18n + - message + - message.json + - placeholders +translation_of: Mozilla/Add-ons/WebExtensions/API/i18n/Locale-Specific_Message_reference +--- +

国際化対応 (i18n) した拡張機能は、ロケール固有のメッセージを提供する少なくとも 1 個の messages.json というファイルを持っています。このページでは、messages.json の書式を説明します。

+ +
+

補足: 拡張機能を国際化する方法についての情報は、i18n ガイドを参照してください。

+
+ +

messages.json example

+ +

次のコードは、notify-link-clicks-i18n example 拡張機能から取られた messages.json ファイル の例示です。"name" と "message" のフィールドのみが必須です。

+ +
{
+  "extensionName": {
+    "message": "Notify link clicks i18n",
+    "description": "Name of the extension."
+  },
+
+  "extensionDescription": {
+    "message": "ユーザーがリンクをクリックしたときに通知を表示します。",
+    "description": "Description of the extension."
+  },
+
+  "notificationTitle": {
+    "message": "クリック通知",
+    "description": "Title of the click notification."
+  },
+
+  "notificationContent": {
+    "message": "$URL$ をクリックしました。",
+    "description": "Tells the user which link they clicked.",
+    "placeholders": {
+      "url" : {
+        "content" : "$1",
+        "example" : "https://developer.mozilla.org"
+      }
+    }
+  }
+}
+ +

ファイルの配置

+ +

messages.json ファイルは、サポートされたロケール名 (en, de, ja など) のディレクトリー内に置く必要があります。さらにこれらは、拡張機能のルートディレクトリ内の _locales と呼ばれるディレクトリー内に置く必要があります。

+ +

メンバーの詳細

+ +

このセクションは、messages.json 内に記述される各メンバーについて説明します。

+ +

name

+ +

各トップレベルのメンバーは、ローカライズするメッセージ文字列の name の後に名付けられます。例えば、上記の例の "extensionName""notificationContent" です。name は大文字と小文字が区別され、ローカライズされたメッセージテキストを受け取るためのキーとして振る舞います。

+ +

name には、次の文字が使用できます:

+ + + +

注記: @@ で始まる name を定義してはいけません。この名前は 事前定義されたメッセージ で予約されています。

+ +

message

+ +

"message" メンバーは、{{anch("placeholders")}} を含むことのできるローカライズされた文字列を含みます。次のように使用します:

+ + + +

他の注意すべき点:

+ + + +

description

+ +

{{optional_inline}}

+ +

"description" メンバーは、文字列に最適な訳語を作成する助けとなる情報を翻訳者に提供するために、メッセージ文字列の内容についての説明を含みます。

+ +

placeholders

+ +

{{optional_inline}}

+ +

"placeholders" メンバーは、メッセージ内で使用されるいくつかのプレースホルダー補助文字列を定義します。これらは、翻訳してほしくないハードコードされたアイテムや変数を参照するアイテムに利用できます。

+ +

各プレースホルダー補助文字列の定義は、それ自身がいくつかの値を持っています:

+ +
"url" : {
+  "content" : "$1",
+  "example" : "https://developer.mozilla.org"
+}
+ +

プレースホルダー名

+ +

プレースホルダー名は、補助文字列内の placeholder を表すために使用します ("url"$url$ になります)。これは、大文字と小文字が区別され、メッセージ文字列と同じ文字が使用できます {{anch("name")}}。

+ +

content

+ +

"content" アイテムは、placeholder の内容を定義します。これは、"My placeholder" などハードコードされた文字列にすることができますが、{{WebExtAPIRef("i18n.getMessage()")}} 呼び出しから取得した値も含められます。詳しい情報は、JavaScript からメッセージ文字列を取得する を参照してください。

+ +

example

+ +

{{optional_inline}}

+ +

任意の "example" アイテムは、プレースホルダーがエンドユーザーにどのように表示されるかの例を示すことによって翻訳者を助けるためのものです。これにより、翻訳者がファイルをローカライズするときに最適な選択ができるようになるでしょう。

diff --git a/files/ja/mozilla/add-ons/webextensions/api/identity/getredirecturl/index.html b/files/ja/mozilla/add-ons/webextensions/api/identity/getredirecturl/index.html new file mode 100644 index 0000000000..1fa8642b11 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/identity/getredirecturl/index.html @@ -0,0 +1,55 @@ +--- +title: identity.getRedirectURL() +slug: Mozilla/Add-ons/WebExtensions/API/identity/getRedirectURL +tags: + - API + - Add-ons + - Extensions + - Identity + - Method + - Reference + - WebExtensions + - getRedirectURL +translation_of: Mozilla/Add-ons/WebExtensions/API/identity/getRedirectURL +--- +
{{AddonSidebar()}}
+ +

リダイレクト URL として利用可能な URL を生成します。

+ +

この URL は、アドオン ID から生成されるため、使用したい場合、browser_specific_settings キーを使用してアドオン ID を明示的に設定する必要があるでしょう (設定しない場合、アドオンを一時的にインストールするたびに、異なるリダイレクト URL を取得することになります)。

+ +

リダイレクトURL については、リダイレクトURL を取得するを参照してください。

+ +

構文

+ +
var redirectURL = browser.identity.getRedirectURL()
+
+ +

引数

+ +

なし

+ +

返り値

+ +

リダイレクト URL を含む文字列

+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.identity.getRedirectURL")}}

+ +

+ +

リダイレクト URL を取得する:

+ +
var redirectURL = browser.identity.getRedirectURL();
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

この API は Chromium の chrome.identity API に基づいています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/identity/index.html b/files/ja/mozilla/add-ons/webextensions/api/identity/index.html new file mode 100644 index 0000000000..29d946d813 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/identity/index.html @@ -0,0 +1,106 @@ +--- +title: identity +slug: Mozilla/Add-ons/WebExtensions/API/identity +tags: + - API + - Add-ons + - Extensions + - Identity + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/identity +--- +
{{AddonSidebar}}
+ +

identity API を使って OAuth2 の認証コードやアクセストークンを取得し、拡張機能が OAuth2 での認証 (Google や Facebook アカウントなど) をサポートするサービスからユーザーデータを取得できるようにします。

+ +

OAuth2 フローがどのように機能するかの詳細は、サービスプロバイダーごとに異なるため、特定のサービスプロバイダーにおいてこの API を使用するには、各サービスごとのドキュメントを参照する必要があります。例:

+ + + +

identity API は {{WebExtAPIRef("identity.launchWebAuthFlow()")}} 関数を提供します。この関数は、必要に応じて、サービスのユーザー認証を行い、また、拡張機能にデータへのアクセスを認可するかどうかをユーザーに確認します。処理が完了すると、プロバイダーによって、アクセストークンか認可コードのどちらかが取得されます。

+ +

そして、OAuth2 フローを実施して取得した検証済みアクセストークンを、HTTP リクエスト内で使用することで、拡張機能はユーザーから認可された範囲でデータにアクセスできるようになります。

+ +

この API を利用するためには、"identity" API のパーミッションが必要です。

+ +

セットアップ

+ +

拡張機能を公開する前に、いくつかの設定が必要です。

+ +

リダイレクトURL を取得する

+ +

リダイレクト URL は、アクセストークンまたは認可コードを拡張機能に配布するための {{WebExtAPIRef("identity.launchWebAuthFlow()")}} のエンドポイントを意味します。

+ +

{{WebExtAPIRef("identity.getRedirectURL()")}}を呼び出すことでリダイレクトURL を取得できます。この関数は、アドオン ID からリダイレクト URL を生成するため、使用したい場合、browser_specific_settings キーを使用してアドオン ID を明示的に設定する必要があるでしょう (設定しない場合、アドオンを一時的にインストールするたびに、異なるリダイレクト URL を取得することになります)。

+ +

identity.getRedirectURL() によって返されるリダイレクト URL の利用が必須というわけではありません。独自の URL を指定することもできます。サービスがリダイレクトするものであれば何でもかまいません。ただし、ドメインは自分で管理しているものでなければいけません。

+ +

リダイレクト URL は 2 つの場面で利用されます:

+ + + +

拡張機能を登録する

+ +

サービスプロバイダー経由で OAuth2 を使用する前に、プロバイダーに対して、拡張機能を OAuth2 クライアントとして登録する必要があります。

+ +

サービスプロバイダーごとにやり方が異なることがありますが、一般的には、プロバイダーの ウェブサイトにおいて、拡張機能を登録することを意味します。この登録手順の中で、自身のリダイレクトURLを登録し、プロバイダーからクライアント ID (場合によっては、シークレットも) を受け取ります。そして、この両方を {{WebExtAPIRef("identity.launchWebAuthFlow()")}} に渡す必要があります。

+ +

関数

+ +
+
{{WebExtAPIRef("identity.getRedirectURL()")}}
+
リダイレクト URL を取得します。
+
{{WebExtAPIRef("identity.launchWebAuthFlow()")}}
+
ウェブ認証フローを開始します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.identity")}}

+ +

{{WebExtExamples("h2")}}

+ +
謝辞 + +

この API は Chromium の chrome.identity API に基づいています。

+ +

Microsoft Edge の実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従います。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/idle/index.html b/files/ja/mozilla/add-ons/webextensions/api/idle/index.html new file mode 100644 index 0000000000..e92112e732 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/idle/index.html @@ -0,0 +1,88 @@ +--- +title: idle +slug: Mozilla/Add-ons/WebExtensions/API/idle +tags: + - API + - Add-ons + - Extensions + - Idle + - Interface + - Non-standard + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/idle +--- +
{{AddonSidebar}}
+ +

ユーザーのシステムがアイドル状態、ロックされた状態、アクティブな状態であるのを発見します。

+ +

この API を使うには "idle" パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("idle.IdleState")}}
+
+

端末のアイドル状態を記す文字列

+
+
+ +

関数

+ +
+
{{WebExtAPIRef("idle.queryState()")}}
+
システムがロックされたら "locked" を、ユーザーが指定した時間の間に何も入力しない場合は "idle" を、その他では "active" を返す。
+
{{WebExtAPIRef("idle.setDetectionInterval()")}}
+
{{WebExtAPIRef("idle.onStateChanged")}} イベントでシステムがアイドル状態であると決定する間隔をセットします。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("idle.onStateChanged")}}
+
システム状態が変化したら発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.idle")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.idle API. This documentation is derived from idle.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/index.html b/files/ja/mozilla/add-ons/webextensions/api/index.html new file mode 100644 index 0000000000..8a375f01eb --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/index.html @@ -0,0 +1,55 @@ +--- +title: JavaScript API 群 +slug: Mozilla/Add-ons/WebExtensions/API +tags: + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API +--- +
{{AddonSidebar}}
+ +
+

WebExtension 用の JavaScript API は拡張機能のバックグラウンドスクリプトと、その他の拡張機能にバンドルした文書 (ブラウザーアクションページアクションポップアップやサイドバーオプションページ新規タブページを含む) で使用できます。いくつかの API は拡張機能のコンテンツスクリプトからもアクセスできます (コンテンツスクリプトガイドの表を見てください)。

+ +

もっと強力な API を使うには、拡張機能の manifest.jsonパーミッションをリクエストする必要があります。

+ +

browser 名前空間内で API にアクセスできます:

+ +
function logTabs(tabs) {
+  console.log(tabs);
+}
+
+browser.tabs.query({currentWindow: true}, logTabs);
+
+ +
+

API の多くは非同期で、 {{JSxRef("Promise")}} を返します:

+ +
function logCookie(c) {
+  console.log(c);
+}
+
+function logError(e) {
+  console.error(e);
+}
+
+let setCookie = browser.cookies.set(
+  {url: "https://developer.mozilla.org/"}
+);
+setCookie.then(logCookie, logError);
+
+ +
+

これは Google Chrome の拡張機能システムでは違っていて、browser の代わりに chrome 名前空間を使い、promise や非同期関数の代わりにコールバックを使っているのに注意してください。移植の助けとして、WebExtensions API の Firefox 実装は browser と promise と同様に chrome とコールバックもサポートします。Mozilla は browser と promise を使うコードが Chrome で変更なく動作する polyfill も書いています: https://github.com/mozilla/webextension-polyfill.

+ +

Firefox は chrome 名前空間の下でコールバックを使う API も実装しています。これにより Chrome 向けのコードをここに文書化された API を使って、Firefox で大部分変更なしに実行させることができます。

+ +

Microsoft Edge は browser 名前空間を使いますが、promise ベースの非同期 API はサポートされていません。Edge では当面、非同期 API はコールバックを使うのが必須です。

+ +

すべてのブラウザーがすべての API をサポートしているわけではありません: 詳しくは  JavaScript API のブラウザーサポートをご覧ください。

+ +

JavaScript API 一覧

+ +

下記の JavaScript API の完全な一覧をご覧ください:

+
+ +
{{LandingPageListSubpages}}
diff --git a/files/ja/mozilla/add-ons/webextensions/api/management/index.html b/files/ja/mozilla/add-ons/webextensions/api/management/index.html new file mode 100644 index 0000000000..06042d1093 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/management/index.html @@ -0,0 +1,112 @@ +--- +title: management +slug: Mozilla/Add-ons/WebExtensions/API/management +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - management +translation_of: Mozilla/Add-ons/WebExtensions/API/management +--- +
{{AddonSidebar}}
+ +

インストール済みのアドオンの管理情報を取得します。

+ +

management API で次のことができます

+ + + +

操作のほとんどは "management" API パーミッションを要求します。他のアドオンへのアクセスを提供しない操作はこのパーミッションを要求しません。

+ +

+ +
+
{{WebExtAPIRef("management.ExtensionInfo")}}
+
インストール済みアドオンの管理情報を持つオブジェクト
+
+ +

関数

+ +
+
{{WebExtAPIRef("management.getAll()")}}
+
すべてのインストール済みアドオンの管理情報を返します。
+
{{WebExtAPIRef("management.get()")}}
+
指定した ID のアドオンの管理情報を返します。
+
{{WebExtAPIRef("management.getSelf()")}}
+
この関数を呼び出したアドオン自身の管理情報を返します。
+
{{WebExtAPIRef("management.install()")}}
+
addons.mozilla.org で与えられた URL にある、特定のテーマをインストールします。
+
{{WebExtAPIRef("management.uninstall()")}}
+
指定した ID のアドオンをアンインストールします。
+
{{WebExtAPIRef("management.uninstallSelf()")}}
+
この関数を呼び出したアドオン自身をアンインストールします。
+
{{WebExtAPIRef("management.getPermissionWarningsById()")}}
+
指定した ID のアドオンのパーミッション警告一覧を取得します。
+
{{WebExtAPIRef("management.getPermissionWarningsByManifest()")}}
+
指定したマニフェストストリングに対して表示されるパーミッション警告一覧を取得します。
+
{{WebExtAPIRef("management.setEnabled()")}}
+
指定した ID のアドオンを有効化・無効化します。
+
+

イベント

+
+
{{WebExtAPIRef("management.onInstalled")}}
+
アドオンがインストールされた時に発火します。
+
{{WebExtAPIRef("management.onUninstalled")}}
+
アドオンがアンインストールされた時に発火します。
+
{{WebExtAPIRef("management.onEnabled")}}
+
アドオンが有効化された時に発火します。
+
{{WebExtAPIRef("management.onDisabled")}}
+
アドオンが無効化された時に発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.management")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

この API は Chromium の chrome.management API に基づいています。この文書は Chromium code の management.json から派生しています。

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/menus/index.html b/files/ja/mozilla/add-ons/webextensions/api/menus/index.html new file mode 100644 index 0000000000..5cb7281ea6 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/menus/index.html @@ -0,0 +1,197 @@ +--- +title: menus +slug: Mozilla/Add-ons/WebExtensions/API/menus +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - contextMenus + - menus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus +--- +
{{AddonSidebar}}
+ +

ブラウザーのメニューシステムに項目を追加します。

+ +

この API は、Chromeのエクステンションでコンテキストメニューに項目を追加できる機能である"contextMenus" APIをモデルにしています。この browser.menus API はChromeのAPIにいくつかの機能を追加しています。

+ +

Firefox 55 より前ではこの API は contextMenus という名前でした。その名称は一応エイリアスにしています。そのため contextMenus という名称を使ってFirefoxや他のブラウザでも動くコードを書くことできます。

+ +

このAPIを使用するためには menus  permission 必要です。 menus の代わりにエイリアスの contextMenus を使用することができますが、もし使用するのであればbrowser.contextMenus でAPIにアクセスしなければなりません。.

+ +

この API はmenus.getTargetElement()以外はコンテンツスクリプトからは使用できません。バックグラウンドページからは使えます。

+ +

メニューアイテムをつくる

+ +

To create a menu item call the {{WebExtAPIRef("menus.create()")}} method. You pass this method an object containing options for the item, including the item ID, item type, and the contexts in which it should be shown.

+ +

Listen for clicks on your menu item by adding a listener to the {{WebExtAPIRef("menus.onClicked")}} event. This listener will be passed a {{WebExtAPIRef("menus.OnClickData")}} object containing the event's details.

+ +

You can create four different types of menu item, based on the value of the type property you supply in the options to create():

+ + + +

If you have created more than one context menu item or more than one tools menu item, then the items will be placed in a submenu. The submenu's parent will be labeled with the name of the extension. For example, here's an extension called "Menu demo" that's added two context menu items:

+ +

+ +

アイコン

+ +

If you've specified icons for your extension using the "icons" manifest key, your menu item will display the specified icon next to its label. The browser will try to choose a 16x16 pixel icon for a normal display or a 32x32 pixel icon for a high-density display:

+ +

+ +

Only for items in a submenu, you can specify custom icons by passing the icons option to {{WebExtAPIRef("menus.create()")}}:

+ +

+ +

+ +

Here's a context menu containing 4 items: a normal item, two radio items with separators on each side, and a checkbox. The radio items are given custom icons.

+ +

You could create a submenu like this using code like:

+ +
browser.menus.create({
+  id: "remove-me",
+  title: browser.i18n.getMessage("menuItemRemoveMe"),
+  contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+  id: "separator-1",
+  type: "separator",
+  contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+  id: "greenify",
+  type: "radio",
+  title: browser.i18n.getMessage("menuItemGreenify"),
+  contexts: ["all"],
+  checked: true,
+  icons: {
+    "16": "icons/paint-green-16.png",
+    "32": "icons/paint-green-32.png"
+  }
+}, onCreated);
+
+browser.menus.create({
+  id: "bluify",
+  type: "radio",
+  title: browser.i18n.getMessage("menuItemBluify"),
+  contexts: ["all"],
+  checked: false,
+  icons: {
+    "16": "icons/paint-blue-16.png",
+    "32": "icons/paint-blue-32.png"
+  }
+}, onCreated);
+
+browser.menus.create({
+  id: "separator-2",
+  type: "separator",
+  contexts: ["all"]
+}, onCreated);
+
+var checkedState = true;
+
+browser.menus.create({
+  id: "check-uncheck",
+  type: "checkbox",
+  title: browser.i18n.getMessage("menuItemUncheckMe"),
+  contexts: ["all"],
+  checked: checkedState
+}, onCreated);
+ +

+ +
+
{{WebExtAPIRef("menus.ContextType")}}
+
The different contexts a menu can appear in.
+
{{WebExtAPIRef("menus.ItemType")}}
+
The type of menu item: "normal", "checkbox", "radio", "separator".
+
{{WebExtAPIRef("menus.OnClickData")}}
+
Information sent when a menu item is clicked.
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}
+
The maximum number of top level extension items that can be added to a menu item whose ContextType is "browser_action" or "page_action".
+
+ +

関数

+ +
+
{{WebExtAPIRef("menus.create()")}}
+
新しいメニューアイテムをつくります。
+
{{WebExtAPIRef("menus.update()")}}
+
以前に作られたメニューアイテムを更新します。
+
{{WebExtAPIRef("menus.remove()")}}
+
メニューアイテムを削除します。
+
{{WebExtAPIRef("menus.removeAll()")}}
+
この拡張機能によって追加されたすべてのメニューアイテムを削除します。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("menus.onClicked")}}
+
メニューアイテムがクリックされたときに発火。
+
{{WebExtAPIRef("menus.onHidden")}}
+
ブラウザがメニューを隠したときに発火。
+
{{WebExtAPIRef("menus.onShown")}}
+
ブラウザがメニューを見せたときに発火。
+
+ +

ブラウザ実装状況

+ +

{{ Compat("webextensions.api.menus", 1, "true") }}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.contextMenus API. This documentation is derived from context_menus.json in the Chromium code.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/menus/onclicked/index.html b/files/ja/mozilla/add-ons/webextensions/api/menus/onclicked/index.html new file mode 100644 index 0000000000..3e3fdff8eb --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/menus/onclicked/index.html @@ -0,0 +1,108 @@ +--- +title: menus.onClicked +slug: Mozilla/Add-ons/WebExtensions/API/menus/onClicked +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onClicked +--- +
{{AddonSidebar()}}
+ +

メニューアイテムがクリックされたときに発火します。

+ +

他のブラウザとの互換性のためにFirefoxはこのイベントを名前空間contextMenusmenuを経由して利用可能にしています。

+ +

書式

+ +
browser.menus.onClicked.addListener(listener)
+browser.menus.onClicked.removeListener(listener)
+browser.menus.onClicked.hasListener(listener)
+
+ +

イベントは3つの関数を持ちます:

+ +
+
addListener(callback)
+
このイベントのリスナーを追加します。
+
removeListener(listener)
+
リスニングを停止します。引数listenerは削除するリスナーです。
+
hasListener(listener)
+
listenerが登録されているかどうかを調べます。trueが返ればリスニング中、そうでなければfalseが返ります。
+
+ +

addListenerの書式

+ +

パラメータ

+ +
+
callback
+
+

イベントが起こったときに呼ばれる関数です。以下の引数を渡されます:

+ +
+
info
+
{{WebExtAPIRef('menus.OnClickData')}}. Information about the item clicked and the context where the click happened.
+
+ +
+
tab
+
{{WebExtAPIRef('tabs.Tab')}}. The details of the tab where the click took place. If the click did not take place in or on a tab, this parameter will be missing.
+
+
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.menus.onClicked", 10)}}

+ +

+ +

この例はメニューアイテムのクリックをリッスンし、アイテムのIDとタブのIDをログします:

+ +
browser.menus.create({
+  id: "click-me",
+  title: "Click me!",
+  contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener((info, tab) => {
+  console.log("Item " + info.menuItemId + " clicked " +
+              "in tab " + tab.id);
+});
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.contextMenus API. This documentation is derived from context_menus.json in the Chromium code.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/notifications/create/index.html b/files/ja/mozilla/add-ons/webextensions/api/notifications/create/index.html new file mode 100644 index 0000000000..32a0986940 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/notifications/create/index.html @@ -0,0 +1,139 @@ +--- +title: notifications.create() +slug: Mozilla/Add-ons/WebExtensions/API/notifications/create +translation_of: Mozilla/Add-ons/WebExtensions/API/notifications/create +--- +
{{AddonSidebar()}}
+ +

通知を生成、表示します。

+ +

Pass a {{WebExtAPIRef("notifications.NotificationOptions")}} to define the notification's content and behavior.

+ +

You can optionally provide an ID for the notification. If you omit the ID, an ID will be generated. You can use the ID to {{WebExtAPIRef("notifications.update()", "update")}} or {{WebExtAPIRef("notifications.clear()", "clear")}} the notification.

+ +

This is an asynchronous function that returns a Promise.

+ +
+

If you call notifications.create() more than once in rapid succession, Firefox may end up not displaying any notification at all.

+
+ +

書式

+ +
var creating = browser.notifications.create(
+  id,                   // optional string
+  options               // NotificationOptions
+)
+
+ +

パラメータ

+ +
+
id{{optional_inline}}
+
string. This is used to refer to this notification in {{WebExtAPIRef("notifications.update()")}}, {{WebExtAPIRef("notifications.clear()")}}, and event listeners. If you omit this argument or pass an empty string, then a new ID will be generated for this notification. If the ID you provide matches the ID of an existing notification from this extension, then the other notification will be cleared.
+
options
+
{{WebExtAPIRef('notifications.NotificationOptions')}}. Defines the notification's content and behavior.
+
+ +

返り値

+ +

A Promise that will be fulfilled when the notification is created and the display process has been started, which is before the notification is actually displayed to the user. It is fulfilled with a string representing the notification's ID.

+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.notifications.create")}}

+ +

+ +

Create and display a basic notification periodically, using an {{WebExtAPIRef("alarms", "alarm")}}. Clicking the browser action dismisses the notification.

+ +

Note that you'll need the "alarms" permission to create alarms (as well as the "notifications" permission to create notifications).

+ +
var cakeNotification = "cake-notification"
+
+/*
+
+CAKE_INTERVAL is set to 6 seconds in this example.
+Such a short period is chosen to make the extension's behavior
+more obvious, but this is not recommended in real life.
+Note that in Chrome, alarms cannot be set for less
+than a minute.
+
+*/
+var CAKE_INTERVAL = 0.1;
+
+browser.alarms.create("", {periodInMinutes: CAKE_INTERVAL});
+
+browser.alarms.onAlarm.addListener(function(alarm) {
+  browser.notifications.create(cakeNotification, {
+    "type": "basic",
+    "iconUrl": browser.extension.getURL("icons/cake-96.png"),
+    "title": "Time for cake!",
+    "message": "Something something cake"
+  });
+});
+
+browser.browserAction.onClicked.addListener(()=> {
+  var clearing = browser.notifications.clear(cakeNotification);
+  clearing.then(() => {
+    console.log("cleared");
+  });
+});
+ +

Display a similar notification, but add buttons naming cakes, and log the selected cake when a button is clicked:

+ +
var cakeNotification = "cake-notification"
+
+/*
+
+CAKE_INTERVAL is set to 6 seconds in this example.
+Such a short period is chosen to make the extension's behavior
+more obvious, but this is not recommended in real life.
+Note that in Chrome, alarms cannot be set for less
+than a minute.
+
+*/
+var CAKE_INTERVAL = 0.1;
+
+var buttons = [
+  {
+    "title": "Chocolate"
+  }, {
+    "title": "Battenberg"
+  }
+];
+
+browser.alarms.create("", {periodInMinutes: CAKE_INTERVAL});
+
+browser.alarms.onAlarm.addListener(function(alarm) {
+  browser.notifications.create(cakeNotification, {
+    "type": "basic",
+    "iconUrl": browser.extension.getURL("icons/cake-96.png"),
+    "title": "Time for cake!",
+    "message": "Something something cake",
+    "buttons": buttons
+  });
+});
+
+browser.browserAction.onClicked.addListener(()=> {
+  var clearing = browser.notifications.clear(cakeNotification);
+  clearing.then(() => {
+    console.log("cleared");
+  });
+});
+
+browser.notifications.onButtonClicked.addListener((id, index) => {
+  browser.notifications.clear(id);
+  console.log("You chose: " + buttons[index].title);
+});
+
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.notifications API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/notifications/index.html b/files/ja/mozilla/add-ons/webextensions/api/notifications/index.html new file mode 100644 index 0000000000..16b2c2c8fa --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/notifications/index.html @@ -0,0 +1,66 @@ +--- +title: notifications +slug: Mozilla/Add-ons/WebExtensions/API/notifications +tags: + - API + - Add-ons + - Extensions + - Notifications + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/notifications +--- +
{{AddonSidebar}}
+ +

OS の通知メカニズムを使って、ユーザーへの通知を表示します。この API は OS の通知メカニズムを使うため、OS とユーザー設定によって通知の現れ方やふるまいは変わってきます。

+ +

この API を使うには "notifications" パーミッションが必要です。

+ +

すべてのデスクトップOSで通知は同じ見た目です。次のようなものです:

+ +

+ +

+ +
+
{{WebExtAPIRef("notifications.NotificationOptions")}}
+
通知の中身を定義します。
+
{{WebExtAPIRef("notifications.TemplateType")}}
+
通知の種類。例えば、通知に画像を含められるかなどを定義します。
+
+ +

関数

+ +
+
{{WebExtAPIRef("notifications.clear()")}}
+
IDに基づいた特定の通知をクリアします。
+
{{WebExtAPIRef("notifications.create()")}}
+
新規の通知を作成、表示します。
+
{{WebExtAPIRef("notifications.getAll()")}}
+
すべての通知を取得します。
+
{{WebExtAPIRef("notifications.update()")}}
+
通知を更新します。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("notifications.onButtonClicked")}}
+
ユーザーが通知内のボタンをクリックしたときに発火します。
+
{{WebExtAPIRef("notifications.onClicked")}}
+
ユーザーが通知内のボタン以外をクリックしたときに発火します。
+
{{WebExtAPIRef("notifications.onClosed")}}
+
通知が閉じたとき、システムかユーザーいずれかがやめた場合にも、発火します。
+
{{WebExtAPIRef("notifications.onShown")}}
+
通知が表示されるとすぐに発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.notifications")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.notifications API.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/omnibox/index.html b/files/ja/mozilla/add-ons/webextensions/api/omnibox/index.html new file mode 100644 index 0000000000..47218f7f51 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/omnibox/index.html @@ -0,0 +1,70 @@ +--- +title: omnibox +slug: Mozilla/Add-ons/WebExtensions/API/omnibox +tags: + - API + - Add-ons + - Extensions + - Reference + - WebExtensions + - omnibox +translation_of: Mozilla/Add-ons/WebExtensions/API/omnibox +--- +
{{AddonSidebar}}
+ +

拡張機能に、ユーザーがアドレスバーに入力した時のカスタマイズされた振る舞いを有効にします。

+ +

ユーザーがブラウザーのアドレスバーにフォーカスした時、ブラウザーは、タイプした内容に応じたサジェストページを含んだドロップダウンリストを表示します。これはユーザーにとって、例えば履歴やブックマークからのページにすぐにアクセスできる方法を与えます。

+ +

omnibox API は、ユーザーが拡張機能で定義されたキーワードを入力した時に、ドロップダウンに表示されるサジェストを拡張機能がカスタマイズする方法を提供します。これは下記のように動作します:

+ +
    +
  1. まず、拡張機能は manifest.json ファイルに "omnibox" キーを入れないといけません、ここでキーワードを定義します。
  2. +
  3. ユーザーがアドレスバーにフォーカスしてキーワードに続いてスペースをタイプした時、拡張機能は {{WebExtAPIRef("omnibox.onInputStarted")}} イベントを受け取ります。
  4. +
  5. オプションとして、拡張機能は {{WebExtAPIRef("omnibox.setDefaultSuggestion()")}} を呼んでアドレスバーのドロップダウンに最初に表示されるサジェストを定義します。
  6. +
  7. ユーザーがこの後にも文字をタイプし続けると、拡張機能は {{WebExtAPIRef("omnibox.onInputChanged")}} イベントを受け取ります。イベントリスナーはユーザーがタイプした現在の値を受けて、アドレスバーのドロップダウンにサジェストを生成できます。拡張機能が {{WebExtAPIRef("omnibox.setDefaultSuggestion()")}} を使ったデフォルトのサジェストをセットした場合、これがドロップダウンの最初に出てきます。
  8. +
  9. ユーザーがサジェストを受け入れたら、拡張機能は {{WebExtAPIRef("omnibox.onInputEntered")}} イベントを受け取ります。イベントリスナーは受け入れられたサジェストを受け取ります。
  10. +
  11. ユーザーがドロップダウンを止めたら、拡張機能は {{WebExtAPIRef("omnibox.onInputCancelled")}} イベントを受け取ります。
  12. +
+ +

+ +
+
{{WebExtAPIRef("omnibox.OnInputEnteredDisposition")}}
+
Describes the recommended method to handle the selected suggestion: open in the current tab, open in a new foreground tab, or open in a new background tab.
+
{{WebExtAPIRef("omnibox.SuggestResult")}}
+
Object representing a suggestion to add to the address bar drop-down.
+
+ +

関数

+ +
+
{{WebExtAPIRef("omnibox.setDefaultSuggestion()")}}
+
Defines the first suggestion that appears in the drop-down when the user enters the keyword for your extension, followed by a space.
+
+ +

イベント

+ +
+
{{WebExtAPIRef("omnibox.onInputStarted")}}
+
Fired when a the user focuses the address bar and types your extension's omnibox keyword, followed by a space.
+
{{WebExtAPIRef("omnibox.onInputChanged")}}
+
Fired whenever the user's input changes, after they have focused the address bar and typed your extension's omnibox keyword, followed by a space.
+
{{WebExtAPIRef("omnibox.onInputEntered")}}
+
Fired when the user accepts one of your extension's suggestions.
+
{{WebExtAPIRef("omnibox.onInputCancelled")}}
+
Fired when the user dismisses the address bar drop-down, after they have focused the address bar and typed your extension's omnibox keyword.
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.omnibox")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.omnibox API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/pageaction/index.html b/files/ja/mozilla/add-ons/webextensions/api/pageaction/index.html new file mode 100644 index 0000000000..9aa608ef46 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/pageaction/index.html @@ -0,0 +1,106 @@ +--- +title: pageAction +slug: Mozilla/Add-ons/WebExtensions/API/pageAction +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - pageAction +translation_of: Mozilla/Add-ons/WebExtensions/API/pageAction +--- +
{{AddonSidebar}}
+ +

ページアクション は、ブラウザーのアドレスバーの中のクリックできるアイコンです。

+ +

+ +

You can listen for clicks on the icon, or specify a popup that will open when the icon is clicked.

+ +

If you specify a popup, you can define its contents and behavior using HTML, CSS, and JavaScript, just like a normal web page. JavaScript running in the popup gets access to all the same WebExtension APIs as your background scripts.

+ +

You can define most of a page action's properties declaratively using the page_action key in your manifest.json, but can also redefine them programmatically using this API.

+ +

Page actions are for actions that are only relevant to particular pages. If your icon should always be available, use a browser action instead.

+ +

+ +
+
{{WebExtAPIRef("pageAction.ImageDataType")}}
+
Pixel data for an image.
+
+ +

関数

+ +
+
{{WebExtAPIRef("pageAction.show()")}}
+
Shows the page action for a given tab.
+
{{WebExtAPIRef("pageAction.hide()")}}
+
Hides the page action for a given tab.
+
{{WebExtAPIRef("pageAction.setTitle()")}}
+
Sets the page action's title. This is displayed in a tooltip over the page action.
+
{{WebExtAPIRef("pageAction.getTitle()")}}
+
Gets the page action's title.
+
{{WebExtAPIRef("pageAction.setIcon()")}}
+
Sets the page action's icon.
+
{{WebExtAPIRef("pageAction.setPopup()")}}
+
Sets the URL for the page action's popup.
+
{{WebExtAPIRef("pageAction.getPopup()")}}
+
Gets the URL for the page action's popup.
+
{{WebExtAPIRef("pageAction.openPopup()")}}
+
Opens the page action's popup.
+
+ +

イベント

+ +
+
{{WebExtAPIRef("pageAction.onClicked")}}
+
Fired when a page action icon is clicked. This event will not fire if the page action has a popup.
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.pageAction")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.pageAction API. This documentation is derived from page_action.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.html b/files/ja/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.html new file mode 100644 index 0000000000..aa25bd76aa --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/pageaction/onclicked/index.html @@ -0,0 +1,104 @@ +--- +title: pageAction.onClicked +slug: Mozilla/Add-ons/WebExtensions/API/pageAction/onClicked +translation_of: Mozilla/Add-ons/WebExtensions/API/pageAction/onClicked +--- +
{{AddonSidebar()}}
+ +

ページアクションのアイコンがクリックされたときに発火します。ページアクションがポップアップを持っているならこのイベントは発火しません。

+ +

右クリックのアクションを定義するには、{{WebExtAPIRef('contextMenus')}} APIを"page_action" {{WebExtAPIRef('contextMenus/ContextType', 'context type', '', 'nocode')}}とともに使ってください。

+ +

書式

+ +
browser.pageAction.onClicked.addListener(listener)
+browser.pageAction.onClicked.removeListener(listener)
+browser.pageAction.onClicked.hasListener(listener)
+
+ +

イベントは3つの関数を持ちます:

+ +
+
addListener(callback)
+
このイベントにリスナーを追加します。Adds a listener to this event.
+
removeListener(listener)
+
このイベントのリスニングを停止します。引数listenerは削除するリスナーです。
+
hasListener(listener)
+
listenerがイベントに登録されているかを調べます。リスニング中であればtrueを、そうれなければfalseを返します。
+
+ +

addListenerの書式

+ +

パラメータ

+ +
+
callback
+
+

イベント発生時に呼び出される関数です。関数は次の引数を渡されます:

+ +
+
tab
+
ページアクションがクリックされたタブの{{WebExtAPIRef('tabs.Tab')}}オブジェクト。
+
+
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.pageAction.onClicked")}}

+ +

+ +

ユーザがページアクションをクリックしたとき、それを隠し、アクティブタブを"http://chilloutandwatchsomecatgifs.com/"に誘導します:

+ +
var CATGIFS = "http://chilloutandwatchsomecatgifs.com/";
+
+browser.pageAction.onClicked.addListener((tab) => {
+  browser.pageAction.hide(tab.id);
+  browser.tabs.update({url: CATGIFS});
+});
+
+browser.pageAction.onClicked.addListener(function () {
+});
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.pageAction API. This documentation is derived from page_action.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/permissions/index.html b/files/ja/mozilla/add-ons/webextensions/api/permissions/index.html new file mode 100644 index 0000000000..852809a01b --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/permissions/index.html @@ -0,0 +1,89 @@ +--- +title: permissions +slug: Mozilla/Add-ons/WebExtensions/API/permissions +tags: + - API + - Add-ons + - Extensions + - Permissions + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/permissions +--- +
{{AddonSidebar}}
+ +
拡張機能のインストール後、実行時に特別なパーミッションの要求を可能にする。
+ +
+ +

拡張機能は強力な WebExtension API の多くにアクセスするパーミッション(アクセス権)を必要とします。manifest.json の permissions に必要なパーミッション記述することで、インストール時にユーザーに対しパーミッションを要求できます。インストール時にパーミッションを要求する主なメリットは次の通りです:

+ + + +

インストールした拡張機能のアクセス権の認証の見た目は、ユーザーにとってシンプルなGUIとは言えません。ユーザーは about:debuggingのページを使用して、"このFirefox"ボタンから"拡張機能"のセクションに行き、参照するアドオンの"マニフェスト URL"のリンクを使用しなければなりません。 このURLは拡張機能で使用されている生のjsonファイルへのリンクです。拡張機能のjsonファイルは"permissions"ブロックを含み、これを確認することによってアドオンが使用しているアクセス権を確認することができます。

+ +

拡張機能は実行時に、permissions APIによって追加のパーミッションを求めることができます.These permissions need to be listed in the optional_permissions manifest.json key. Note that some permissions are not allowed in optional_permissions. The main advantages of this are:

+ + + +
To use the permissions API, decide which permissions your extension can request at runtime, and list them in optional_permissions. After this, you can request any permissions that were included in optional_permissions. Requests may only be made in the handler for a user action (for example, a click handler).
+ +
+ +

+ +
+
{{WebExtAPIRef("permissions.Permissions")}}
+
Represents a set of permissions.
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("permissions.contains()")}}
+
Find out whether the extension has the given set of permissions.
+
{{WebExtAPIRef("permissions.getAll()")}}
+
Get all the permissions this extension currently has.
+
{{WebExtAPIRef("permissions.remove()")}}
+
Give up a set of permissions.
+
{{WebExtAPIRef("permissions.request()")}}
+
Ask for a set of permissions.
+
+ +

Event handlers

+ +
+
{{WebExtAPIRef("permissions.onAdded")}}
+
Fired when a new permission is granted.
+
{{WebExtAPIRef("permissions.onRemoved")}}
+
Fired when a permission is removed.
+
+ +

ブラウザ実装状況

+ +

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

+ +

その他

+ + + +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.permissions API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/pkcs11/index.html b/files/ja/mozilla/add-ons/webextensions/api/pkcs11/index.html new file mode 100644 index 0000000000..902ae2b460 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/pkcs11/index.html @@ -0,0 +1,40 @@ +--- +title: pkcs11 +slug: Mozilla/Add-ons/WebExtensions/API/pkcs11 +translation_of: Mozilla/Add-ons/WebExtensions/API/pkcs11 +--- +
{{AddonSidebar}}
+ +

pkcs11 API は拡張機能にセキュリティモジュール PKCS #11 の列挙を可能とし、キーの元と証明書としてブラウザーからアクセスできるようにします。

+ +

このAPI を使うには "pkcs11" パーミッションが必要です。

+ +

Provisioning PKCS #11 modules

+ +

There are two environmental prerequisites for using this API:

+ + + +

Most probably, the user or device administrator would install the PKCS #11 module, and its installer would install the native manifest file at the same time. Note, though, that the module and manifest can't be installed as part of the extension's own installation process.

+ +

For details about the manifest file's contents and location, see Native manifests.

+ +

関数

+ +
+
{{WebExtAPIRef("pkcs11.getModuleSlots()")}}
+
For each slot in a module, get its name and whether it contains a token.
+
{{WebExtAPIRef("pkcs11.installModule()")}}
+
Installs the named PKCS #11 module.
+
{{WebExtAPIRef("pkcs11.isModuleInstalled()")}}
+
Checks whether the named PKCS #11 module is installed.
+
{{WebExtAPIRef("pkcs11.uninstallModule()")}}
+
Uninstalls the named PKCS #11 module.
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.pkcs11", 1, 1)}} {{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/privacy/index.html b/files/ja/mozilla/add-ons/webextensions/api/privacy/index.html new file mode 100644 index 0000000000..18b5ed50b5 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/privacy/index.html @@ -0,0 +1,70 @@ +--- +title: privacy +slug: Mozilla/Add-ons/WebExtensions/API/privacy +tags: + - API + - Add-ons + - Extensions + - Privacy + - Reference + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/privacy +--- +
{{AddonSidebar}}
+ +

さまざまなプライバシー関連のブラウザー設定にアクセスや変更を行います。

+ +

privacy API を使うには、"privacy" API パーミッションが必要です。

+ +

プロパティ

+ +
+
{{WebExtAPIRef("privacy.network")}}
+
ネットワーク関連のプライバシー設定にアクセス、編集します。
+
{{WebExtAPIRef("privacy.services")}}
+
ブラウザーやサードパーティのプライバシー設定にアクセス、編集します。
+
{{WebExtAPIRef("privacy.websites")}}
+
ウェブサイトのふるまいに関連したプライバシー設定にアクセス、編集します。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.privacy", 10, 1)}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.privacy API.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/proxy/index.html b/files/ja/mozilla/add-ons/webextensions/api/proxy/index.html new file mode 100644 index 0000000000..8b76402361 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/proxy/index.html @@ -0,0 +1,150 @@ +--- +title: proxy +slug: Mozilla/Add-ons/WebExtensions/API/proxy +tags: + - API + - Add-ons + - Proxy + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/proxy +--- +
{{AddonSidebar}}
+ +

拡張された Proxy Auto-Configuration (PAC) file (これはウェブのリクエストをプロキシ化するポリシーを実装します) を実装するのにプロキシ API を使います。この実装は標準の PAC 設計といくつかそれていて、なぜなら PAC ファイルのデファクト仕様は 1995年頃の初期実装から変えられてないためです。仕様を維持している標準化団体はありません。

+ +

Google Chrome では 同じく"proxy"という拡張機能API が提供されていて、その機能はこの API と似ていて、拡張機能はプロキシポリシーを使うことができます。しかし、Chrome API の設計はこの API とまったく違います。Chrome の API では拡張機能は PAC ファイルを定義できて、明示的なプロキシルールも定義できます。このため拡張機能 PAC ファイルも使用できて、この API は PAC ファイルアプローチのみをサポートします。この API は Chrome proxy API と互換性がないため、この API は browser 名前空間のみで利用できます。

+ +

この API を使うには、"proxy" パーミッションが必要です。

+ +

PAC ファイルと通信する

+ +

PAC ファイルと拡張機能のバックグラウンドページ(やその他の権限つきページ、ポップアップページのようなもの)とでメッセージを交換できて、その手段は runtime.sendMessage()runtime.onMessage

+ +

PAC ファイルにメッセージを送るには、toProxyScript オプションをセットしなければなりません:

+ +
// background.js
+
+// Log any messages from the proxy.
+browser.runtime.onMessage.addListener((message, sender) => {
+  if (sender.url === browser.extension.getURL(proxyScriptURL)) {
+    console.log(message);
+  }
+});
+
+let messageToProxy = {
+  enabled: true,
+  foo: "A string",
+  bar: 1234
+};
+
+browser.runtime.sendMessage(messageToProxy, {toProxyScript: true});
+ +
// pac.js
+
+browser.runtime.onMessage.addListener((message) => {
+  if (message.enabled) {
+    browser.runtime.sendMessage("I'm enabled!");
+  }
+});
+ +

PAC ファイル仕様

+ +

The basic PAC file syntax is described in the PAC documentation, but the implementation used by the proxy API differs from standard PAC design in several ways, which are described in this section.

+ +

FindProxyForURL() return value

+ +

The standard FindProxyForURL() returns a string. In Firefox 55 and 56, the PAC file used with the proxy API also returns a string. In Firefox 55 only, you must pass an argument to the "DIRECT" return value, even though it doesn't need an argument.

+ +

From Firefox 57 onwards, FindProxyForURL() may still return a string, but may alternatively (and preferably) return an array of objects. Each object has the following properties:

+ +
+
type
+
String. This must be one of: "http"|"https|"socks4"|"socks"|"direct". "socks" refers to the SOCKS5 protocol.
+
host
+
String. Hostname for the proxy to use.
+
port
+
String. Port for the proxy.
+
username {{optional_inline}}
+
String. Username for the proxy. This is usable with "socks". For HTTP proxy authorizations, use {{WebExtAPIRef("webRequest.onAuthRequired")}}.
+
password {{optional_inline}}
+
String. Password for the proxy. This is usable with "socks". For HTTP proxy authorizations, use {{WebExtAPIRef("webRequest.onAuthRequired")}}.
+
proxyDNS {{optional_inline}}
+
Boolean. If true, the proxy server is used to resolve certain DNS queries (only usable with "socks4" and "socks"). Defaults to false.
+
failoverTimeout {{optional_inline}}
+
Integer. Number of seconds before timing out and trying the next proxy in the array. Defaults to 1.
+
+ +

例えば、:

+ +
const proxySpecification = [
+  {
+    type: "socks",
+    host: "foo.com",
+    port: 1080,
+    proxyDNS: true,
+    failoverTimeout: 5
+  },
+  {
+    type: "socks",
+    host: "bar.com",
+    port: 1060,
+  }
+];
+ +

The first proxy in the array will be tried first. If it does not respond in failoverTimeout seconds, the next will be tried, until the end of the array is reached.

+ +

PAC ファイル環境

+ +

The global helper functions usually available for PAC files (isPlainHostName(), dnsDomainIs(), and so on) are not available.

+ +

Code running in the PAC file does not get access to:

+ + + +
//  pac.js
+
+// send the log message to the background script
+browser.runtime.sendMessage(`Proxy-blocker: blocked ${url}`);
+ +
// background-script.js
+
+function handleMessage(message, sender) {
+  // only handle messages from the proxy script
+  if (sender.url != browser.extension.getURL(proxyScriptURL)) {
+    return;
+  }
+  console.log(message);
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

関数

+ +
+
{{WebExtAPIRef("proxy.register()")}}
+
所与のプロキシスクリプトを登録する
+
{{WebExtAPIRef("proxy.unregister()")}}
+
プロキシスクリプトの登録を取り消す。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("proxy.onProxyError")}}
+
プロキシスクリプト実行している際にシステムがエラーに遭遇した時に発火します。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.proxy")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/runtime/index.html b/files/ja/mozilla/add-ons/webextensions/api/runtime/index.html new file mode 100644 index 0000000000..f064c9b4a9 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/runtime/index.html @@ -0,0 +1,167 @@ +--- +title: runtime +slug: Mozilla/Add-ons/WebExtensions/API/runtime +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime +--- +
{{AddonSidebar}}
+ +

このモジュールは拡張機能と、それを実行する環境についての情報を提供します。

+ +

またメッセージ API も提供し、それでは次のことができます:

+ + + +

+ +
+
{{WebExtAPIRef("runtime.Port")}}
+
Represents one end of a connection between two specific contexts, which can be used to exchange messages.
+
{{WebExtAPIRef("runtime.MessageSender")}}
+
+

Contains information about the sender of a message or connection request.

+
+
{{WebExtAPIRef("runtime.PlatformOs")}}
+
Identifies the browser's operating system.
+
{{WebExtAPIRef("runtime.PlatformArch")}}
+
Identifies the browser's processor architecture.
+
{{WebExtAPIRef("runtime.PlatformInfo")}}
+
Contains information about the platform the browser is running on.
+
{{WebExtAPIRef("runtime.RequestUpdateCheckStatus")}}
+
Result of a call to {{WebExtAPIRef("runtime.requestUpdateCheck()")}}.
+
{{WebExtAPIRef("runtime.OnInstalledReason")}}
+
The reason that the {{WebExtAPIRef("runtime.onInstalled")}} event is being dispatched.
+
{{WebExtAPIRef("runtime.OnRestartRequiredReason")}}
+
The reason that the {{WebExtAPIRef("runtime.onRestartRequired")}} event is being dispatched.
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("runtime.lastError")}}
+
This value is set when an asynchronous function has an error condition that it needs to report to its caller.
+
{{WebExtAPIRef("runtime.id")}}
+
The ID of the extension.
+
+ +

関数

+ +
+
{{WebExtAPIRef("runtime.getBackgroundPage()")}}
+
Retrieves the Window object for the background page running inside the current extension.
+
{{WebExtAPIRef("runtime.openOptionsPage()")}}
+
+

Opens your extension's options page.

+
+
{{WebExtAPIRef("runtime.getManifest()")}}
+
Gets the complete manifest.json file, serialized as an object.
+
{{WebExtAPIRef("runtime.getURL()")}}
+
Given a relative path from the manifest.json to a resource packaged with the extension, returns a fully-qualified URL.
+
{{WebExtAPIRef("runtime.setUninstallURL()")}}
+
Sets a URL to be visited when the extension is uninstalled.
+
{{WebExtAPIRef("runtime.reload()")}}
+
Reloads the extension.
+
{{WebExtAPIRef("runtime.requestUpdateCheck()")}}
+
Checks for updates to this extension.
+
{{WebExtAPIRef("runtime.connect()")}}
+
Establishes a connection from a content script to the main extension process, or from one extension to a different extension.
+
{{WebExtAPIRef("runtime.connectNative()")}}
+
+
Connects the extension to a native application on the user's computer.
+
+
{{WebExtAPIRef("runtime.sendMessage()")}}
+
Sends a single message to event listeners within your extension or a different extension. Similar to {{WebExtAPIRef('runtime.connect')}} but only sends a single message, with an optional response.
+
{{WebExtAPIRef("runtime.sendNativeMessage()")}}
+
Sends a single message from an extension to a native application.
+
{{WebExtAPIRef("runtime.getPlatformInfo()")}}
+
Returns information about the current platform.
+
{{WebExtAPIRef("runtime.getBrowserInfo()")}}
+
Returns information about the browser in which this extension is installed.
+
{{WebExtAPIRef("runtime.getPackageDirectoryEntry()")}}
+
Returns a DirectoryEntry for the package directory.
+
+ +

イベント

+ +
+
{{WebExtAPIRef("runtime.onStartup")}}
+
Fired when a profile that has this extension installed first starts up. This event is not fired when an incognito profile is started.
+
{{WebExtAPIRef("runtime.onInstalled")}}
+
Fired when the extension is first installed, when the extension is updated to a new version, and when the browser is updated to a new version.
+
{{WebExtAPIRef("runtime.onSuspend")}}
+
Sent to the event page just before the extension is unloaded. This gives the extension an opportunity to do some cleanup.
+
{{WebExtAPIRef("runtime.onSuspendCanceled")}}
+
Sent after {{WebExtAPIRef("runtime.onSuspend")}} to indicate that the extension won't be unloaded after all.
+
{{WebExtAPIRef("runtime.onUpdateAvailable")}}
+
Fired when an update is available, but isn't installed immediately because the extension is currently running.
+
{{WebExtAPIRef("runtime.onBrowserUpdateAvailable")}}
+
Fired when an update for the browser is available, but isn't installed immediately because a browser restart is required.
+
{{WebExtAPIRef("runtime.onConnect")}}
+
Fired when a connection is made with either an extension process or a content script.
+
{{WebExtAPIRef("runtime.onConnectExternal")}}
+
Fired when a connection is made with another extension.
+
{{WebExtAPIRef("runtime.onMessage")}}
+
Fired when a message is sent from either an extension process or a content script.
+
{{WebExtAPIRef("runtime.onMessageExternal")}}
+
Fired when a message is sent from another extension. Cannot be used in a content script.
+
{{WebExtAPIRef("runtime.onRestartRequired")}}
+
Fired when the device needs to be restarted.
+
+ +

ブラウザ実装状況

+ +
+

{{Compat("webextensions.api.runtime")}}

+
+ +
{{WebExtExamples("h2")}}
+ +
Acknowledgements + +

This API is based on Chromium's chrome.runtime API. This documentation is derived from runtime.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/runtime/messagesender/index.html b/files/ja/mozilla/add-ons/webextensions/api/runtime/messagesender/index.html new file mode 100644 index 0000000000..7c508a5376 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/runtime/messagesender/index.html @@ -0,0 +1,86 @@ +--- +title: runtime.MessageSender +slug: Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender +tags: + - API + - Add-ons + - Extensions + - MessageSender + - Non-standard + - Reference + - Type + - WebExtensions + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender +--- +
{{AddonSidebar()}}
+ +

メッセージや接続要求の送信元に関する情報を持つオブジェクトです。このオブジェクトは、{{WebExtAPIRef("runtime.onMessage()")}} リスナーに渡されます。

+ +

また、このオブジェクトは {{WebExtAPIRef("runtime.Port")}} のプロパティでもありますが、{{WebExtAPIRef("runtime.onConnect()")}} または {{WebExtAPIRef("runtime.onConnectExternal()")}} リスナーに渡された Port インスタンスにしか存在しません。

+ +

+ +

この型はオブジェクトです。以下のプロパティを持ちます。

+ +
+
tab{{optional_inline}}
+
{{WebExtAPIRef('tabs.Tab')}} 型。接続を開いた {{WebExtAPIRef('tabs.Tab')}} です。このプロパティが存在するのは、タブ (コンテンツスクリプトを含む) から接続が開かれたときだけです。
+
frameId{{optional_inline}}
+
integer 型。接続を開いたフレームです。0 は最上位のフレームを、正の数値は子フレームを表します。このプロパティが存在するのは、tab が設定されるときだけです。
+
id{{optional_inline}}
+
string 型。メッセージが拡張機能から送信された場合は、その拡張機能の ID が設定されます。送信側の manifest.json で applications キーを使って明示的に ID が設定されている場合は、id にはその値が使われます。そうでない場合は、送信側の自動生成された ID が使われます。
+
バージョン 54 より前の Firefox では、この値には拡張機能の内部 ID が使われることに注意してください (つまり、拡張機能の URL に含まれる UUID です)。
+
url{{optional_inline}}
+
string 型。メッセージを送信したスクリプトを持つページやフレームの URL です。
+
送信側が拡張機能のページ (例えば、バックグラウンド ページオプションページブラウザーアクション や ページアクション のポップアップ) に含まれるスクリプトである場合、URL は "moz-extension://<拡張機能の内部 ID>/path/to/page.html" という形式が使われます。送信側がバックグラウンドスクリプトであって、バックグラウンド ページを使っていない場合、URL は "moz-extension://<拡張機能の内部 ID>/_generated_background_page.html" という形式が使われます。
+
送信側がウェブページ内のスクリプト (ページに含まれる通常のスクリプトだけでなく、コンテンツスクリプトも含みます) である場合、url はそのウェブページの URL が使われます。スクリプトがフレーム内で動作している場合、url はそのフレームの URL です。
+
tlsChannelId{{optional_inline}}
+
string 型。接続を開いたページまたはフレームの TLS チャンネルの ID です。拡張機能によって要求され、可能である場合にのみ設定されます。
+
+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.runtime.MessageSender")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.runtime API に基づいています。このドキュメントは runtime.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html b/files/ja/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html new file mode 100644 index 0000000000..29b0f557bb --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html @@ -0,0 +1,317 @@ +--- +title: runtime.onMessage +slug: Mozilla/Add-ons/WebExtensions/API/runtime/onMessage +tags: + - API + - Add-ons + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - onmessage + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/onMessage +--- +
{{AddonSidebar()}}
+ +
このイベントを使って、拡張機能の別の部品からのメッセージを受け取ることができます。例えば、次のような場面で使います。
+ +
+ + + +

onMessage リスナーに受信させるメッセージを送るには、{{WebExtAPIRef("runtime.sendMessage()")}}、または (コンテンツスクリプトにメッセージを送るときは) {{WebExtAPIRef("tabs.sendMessage()")}} を使います。

+ +
+

同じ種類のメッセージに対する onMessage リスナーを複数作ることは避けてください。複数のリスナーが実行される順番は保証されていないからです。特定のリスナーへのメッセージ伝送を保証したいときは、コネクションベースのメッセージ を使ってください。

+
+ +

メッセージ本体の他に、リスナーは次のものを受け取ります。

+ + + +

メッセージに対して同期的に返信するには、sendResponse 関数をリスナーの中で実行します。例を参照してください

+ +

非同期的に返信するには、二つの方法があります。

+ + + +
+

Promise を返すほうがより望ましい方法です。sendResponse は W3C 仕様から削除される予定です。 人気のある webextension-polyfill ライブラリーは、すでに sendResponse 関数を実装から削除しました。

+
+ +
+

また、コネクションベースのメッセージを使うこともできます。

+
+ +

構文

+ +
browser.runtime.onMessage.addListener(listener)
+browser.runtime.onMessage.removeListener(listener)
+browser.runtime.onMessage.hasListener(listener)
+
+ +

イベントには 3 つの関数があります。

+ +
+
addListener(callback)
+
リスナーをこのイベントに追加する。
+
removeListener(listener)
+
このイベントの受け取りを中止する。listener 引数は削除するリスナーです。
+
hasListener(listener)
+
listener がこのイベントに登録されているかどうかを確認する。登録されている場合は true を、そうでない場合は false を返す。
+
+ +

addListener の構文

+ +

引数

+ +
+
function
+
+

このイベントが発生したときに実行されるリスナー関数。関数には次の引数が渡される。

+ +
+
message
+
object 型。メッセージ本体。これは JSON 化できるオブジェクトです。
+
+ +
+
sender
+
{{WebExtAPIRef('runtime.MessageSender')}} オブジェクト。メッセージの送信側を表します。
+
+ +
+
sendResponse
+
+

メッセージに対する返信を送るために、最大で一回実行できる関数。この関数は引数を一つ受け取り、それは JSON 化できるオブジェクトのはずです。その引数はメッセージ送信側に返送されます。

+ +

同じドキュメント中に onMessage リスナーが一つ以上ある場合、返信を返すことができるのは一つだけです。

+ +

同期的に返信するには、リスナー関数が復帰する前に sendResponse を実行します。非同期的に返信するには、次のどちらかを実行します。

+ +
    +
  • sendResponse に対する参照を保持したままリスナー関数から true を返す。そうすると、リスナー関数から復帰した後でも sendResponse を実行できます。
  • +
  • リスナー関数から Promise を返して、返信の準備ができたときにその Promise を解決する。こちらがより好ましい方法です。
  • +
+
+
+ +

リスナー関数は、Boolean か Promise のいずれかを返します。

+ +
+

addListener を次のような async 関数を使って実行しないでください。

+ +
browser.runtime.onMessage.addListener(async (data, sender) => {
+  if (data.type === 'handle_me') return 'done';
+});
+
+ +

このようなリスナーは全ての受け取ったメッセージを消費するため、実際には他のリスナーがメッセージを受信したり処理することを妨げてしまいます。

+ +

非同期的な実装を使いたい場合は、次のように Promise を使ってください。

+ +
browser.runtime.onMessage.addListener((data, sender) => {
+  if (data.type === 'handle_me') return Promise.resolve('done');
+});
+
+
+
+
+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.runtime.onMessage")}}

+ +

使用例

+ +

単純な使用例

+ +

次のコンテンツスクリプトは、ウェブページ上のクリックイベントを待ち受けます。リンクがクリックされた場合、対象の URL をバックグラウンドページにメッセージ送信します。

+ +
// content-script.js
+
+window.addEventListener("click", notifyExtension);
+
+function notifyExtension(e) {
+  if (e.target.tagName != "A") {
+    return;
+  }
+  browser.runtime.sendMessage({"url": e.target.href});
+}
+
+ +

バックグラウンドスクリプトはこのメッセージが送信されるまで待ち、notifications API を使って通知を表示します。

+ +
// background-script.js
+
+browser.runtime.onMessage.addListener(notify);
+
+function notify(message) {
+  browser.notifications.create({
+    "type": "basic",
+    "iconUrl": browser.extension.getURL("link.png"),
+    "title": "リンクをクリックしました!",
+    "message": message.url
+  });
+}
+ +

同期的に返信する

+ +

次のコンテンツスクリプトは、ユーザーがページ上をクリックしたとき、バックグラウンドスクリプトにメッセージを送信します。また、バックグラウンドスクリプトから送信された応答があればログ出力します。

+ +
// content-script.js
+
+function handleResponse(message) {
+  console.log(`バックグラウンドスクリプトが応答しました: ${message.response}`);
+}
+
+function handleError(error) {
+  console.log(`Error: ${error}`);
+}
+
+function sendMessage(e) {
+  var sending = browser.runtime.sendMessage({content: "コンテンツスクリプトからのメッセージです"});
+  sending.then(handleResponse, handleError);
+}
+
+window.addEventListener("click", sendMessage);
+ +

これが対応するバックグラウンドスクリプトで、リスナー内部から同期的に応答を返します。

+ +
// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+  console.log(`コンテンツスクリプトがメッセージを送信しました: ${request.content}`);
+  sendResponse({response: "バックグラウンドスクリプトからの応答です"});
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

これは同期的に応答を返す別の方法で、Promise.resolve() を使うものです。

+ +
// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+  console.log(`コンテンツスクリプトがメッセージを送信しました: ${request.content}`);
+  return Promise.resolve({response: "バックグラウンドスクリプトからの応答です"});
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

非同期的な返信を sendResponse により行う

+ +

次は直前の例のバックグラウンドスクリプトの別バージョンです。これは、リスナーが復帰した後、非同期的に返信を送ります。リスナーの中の return true; に注目してください。このようにすることで、リスナーが復帰した後に sendResponse 引数を使う意図があることをブラウザーに伝えています。

+ +
// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+  console.log(`コンテンツスクリプトがメッセージを送信しました: ${request.content}`);
+  setTimeout(() => {
+    sendResponse({response: "非同期的なバックグラウンドスクリプトからの応答です"});
+  }, 1000);
+  return true;
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+
+ +

非同期的な返信を Promise により行う

+ +

次のコンテンツスクリプトは、まずページ上の <a> リンクを取得し、そしてそのリンクの場所がブックマークされているかどうかを尋ねるメッセージを送信します。このスクリプトは、その場所がブックマークされている場合は true を、そうでない場合は false というような、Boolean 型の応答が返ってくることを想定しています。

+ +
// content-script.js
+
+const firstLink = document.querySelector("a");
+
+function handleResponse(isBookmarked) {
+  if (isBookmarked) {
+    firstLink.classList.add("bookmarked");
+  }
+}
+
+browser.runtime.sendMessage({
+  url: firstLink.href
+}).then(handleResponse);
+ +

これが対応するバックグラウンドスクリプトです。{{WebExtAPIRef("bookmarks.search()")}} を使うことで、リンクがブックマークされているかを確認する Promise を返します。

+ +
// background-script.js
+
+function isBookmarked(message, sender, response) {
+  return browser.bookmarks.search({
+    url: message.url
+  }).then(function(results) {
+    return results.length > 0;
+  });
+}
+
+browser.runtime.onMessage.addListener(isBookmarked);
+ +

非同期的なハンドラーが Promise を返さない場合、明示的に Promise を作ることができます。これは少し不自然な例ですが、Window.setTimeout() を使って 1 秒の遅延を発生させた後に応答を返します。

+ +
// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+  return new Promise(resolve => {
+    setTimeout(() => {
+      resolve({response: "非同期的なバックグラウンドスクリプトからの応答です"});
+    }, 1000);
+  });
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.runtime API. このドキュメントは runtime.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/runtime/openoptionspage/index.html b/files/ja/mozilla/add-ons/webextensions/api/runtime/openoptionspage/index.html new file mode 100644 index 0000000000..5436951fd6 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/runtime/openoptionspage/index.html @@ -0,0 +1,96 @@ +--- +title: runtime.openOptionsPage() +slug: Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - openOptionsPage + - runtime +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage +--- +
{{AddonSidebar()}}
+ +
拡張機能にオプションページが定義されている場合、このメソッドはそれを開きます。
+ +
 
+ +

これは Promise を返す非同期関数です。

+ +

構文

+ +
var openingPage = browser.runtime.openOptionsPage()
+
+ +

パラメータ

+ +

なし。

+ +

返り値

+ +

オプションページの作成が成功した時は、引数のない Promise で、操作が失敗した場合はエラーメッセージつきの rejected が返ります。

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.runtime.openOptionsPage")}}

+ +

+ +

ユーザーがブラウザーアクションのアイコンをクリックした時にオプションページを返します:

+ +
function onOpened() {
+  console.log(`Options page opened`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var opening = browser.runtime.openOptionsPage();
+opening.then(onOpened, onError);
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.runtime API. This documentation is derived from runtime.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.html b/files/ja/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.html new file mode 100644 index 0000000000..522d9240b9 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/runtime/sendmessage/index.html @@ -0,0 +1,167 @@ +--- +title: runtime.sendMessage() +slug: Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - runtime + - sendMessage +translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage +--- +
{{AddonSidebar()}}
+ +

単一のメッセージを、自分や別の拡張機能が持つイベントリスナーに送信します。

+ +

自分自身の拡張機能に送信する場合は、引数 extensionId を省略してください。自らの拡張機能に含まれる全てのページで {{WebExtAPIRef('runtime.onMessage')}} イベントが起動されます。ただし、runtime.sendMessage を実行したフレームは除きます。

+ +

別の拡張機能に送信する場合は、引数 extensionId に拡張機能の ID を設定してください。その拡張機能で {{WebExtAPIRef('runtime.onMessageExternal')}} イベントが起動されます。

+ +

このメソッドを使ってコンテンツスクリプトにメッセージを送信することはできません。コンテンツスクリプトにメッセージを送信するには、{{WebExtAPIRef('tabs.sendMessage')}} を使ってください。

+ + + +

これは、Promise を返す非同期関数です。

+ +
+

コネクションベースのメッセージを使うこともできます。

+
+ +

構文

+ +
var sending = browser.runtime.sendMessage(
+  extensionId,             // optional string
+  message,                 // any
+  options                  // optional object
+)
+
+ +

引数

+ +
+
extensionId{{optional_inline}}
+
string 型。 メッセージを送信する拡張機能の ID。別の拡張機能にメッセージを送信する場合は、この引数を含めてください。受信させることを意図している拡張機能が manifest.json の applications キーを使って明示的に ID を設定されている場合は、その値を extensionId に指定する必要があります。そうでない場合、受信側の拡張機能のために生成された ID を指定する必要があります。
+
もし extensionId が省略された場合、メッセージは自分自身の拡張機能に送信されます。
+
message
+
any 型。シリアライズされたクローンに構造化できるオブジェクト。
+
options{{optional_inline}}
+
object 型。 +
+
includeTlsChannelId{{optional_inline}}
+
boolean 型。接続イベントを待つプロセスのための {{WebExtAPIRef('runtime.onMessageExternal')}} に TLS チャンネル ID が渡されるかどうか。
+
toProxyScript{{optional_inline}}
+
boolean 型。 メッセージが {{WebExtAPIRef("proxy")}} API を使って読み込まれる PAC ファイル向けである場合、true を指定しなければならない。
+
+
+
+ +

引数に指定される値によっては、この API はあいまいです。以降のルールが使われます。

+ + + +

Firefox 55 より前では、引数が二つの場合のルールが異なることに注意してください。古いルールでは、最初の引数が文字列である場合、それを extensionId と扱い、二番目の引数をメッセージとして使います。これは、sendMessage() を ("my-message", {}) のような引数を使って実行する場合、空のメッセージを "my-message" によって識別される拡張機能に送信してしまうということです。新しいルールのもとでは、このような引数を使うと、"my-message" というメッセージを空のオプションオブジェクトを使って内部的に送信します。

+ +

戻り値

+ +

Promise 型。受信側が応答を送信する場合、その応答を JSON オブジェクトとして使って fulfilled 状態にされます。それ以外の場合、値を持たない fulfilled 状態になります。拡張機能との接続中にエラーが発生した場合、Promise はエラーメッセージを持つ rejected 状態になります。

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.runtime.sendMessage")}}

+ +

使用例

+ +

これは、ユーザーがコンテンツのウィンドウをクリックしたときにバックグラウンド スクリプトにメッセージを送信するコンテンツスクリプトです。送信されるメッセージは {greeting: "Greeting from the content script"} で、送信側は応答を受信をすることになっており、それを handleResponse 関数で扱います。

+ +
// content-script.js
+
+function handleResponse(message) {
+  console.log(`Message from the background script:  ${message.response}`);
+}
+
+function handleError(error) {
+  console.log(`Error: ${error}`);
+}
+
+function notifyBackgroundPage(e) {
+  var sending = browser.runtime.sendMessage({
+    greeting: "Greeting from the content script"
+  });
+  sending.then(handleResponse, handleError);
+}
+
+window.addEventListener("click", notifyBackgroundPage);
+ +

対応するバックグラウンド スクリプトは次のようなものです。

+ +
// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+  console.log("Message from the content script: " +
+    request.greeting);
+  sendResponse({response: "Response from background script"});
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.runtime API に基づいています。このドキュメントは runtime.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/sessions/index.html b/files/ja/mozilla/add-ons/webextensions/api/sessions/index.html new file mode 100644 index 0000000000..870cf96426 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/sessions/index.html @@ -0,0 +1,134 @@ +--- +title: sessions +slug: Mozilla/Add-ons/WebExtensions/API/sessions +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - WebExtensions + - sessions +translation_of: Mozilla/Add-ons/WebExtensions/API/sessions +--- +
{{AddonSidebar}}
+ +

セッション API を使ってブラウザーが動作している間に閉じたタブやウィンドウを一覧、復帰します。

+ +

{{WebExtAPIRef("sessions.getRecentlyClosed()")}} 関数は {{WebExtAPIRef("tabs.Tab")}} 配列と{{WebExtAPIRef("windows.Window")}} オブジェクトを返し、これはブラウザーが動作している間に閉じられたタブやウィンドウを {{WebExtAPIRef("sessions.MAX_SESSION_RESULTS")}} で定義される上限まで表します。

+ +

ウィンドウやタブの復帰は {{WebExtAPIRef("sessions.restore()")}} 関数を使ってできます。復帰はタブを再オープンするだけではありません: タブの移動履歴を復帰して戻る/進むのボタンが動くようにもします。

+ +

この API は拡張機能にタブやウィンドウに関連する追加状態の保存させる関数グループも提供します。それで、タブやウィンドウが閉じられて順次復帰された場合、拡張機能は状態を取得できます。例えば、タブをグループ化する拡張機能は、これを使ってタブがどのグループにいるのかを記憶し、ユーザーがタブを復帰した時に正しいグループに復帰できるようになります。

+ +

セッション API を使うには "sessions" API パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("sessions.Filter")}}
+
{{WebExtAPIRef("sessions.getRecentlyClosed()")}}の呼び出しで返される{{WebExtAPIRef("sessions.Session", "Session")}} オブジェクトの数を制限します。
+
{{WebExtAPIRef("sessions.Session")}}
+
+

現在のブラウジングセッションでユーザーが閉じたタブやウィンドウを表します。

+
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("sessions.MAX_SESSION_RESULTS")}}
+
sessions.getRecentlyClosed()の呼び出しで返される最大のセッション数。
+
+ +

関数

+ +
+
{{WebExtAPIRef("sessions.forgetClosedTab()")}}
+
ブラウザーの最近閉じたタブリストから閉じたタブを削除します。
+
{{WebExtAPIRef("sessions.forgetClosedWindow()")}}
+
ブラウザーの最近閉じたウィンドウリストから閉じたウィンドウを削除します。
+
{{WebExtAPIRef("sessions.getRecentlyClosed()")}}
+
{{WebExtAPIRef("sessions.Session", "Session")}} オブジェクトを返します、これは現在のブラウジングセッション(つまり: ブラウザーが起動した以降の)で閉じたウィンドウとタブを表しています。
+
{{WebExtAPIRef("sessions.restore()")}}
+
+

閉じたタブやウィンドウを復元します。

+
+
{{WebExtAPIRef("sessions.setTabValue()")}}
+
+

あるタブに関連するキー/バリューペアを保存します。

+
+
{{WebExtAPIRef("sessions.getTabValue()")}}
+
+

あるタブのキーに対応するバリューを取得します。

+
+
{{WebExtAPIRef("sessions.removeTabValue()")}}
+
+

あるタブに関連するキー/バリューペアを削除します。

+
+
{{WebExtAPIRef("sessions.setWindowValue()")}}
+
+

あるウィンドウに関連するキー/バリューペアを保存します。

+
+
{{WebExtAPIRef("sessions.getWindowValue()")}}
+
+

あるウィンドウに関連するキー/バリューペアを保存します。

+
+
{{WebExtAPIRef("sessions.removeWindowValue()")}}
+
+

あるウィンドウに関連するキー/バリューペアを削除します。

+
+
+ +

イベント

+ +
+
{{WebExtAPIRef("sessions.onChanged")}}
+
+

タブかウィンドウが閉じられたときに発火します。

+
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.sessions")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.sessions API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/sidebaraction/index.html b/files/ja/mozilla/add-ons/webextensions/api/sidebaraction/index.html new file mode 100644 index 0000000000..90c3d8ec73 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/sidebaraction/index.html @@ -0,0 +1,98 @@ +--- +title: sidebarAction +slug: Mozilla/Add-ons/WebExtensions/API/sidebarAction +tags: + - API + - Extensions + - Non-standard + - Reference + - Sidebar + - WebExtensions + - sidebarAction +translation_of: Mozilla/Add-ons/WebExtensions/API/sidebarAction +--- +
{{AddonSidebar}}
+ +

拡張機能のサイドバーのプロパティを取得、設定します。

+ +

サイドバー はブラウザーウィンドウのウェブページの隣の、右側か左側にあるペインです。ブラウザーはユーザーが利用できるサイドバーを見て、表示するサイドバーを選択できる UI を提供します。manifest.json の sidebar_action キーを使って、拡張機能は自身のサイドバーを定義できます。ここで述べる sidebarAction API を使って、拡張機能はサイドバーのプロパティを設定、取得できます。

+ +

sidebarAction API は {{WebExtAPIRef("browserAction")}} API と緊密にモデリングされています。

+ +

sidebarAction API は Opera の sidebarAction API を元にしていますが、次のものはサポートされていません: setBadgeText(), getBadgeText(), setBadgeBackgroundColor(), getBadgeBackgroundColor(), onFocus, onBlur.

+ +

+ +
+
{{WebExtAPIRef("sidebarAction.ImageDataType")}}
+
画像のピクセルデータ。ImageData オブジェクト (例えば、{{htmlelement("canvas")}} 要素からのもの)でなければならない。
+
+ +

関数

+ +
+
{{WebExtAPIRef("sidebarAction.setPanel()")}}
+
サイドバーのバネルを設定します。
+
{{WebExtAPIRef("sidebarAction.getPanel()")}}
+
サイドバーのバネルを取得します。
+
{{WebExtAPIRef("sidebarAction.setTitle()")}}
+
サイドバーのタイトルを設定します。これはブラウザーがサイドバーを一覧するあらゆる UI、例えばメニューに表示されます。
+
{{WebExtAPIRef("sidebarAction.getTitle()")}}
+
サイドバーのタイトルを取得します。
+
{{WebExtAPIRef("sidebarAction.setIcon()")}}
+
サイドバーのアイコンを設定します。
+
{{WebExtAPIRef("sidebarAction.open()")}}
+
サイドバーを開きます。
+
{{WebExtAPIRef("sidebarAction.close()")}}
+
サイドバーを閉じます。
+
{{WebExtAPIRef("sidebarAction.isOpen()")}}
+
サイドバーが開いているか否かをチェックします。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.sidebarAction")}}

+ +

add-ons の例

+ + + +
Acknowledgements + +

This API is based on Opera's chrome.sidebarAction API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/index.html new file mode 100644 index 0000000000..6286012f61 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/index.html @@ -0,0 +1,109 @@ +--- +title: storage +slug: Mozilla/Add-ons/WebExtensions/API/storage +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - Storage + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/storage +--- +
{{AddonSidebar}}
+ +

拡張機能にデータの保存、取得と、保存項目の変更をリッスンできるようにします。

+ +

ストレージのシステムは Web Storage API に基づいていますが、いくつか相違点があります。とりわけ、以下の違いがあります。

+ + + +

この API を利用するためには"storage" permissionmanifest.json に含める必要があります。

+ +

各々の拡張機能は独自のストレージ領域を持っています。またそれらは異なる型のストレージに分割することができます。

+ +

{{domxref("Window.localStorage")}}とこの API は似ていますが、拡張機能関連のデータを格納する際に拡張コード内で Window.localStorage を使わないことを推奨します。Firefox はプライバシー上の理由で、ブラウザー履歴やデータを消去などをする場合、localStorage API を利用して保存されたデータも消去します。しかし storage.local API を利用して保存されたデータはこれらの場合でも保持されます。

+ +
+

ストレージ領域内は暗号化されていないため、ユーザーの機密情報を保存すべきではありません。

+
+ +

+ +
+
{{WebExtAPIRef("storage.StorageArea")}}
+
ストレージ領域を表すオブジェクト
+
{{WebExtAPIRef("storage.StorageChange")}}
+
ストレージ領域の変更を表すオブジェクト
+
+ +

プロパティ

+ +

storage は 3 つのプロパティを持ち、異なる型の利用可能なストレージ領域を表しています。

+ +
+
{{WebExtAPIRef("storage.sync")}}
+
sync ストレージ領域を表します。sync ストレージ内のアイテムはブラウザーによって同期され、異なるデバイス間でも、ログインしているユーザーのブラウザーのすべてのインスタンスを跨いで利用できるようになります。
+
{{WebExtAPIRef("storage.local")}}
+
local ストレージ領域を表します。local ストレージ内のアイテムは拡張機能がインストールされているマシン内のみで扱えます。
+
{{WebExtAPIRef("storage.managed")}}
+
managed ストレージ領域を表します。managed ストレージ内のアイテムはドメイン管理者によってセットされ、拡張機能は読取権限のみを持ちます。そのため、この名前空間を変更しようとするとエラーになります。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("storage.onChanged")}}
+
ストレージ領域内のアイテムを 1 つ以上変更した場合に発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.storage")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

この API は Chromium の chrome.storage API に基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/local/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/local/index.html new file mode 100644 index 0000000000..e69759effd --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/local/index.html @@ -0,0 +1,84 @@ +--- +title: storage.local +slug: Mozilla/Add-ons/WebExtensions/API/storage/local +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/local +--- +
{{AddonSidebar()}}
+ +

local ストレージ領域を指します。localストレージ内のアイテムはその拡張機能がインストールされたマシン内で利用できます。

+ +

ブラウザーは拡張機能がローカルストレージエリアに保存できるデータ量を制限します。

+ + + +

拡張機能をアンインストールすると、関連するローカルストレージは削除されます。

+ +

またFirefoxでは、"about:config"で"keepUuidOnUninstall"と"keepStorageOnUninstall"の設定をtrueにすることで、アンインストール時にデータが削除されることを防ぐことができます。 この機能は拡張機能開発のテストのために提供されています。拡張機能自身ではこれらの設定を変更できません。

+ +

このAPIは {{domxref("Window.localStorage")}}に似ていますが、拡張機能のコード内でWindow.localStorageを使用することは推奨されません。これはユーザがプライバシーのために履歴とデータを削除するなど、FirefoxはlocalStorage APIを用いて拡張機能が保存したデータを削除することがあるためです。

+ +

関数

+ +

localオブジェクトは{{WebExtAPIRef("storage.StorageArea")}} 型で定義された関数を実装しています。

+ +
+
{{WebExtAPIRef("storage.StorageArea.get()")}}
+
ストレージ領域から 1つ以上のアイテムを取得します。
+
{{WebExtAPIRef("storage.StorageArea.getBytesInUse()")}}
+
1つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。
+
{{WebExtAPIRef("storage.StorageArea.set()")}}
+
1つ以上のアイテムをストレージ領域に格納します。既にアイテムが存在していれば値は上書きされます。 値を格納したとき{{WebExtAPIRef("storage.onChanged")}}イベントが発火します。
+
{{WebExtAPIRef("storage.StorageArea.remove()")}}
+
ストレージ領域内の1つ以上のアイテムを削除します。
+
{{WebExtAPIRef("storage.StorageArea.clear()")}}
+
ストレージ領域内の全てのアイテムを削除します。
+
+ +

ブラウザ互換状況

+ + + +

{{Compat("webextensions.api.storage.local")}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

このAPIはChromiumの chrome.storage APIに基づいています。また、このドキュメントは storage.jsonにおける Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/clear/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/clear/index.html new file mode 100644 index 0000000000..b8dc2aec62 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/clear/index.html @@ -0,0 +1,62 @@ +--- +title: StorageArea.clear() +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/clear +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - Storage + - StorageArea + - WebExtensions + - remove +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/clear +--- +
{{AddonSidebar()}}
+ +

全てのアイテムをストレージ領域から削除します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var clearing = browser.storage.<storageType>.clear()
+
+ +

<storageType> は {{WebExtAPIRef("storage.sync")}} または {{WebExtAPIRef("storage.local")}} の書き込み可能なストレージタイプです。

+ +

引数

+ +

なし

+ +

返り値

+ +

成功時は引数の無い Promise を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

+ +

ブラウザ互換性

+ +

{{Compat("webextensions.api.storage.StorageArea.clear")}}

+ +

+ +
function onCleared() {
+  console.log("OK");
+}
+
+function onError(e) {
+  console.log(e);
+}
+
+var clearStorage = browser.storage.local.clear();
+clearStorage.then(onCleared, onError);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/get/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/get/index.html new file mode 100644 index 0000000000..d5ea70153c --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/get/index.html @@ -0,0 +1,133 @@ +--- +title: StorageArea.get() +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - Storage + - StorageArea + - WebExtensions + - get +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get +--- +
{{AddonSidebar()}}
+ +

ストレージ領域から1つ以上のアイテムを取得します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
let gettingItem = browser.storage.<storageType>.get(
+  keys    // null, string, object or array of strings
+)
+
+ +

<storageType>storage.sync または storage.local の書き込み可能なストレージタイプです。

+ +

引数

+ +
+
keys
+
取得したいアイテムのキー(文字列・文字列の配列またはデフォルト値を指定するオブジェクト)を指定します。空文字列・オブジェクト・配列を指定すると空のオブジェクトが取得できます。 null か未定義の値を指定するとストレージ全体のアイテムが取得できます。
+
+ +

返り値

+ +

成功時は keys で指定されたストレージ領域内のアイテム全てを含む results オブジェクトを引数に持つ Promise を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

+ +
+

52 より前の Firefox バージョンのコンテンツスクリプトで使用する場合、 browser.storage.local.get() で返される Promise は1つのオブジェクトを持つ配列を引数に持ちます。配列内のオブジェクトは上記に記述したようにストレージ領域内の keys を持っています。 The Promise is correctly fulfilled with an Object when used in the background context (background scripts, popups, options pages, etc.). When this API is used as chrome.storage.local.get(), it correctly passes an Object to the callback function.

+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.storage.StorageArea.get")}}

+ +

+ +

あらかじめストレージ領域に2つのアイテムを格納しておきます。

+ +
// "kitten" と "monster" を格納
+browser.storage.local.set({
+  kitten:  {name:"Mog", eats:"mice"},
+  monster: {name:"Kraken", eats:"people"}
+});
+ +

次に promise で使う成功時と失敗時のハンドラを定義しておきます。

+ +
function onGot(item) {
+  console.log(item);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+ +

keys を指定せずに呼び出すと全て取得します。

+ +
let gettingItem = browser.storage.local.get();
+gettingItem.then(onGot, onError);
+
+// -> Object { kitten: Object, monster: Object }
+ +

空のキーを指定すると何も返しません。

+ +
// 空の配列を指定すると何も返らない
+let gettingItem = browser.storage.local.get([]);
+gettingItem.then(onGot, onError);
+
+// -> Object { }
+ +

オブジェクト名を指定すると、合致するものを返します。

+ +
let gettingItem = browser.storage.local.get("kitten");
+gettingItem.then(onGot, onError);
+
+// -> Object { kitten: Object }
+ +

オブジェクト名の配列を指定すると合致するものを全て返します。

+ +
let gettingItem = browser.storage.local.get(["kitten", "monster", "grapefruit"]);
+gettingItem.then(onGot, onError);
+
+// -> Object { kitten: Object, monster: Object } 
+ +

オブジェクト名をキー、デフォルト値をvalueに指定したオブジェクトを指定する場合

+ +
let gettingItem = browser.storage.local.get({
+  kitten: "no kitten",
+  monster: "no monster",
+  grapefruit: {
+    name: "Grape Fruit",
+    eats: "Water"
+  }
+});
+
+// -> Object { kitten: Object, monster: Object, grapefruit: Object }
+
+ +

{{WebExtExamples}}

+ +

Chrome での例

+ +
chrome.storage.local.get("kitten", function(items){
+  console.log(items.kitten);  // -> {name:"Mog", eats:"mice"}
+});
+ +

Or with an arrow function

+ +
chrome.storage.local.get("kitten", items=>{
+  console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
+});
+ +
謝辞 + +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/getbytesinuse/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/getbytesinuse/index.html new file mode 100644 index 0000000000..ae2de4bb9e --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/getbytesinuse/index.html @@ -0,0 +1,53 @@ +--- +title: StorageArea.getBytesInUse() +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/getBytesInUse +tags: + - API + - Add-ons + - Method + - Non-standard + - Reference + - Storage + - StorageArea + - WebExtensions + - getBytesInUse +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/getBytesInUse +--- +
{{AddonSidebar()}}
+ +

1つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var gettingSpace = browser.storage.<storageType>.getBytesInUse(
+  keys                      // null, string, or array of strings
+)
+
+ +

<storageType> は {{WebExtAPIRef("storage.sync")}} または {{WebExtAPIRef("storage.local")}} の書き込み可能なストレージタイプです。

+ +

引数

+ +
+
keys
+
ストレージ空間を取得したいアイテムのキー(文字列または文字列の配列)を指定します。 空の文字列か配列を渡すと 0 が返ります。 null を指定すると、ストレージ領域全体の使用中ストレージ空間を返します。
+
+ +

返り値

+ +

成功時は keys で指定されたオブジェクトが占めるストレージ空間を持つ整数 bytesUsed を引数に持つ Promise を返します。失敗した場合 Promise はエラーメッセージと共にリジェクトされます。

+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.storage.StorageArea.getBytesInUse")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/index.html new file mode 100644 index 0000000000..5a84d5280d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/index.html @@ -0,0 +1,73 @@ +--- +title: storage.StorageArea +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea +--- +
{{AddonSidebar()}}
+ +

StorageArea はストレージ領域を表すオブジェクトです。

+ +

+ +

StorageAreaはオブジェクト型です。

+ +

関数

+ +
+
{{WebExtAPIRef("storage.StorageArea.get()")}}
+
ストレージ領域から1つ以上のアイテムを取得します。
+
{{WebExtAPIRef("storage.StorageArea.getBytesInUse()")}}
+
ストレージ領域に格納されている1つ以上のアイテムで使用されているストレージサイズ(バイト単位)を取得します。
+
{{WebExtAPIRef("storage.StorageArea.set()")}}
+
1つ以上のアイテムをストレージ領域に保存します。既にアイテムが存在する場合は値が上書きされます。
+
{{WebExtAPIRef("storage.StorageArea.remove()")}}
+
1つ以上のアイテムをストレージ領域から削除します。
+
{{WebExtAPIRef("storage.StorageArea.clear()")}}
+
全てのアイテムをストレージ領域から削除します。
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.storage.StorageArea")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

このAPIはChromium chrome.storage APIに模度づいています。また、このドキュメントは storage.json におけるChromiumのコードに基づいています。

+ +

Microsoft Edge での実装状況はMicrosoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States Licenseに従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/remove/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/remove/index.html new file mode 100644 index 0000000000..daba7224fb --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/remove/index.html @@ -0,0 +1,70 @@ +--- +title: StorageArea.remove() +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/remove +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - Storage + - StorageArea + - WebExtensions + - remove +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/remove +--- +
{{AddonSidebar()}}
+ +

1つ以上のアイテムをストレージ領域から削除します。

+ +

この関数は Promise を返す非同期関数です。

+ +

Syntax

+ +
let removingItem = browser.storage.<storageType>.remove(
+  keys             // string, or array of strings
+)
+
+ +

<storageType> は {{WebExtAPIRef("storage.sync")}} または {{WebExtAPIRef("storage.local")}} の書き込み可能なストレージタイプです。

+ +

引数

+ +
+
keys
+
削除したいアイテムのキー(文字列または文字列の配列)を指定します。
+
+ +

返り値

+ +

成功時は引数の無い Promise を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.storage.StorageArea.remove")}}

+ +

+ +

1つのアイテムを削除する例です。

+ +
function onRemoved() {
+  console.log("OK");
+}
+
+function onError(e) {
+  console.log(e);
+}
+
+let removeKitten = browser.storage.remove("kitten");
+removeKitten.then(onRemoved, onError);
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/set/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/set/index.html new file mode 100644 index 0000000000..6860bc9c19 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagearea/set/index.html @@ -0,0 +1,105 @@ +--- +title: StorageArea.set() +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/set +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - Storage + - StorageArea + - WebExtensions + - set +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/set +--- +
{{AddonSidebar()}}
+ +

1つ以上のアイテムをストレージ領域に保存または上書きします。

+ +

この API を使用して保存や上書きをする場合、{{WebExtAPIRef("storage.onChanged")}} イベントが発火します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
let settingItem = browser.storage.<storageType>.set(
+  keys             // オブジェクト
+)
+
+ +

<storageType>storage.sync または storage.local の書き込み可能なストレージタイプです。

+ +

Parameters

+ +
+
keys
+
+

保存したい1つ以上のキー/値ペアを持つオブジェクトを指定します。アイテムが既に存在する場合、値は上書きされます。

+ +

値は primitive 型 (整数型・ブール型・文字列) または配列 を指定でできます。

+ +

通常は他の型 (Function, Date, RegExp, Set, Map, ArrayBuffer  など)は格納できません。これらのサポートされていない型の中には空のオブジェクトとして復元されたり、 set() がエラーをスローする場合があります。この場合の挙動はブラウザに依存します。

+
+
+ +

返り値

+ +

成功時は引数の無い Promise を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

+ +

ブラウザ実装状況

+ +

 

+ +

{{Compat("webextensions.api.storage.StorageArea.set")}}

+ +

 

+ +

+ +
function setItem() {
+  console.log("OK");
+}
+
+function gotKitten(item) {
+  console.log(`${item.kitten.name} has ${item.kitten.eyeCount} eyes`);
+}
+
+function gotMonster(item) {
+  console.log(`${item.monster.name} has ${item.monster.eyeCount} eyes`);
+}
+
+function onError(error) {
+  console.log(error)
+}
+
+// オブジェクトを2つ定義
+var monster = {
+  name: "Kraken",
+  tentacles: true,
+  eyeCount: 10
+}
+
+var kitten = {
+  name: "Moggy",
+  tentacles: false,
+  eyeCount: 2
+}
+
+// オブジェクト2つを格納
+browser.storage.local.set({kitten, monster})
+  .then(setItem, onError);
+
+browser.storage.local.get("kitten")
+  .then(gotKitten, onError);
+browser.storage.local.get("monster")
+  .then(gotMonster, onError);
+
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+
diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/storagechange/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/storagechange/index.html new file mode 100644 index 0000000000..f7850012ad --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/storagechange/index.html @@ -0,0 +1,79 @@ +--- +title: storage.StorageChange +slug: Mozilla/Add-ons/WebExtensions/API/storage/StorageChange +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - Storage + - StorageChange + - Type + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/StorageChange +--- +
{{AddonSidebar()}}
+ +
StorageChange はストレージ領域の変更を表すオブジェクトです。
+ +
 
+ +

+ +

StorageChange オブジェクトは以下のプロパティを持ちます。

+ +
+
oldValue{{optional_inline}}
+
アイテムの変更前の値が存在すれば、この中に入ります。データ型は特定されておらず、何らかのデータ型が入ります。
+
newValue{{optional_inline}}
+
アイテムの変更後の値があれば、この中に入ります。データ型は特定されておらず、何らかのデータ型が入ります。
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.storage.StorageChange")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

 

+ +

この API は Chromium の chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/storage/sync/index.html b/files/ja/mozilla/add-ons/webextensions/api/storage/sync/index.html new file mode 100644 index 0000000000..f9b796ebfb --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/storage/sync/index.html @@ -0,0 +1,87 @@ +--- +title: storage.sync +slug: Mozilla/Add-ons/WebExtensions/API/storage/sync +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Property + - Reference + - Storage + - Sync + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/storage/sync +--- +
{{AddonSidebar()}}
+ +

sync ストレージ領域を指します。 sync ストレージ内のアイテムはブラウザーによって同期され、ログイン(Firefox sync や Google アカウントなど)しているブラウザー・デバイスの全てのインスタンスで利用できます。

+ +

Firefox の場合、ユーザーは "about:preferences" の "Sync 設定" オプションの下にある "アドオン" ボックスにチェックを入れる必要があります。

+ +

storage.sync の実装はアドオン ID に依存していることに注意してください。もし storage.sync を使うのであれば、 browser_specific_settings manifest.json キーを使用して拡張機能に ID を設定する必要があります。

+ +

この API の主な利用例は拡張機能の設定を格納し、異なるプロファイル間で同期させることです。この API は最大100 KB までデータを格納できます。それ以上格納しようとするとエラーメッセージを返して失敗します。 この API は稼働時間やパフォーマンスを保証しません。

+ +

関数

+ +

sync オブジェクトは {{WebExtAPIRef("storage.StorageArea")}} 型で定義された関数を実装しています。

+ +
+
{{WebExtAPIRef("storage.StorageArea.get()", "storage.StorageArea.get()")}}
+
ストレージ領域から1つ以上のアイテムを取得します。
+
{{WebExtAPIRef("storage.StorageArea.getBytesInUse()", "storage.StorageArea.getBytesInUse()")}}
+
1つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。
+
{{WebExtAPIRef("storage.StorageArea.set()", "storage.StorageArea.set()")}}
+
1つ以上のアイテムをストレージ領域に格納します。既にアイテムが存在していれば値は上書きされます。
+
{{WebExtAPIRef("storage.StorageArea.remove()", "storage.StorageArea.remove()")}}
+
ストレージ領域内の1つ以上のアイテムを削除します。
+
{{WebExtAPIRef("storage.StorageArea.clear()", "storage.StorageArea.clear()")}}
+
ストレージ領域内の全てのアイテムを削除します。
+
+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.storage.sync")}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

このAPIはChromiumの chrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/capturevisibletab/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/capturevisibletab/index.html new file mode 100644 index 0000000000..65a036c403 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/capturevisibletab/index.html @@ -0,0 +1,105 @@ +--- +title: tabs.captureVisibleTab() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/captureVisibleTab +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - captureVisibleTab + - tabs +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/captureVisibleTab +--- +
{{AddonSidebar()}}
+ +

指定ウィンドウの選択タブの表示領域の画像をエンコードしたデータ URI を作成します。このメソッドを使うには <all_urls> パーミッション が必要です (Chrome の場合、activeTab パーミッション があり、ユーザーが許可の操作を行えば、このメソッドを使うことができます)。

+ +

これは、Promise を返す非同期関数です。

+ +

構文

+ +
var capturing = browser.tabs.captureVisibleTab(
+  windowId,               // optional integer
+  options                 // optional extensionTypes.ImageDetails
+)
+
+ +

引数

+ +
+
windowId{{optional_inline}}
+
integer 型。対象となるウィンドウ。デフォルトは現在のウィンドウ。
+
options{{optional_inline}}
+
{{WebExtAPIRef('extensionTypes.ImageDetails')}} 型。
+
+ +

戻り値

+ +

Promise であり、キャプチャーされたタブの表示領域の画像をエンコードしたデータ URL で fulfilled 状態にされる。このデータ URL は、HTML イメージ要素の 'src' 属性に設定することで、画像を表示できる。もし何らかのエラーが発生した場合、Promise はエラーメッセージによって rejected 状態にされる。

+ +

使用例

+ +

現在のウィンドウの選択されたタブの画像を、デフォルト設定でキャプチャーする。

+ +
function onCaptured(imageUri) {
+  console.log(imageUri);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+browser.browserAction.onClicked.addListener(function() {
+  var capturing = browser.tabs.captureVisibleTab();
+  capturing.then(onCaptured, onError);
+});
+
+ +

{{WebExtExamples}}

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.tabs.captureVisibleTab")}}

+ +
謝辞 + +

この API は Chromium の chrome.tabs API に基づいています。このドキュメントは tabs.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/create/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/create/index.html new file mode 100644 index 0000000000..247bc50464 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/create/index.html @@ -0,0 +1,131 @@ +--- +title: tabs.create() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/create +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/create +--- +
{{AddonSidebar()}}
+ +

新しいタブを作ります。

+ +

これはPromiseを返す非同期関数です.

+ +

構文

+ +
var creating = browser.tabs.create(
+  createProperties   // object
+)
+
+ +

パラメータ

+ +
+
createProperties
+
新しいタブについてのプロパティを与えるオブジェクト。これらのプロパティについて詳しくは{{WebExtAPIRef("tabs.Tab")}}を参照してください。
+
+
+
active{{optional_inline}}
+
タブをアクティブにするかどうかを真理値で指定します。ウィンドウがフォーカスされているかには影響されません({{WebExtAPIRef('windows.update')}}も参照)。デフォルト値はtrue.
+
cookieStoreId {{optional_inline}}
+
文字列 。タブのcookie store IDがcookieStoreIdのタブを作るときに使用します。このオプションは拡張機能が"cookies" permissionを持つときのみ使用できます。
+
index{{optional_inline}}
+
整数値。ウィンドウ中のタブの位置を指定します。数値はゼロからウィンドウ内のタブの数までです。
+
openerTabId{{optional_inline}}
+
整数値。開くタブのIDを指定します。指定した場合、開く側のタブは新しいタブと同じウィンドウにある必要があります。
+
openInReaderMode{{optional_inline}}
+
真理値。もしtrueであればリーダーモードで開かれます。 デフォルトはfalse
+
pinned{{optional_inline}}
+
真理値。タブをピン留めするかを指定します。デフォルトはfalse
+
selected{{optional_inline}}
+
真理値。ウィンドウ内で選択されるかどうかを指定します。デフォルトはtrue。 +
このプロパティは非推奨です。Firefoxではサポートされません。代わりにactiveを使用してください。
+
+
url{{optional_inline}}
+
文字列。はじめに開くURLを指定します。デフォルトは新しいタブ。
+
スキームを含む完全なURLを指定します。(例えば 'www.google.com' → 'http://www.google.com').
+
セキュリティの観点からFirefoxでは特権URLは使用できません。
+
+
    +
  • chrome: URL
  • +
  • javascript: URL
  • +
  • data: URL
  • +
  • file: URL(ファイルシステム上のファイルなど。拡張機能内にパッケージ化されたファイルは指定できます。下部を参照してください)
  • +
  • 特権 about: URL (例、 about:config, about:addons, about:debugging) 。ただし非特権 URL (about:blank) は使用できます。
  • +
  • 新しいタブ (about:newtab) はURLを指定しなければ開かれます。
  • +
+ +

拡張機能内のファイルをロードするためにはmanifest.jsonファイルからの絶対パスで指定します。(例: '/path/to/my-page.html')。もし'/'を省略すると相対パスとして解釈されます。またブラウザによっては、また異なった絶対パスとして解釈されます。

+
+
windowId{{optional_inline}}
+
整数値。新しくタブを作るウィンドウを指定します。デフォルトは現在開いているウィンドウ。
+
+
+
+ +

返り値

+ +

新しく作ったタブに関する{{WebExtAPIRef('tabs.Tab')}}オブジェクトを引数に持つPromiseが返されます。URLが特権URLであるなどして、タブが作られなかった場合はpromiseはエラーメッセージとともにrejectされます。

+ +

ブラウザー互換状況

+ + + +

{{Compat("webextensions.api.tabs.create", 10)}}

+ +

+ +

"https://example.org" を新しいタブで開きます

+ +
function onCreated(tab) {
+  console.log(`Created new tab: ${tab.id}`)
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+browser.browserAction.onClicked.addListener(function() {
+  var creating = browser.tabs.create({
+    url:"https://example.org"
+  });
+  creating.then(onCreated, onError);
+});
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

このAPIはChromiumのchrome.tabs APIに基づいています。 このドキュメントは tabs.json における Chromium のコードに基づいています。

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/duplicate/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/duplicate/index.html new file mode 100644 index 0000000000..af56c60bce --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/duplicate/index.html @@ -0,0 +1,98 @@ +--- +title: tabs.duplicate() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/duplicate +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/duplicate +--- +
{{AddonSidebar()}}
+ +

ID で指定されたタブを複製します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var duplicating = browser.tabs.duplicate(
+  tabId              // integer
+)
+
+ +

パラメータ

+ +
+
tabId
+
integer. 複製するタブのIDを指定します。
+
+ +

戻り値

+ +

A Promise that will be fulfilled with a {{WebExtAPIRef('tabs.Tab')}} object containing details about the duplicated tab. The Tab object only contains url, title and favIconUrl if the extension has the "tabs" permission. If any error occurs the promise will be rejected with an error message.

+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.tabs.duplicate")}}

+ +

+ +

1つ目のタブを複製し、新しく作られたタブのIDをログに残す例:

+ +
function onDuplicated(tabInfo) {
+  console.log(tabInfo.id);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+// Duplicate the first tab in the array
+function duplicateFirstTab(tabs) {console.log(tabs);
+  if (tabs.length > 0) {
+    var duplicating = browser.tabs.duplicate(tabs[0].id);
+    duplicating.then(onDuplicated, onError);
+  }
+}
+
+// Query for all open tabs
+var querying = browser.tabs.query({});
+querying.then(duplicateFirstTab, onError);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromiums の chrome.tabs APIに基づいています。 This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/executescript/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/executescript/index.html new file mode 100644 index 0000000000..82e1ee1686 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/executescript/index.html @@ -0,0 +1,176 @@ +--- +title: tabs.executeScript() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/executeScript +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - executeScript + - tabs +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/executeScript +--- +
{{AddonSidebar()}}
+ +

JavaScript のコードをページに挿入します。

+ +

コードを挿入できるページの URL は、マッチパターン により指定できます。 つまり、URL の scheme 部は、"http", "https", "file", "ftp" のいずれかでなければなりません。そして、その URL に対する明示的な host パーミッション、または activeTab パーミッションが必要です。

+ +

また、自らの拡張機能パッケージに含まれるページに対してであれば、次の方法でコードを挿入することも可能です。

+ +
browser.tabs.create({url: "/my-page.html"}).then(() => {
+  browser.tabs.executeScript({
+    code: `console.log('location:', window.location.href);`
+  });
+});
+ +

この場合、特別なパーミッションは必要ありません。

+ +

ブラウザーの組込ページ、例えば about:debugging、about:addons、新規タブを開いた時のページなどには、コードを挿入することはできません

+ +

挿入するスクリプトのことを、コンテンツスクリプトと呼びます。詳細は コンテンツスクリプト で学んでください。

+ +

これは、Promise を返す非同期関数です。

+ +

構文

+ +
var executing = browser.tabs.executeScript(
+  tabId,                 // optional integer
+  details                // object
+)
+
+ +

引数

+ +
+
tabId {{optional_inline}}
+
integer 型。 スクリプトを実行するタブの ID。省略時のデフォルトは、現在のウィンドウでアクティブなタブ。
+
details
+
実行するスクリプトに関するオブジェクト。次のプロパティを持ちます。
+
+
+
allFrames {{optional_inline}}
+
boolean 型。true である場合は、現在のページが持つ全てのフレームにコードが挿入されます。true であり、かつ frameId が設定されている場合はエラーが発生するため、frameId と allFrames は互いに排他的です。false である場合は、最上位のフレームにのみコードが挿入されます。デフォルトは false です。
+
code {{optional_inline}}
+
string 型。挿入されるコードを文字列として表現したもの。注意: このプロパティを使って信頼できないデータを JavaScript に挿入しないでください。セキュリティの問題につながります。
+
file {{optional_inline}}
+
string 型。挿入されるコードを持つファイルへのパス。Firefox では、拡張機能のルートから始まらない相対 URL は、現在のページの URL からの相対位置として解決されます。Chrome では、そのような URL は拡張機能のベース URL からの相対位置として解決されます。複数のブラウザーで動作させるには、拡張機能のルートから始まる相対 URL として指定します。例えば、"/path/to/script.js" のようにします。
+
frameId {{optional_inline}}
+
integer 型。コードが挿入されるフレーム。デフォルトは 0 (最上位のフレーム) です。
+
matchAboutBlank {{optional_inline}}
+
boolean 型。true である場合、コードはその親ドキュメントへのアクセスをもつときに、組込の "about:blank" や "about:srcdoc" フレームにも挿入されます。コードをトップレベルの about: フレームに挿入することはできません。デフォルトは false です。
+
runAt {{optional_inline}}
+
{{WebExtAPIRef('extensionTypes.RunAt')}} 型。コードがどの時点でタブに挿入されるかを指定します。デフォルトは "document_idle" です。
+
+
+
+ +

戻り値

+ +

オブジェクト配列を使って fulfilled 状態にされる Promise です。それぞれのオブジェクトは、フレームに挿入されたスクリプトの結果を表します。

+ +

スクリプトの結果とは最後に評価された文のことです。これは、Webコンソールで実行されたスクリプトの出力 (結果であって、console.log() の出力のことではありません) に似ています。例えば、次のようなスクリプトを挿入したとします。

+ +
var foo='my result';foo;
+ +

この場合、結果配列には、文字列 "my result" が含まれます。結果は、structured clone が可能でなければなりません。最後の文を Promise にすることもできますが、webextension-polyfill ライブラリではサポートされていません。

+ +

エラーが発生した場合、Promise はエラーメッセージを使って rejected 状態にされます。

+ +

使用例

+ +

次の例は、現在アクティブなタブで 1 行のコードスニペットを実行します。

+ +
function onExecuted(result) {
+  console.log(`グリーンにしました`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var makeItGreen = 'document.body.style.border = "5px solid green"';
+
+var executing = browser.tabs.executeScript({
+  code: makeItGreen
+});
+executing.then(onExecuted, onError);
+ +

次の例は、ファイルからスクリプトを実行します。このファイルは拡張機能のパッケージに含まれており、"content-script.js" という名前です。そのスクリプトは、現在アクティブなタブで実行されますが、メインのドキュメントだけでなく、全てのサブフレームでも実行されます。

+ +
function onExecuted(result) {
+  console.log(`全てのサブフレームで実行しました`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var executing = browser.tabs.executeScript({
+  file: "/content-script.js",
+  allFrames: true
+});
+executing.then(onExecuted, onError);
+ +

次の例は、ファイルからスクリプトを実行します。このファイルは拡張機能のパッケージに含まれており、"content-script.js" という名前です。そのスクリプトは、ID が 2 であるタブで実行されます。

+ +
function onExecuted(result) {
+  console.log(`タブ 2 で実行しました`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var executing = browser.tabs.executeScript(
+  2, {
+    file: "/content-script.js"
+});
+executing.then(onExecuted, onError);
+ +

{{WebExtExamples}}

+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.tabs.executeScript")}}

+ +
謝辞 + +

この API は Chromium の chrome.tabs API に基づいています。このドキュメントは tabs.json における Chromium のコードに基づいています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/get/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/get/index.html new file mode 100644 index 0000000000..767b11173d --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/get/index.html @@ -0,0 +1,87 @@ +--- +title: tabs.get() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/get +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/get +--- +
{{AddonSidebar()}}
+ +

タブのIDを指定し、{{WebExtAPIRef("tabs.Tab")}}オブジェクトとしてタブの詳細を取得します。

+ +

これはPromiseを返す非同期関数です。

+ +

Syntax

+ +
var getting = browser.tabs.get(
+  tabId              // integer
+)
+
+ +

Parameters

+ +
+
tabId
+
integer. 取得するタブのID。
+
+ +

Return value

+ +

A Promise that will be fulfilled with a {{WebExtAPIRef('tabs.Tab')}} object containing information about the tab. If the tab could not be found or some other error occurs, the promise will be rejected with an error message.

+ +

Examples

+ +

タブがアクティブなとき、情報を取得します:

+ +
async function logListener(info) {
+  try {
+    let tabInfo = await browser.tabs.get(info.tabId);
+    console.log(tabInfo);
+  } catch (error) {
+    console.error(error);
+  }
+}
+
+browser.tabs.onActivated.addListener(logListener);
+ +

{{WebExtExamples}}

+ +

Browser compatibility

+ + + +

{{Compat("webextensions.api.tabs.get")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/index.html new file mode 100644 index 0000000000..40f6ced315 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/index.html @@ -0,0 +1,215 @@ +--- +title: tabs +slug: Mozilla/Add-ons/WebExtensions/API/tabs +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - tabs + - タブ +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs +--- +
{{AddonSidebar}}
+ +

ブラウザーのタブシステムとやりとりします。

+ +

この API を使って開いているタブの一覧を取得したり、いろいろな条件でフィルターしたり、タブを開き、更新し、移動し、再読み込みし、削除できます。この API ではタブのコンテンツに直接アクセスできませんが、JavaScript と CSS をタブに挿入することは、{{WebExtAPIRef("tabs.executeScript()")}} や {{WebExtAPIRef("tabs.insertCSS()")}} API を使ってできます。

+ +

この API の大半の使用に特別なパーミッションは要りませんが:

+ + + +

あるいは、これらのパーミッションを一時的に取得することもできますが、それは現在アクティブなタブで明示的なユーザーアクションへの応答する場合のみで、"activeTab" パーミッションを要求することで可能です。

+ +

タブ操作の多くはタブ ID を使います。タブ ID はブラウザーセッションの単一のタブごとにユニークである保証がされています。ブラウザーが再起動したら、タブ ID を再利用できて、実際そうします。ブラウザーの再起動をまたいでタブ情報を関連づけるには {{WebExtAPIRef("sessions.setTabValue()")}} を使います。

+ +

+ +
+
{{WebExtAPIRef("tabs.MutedInfoReason")}}
+
タブがミュートされている、またはミュートが解除されている理由を示す。
+
{{WebExtAPIRef("tabs.MutedInfo")}}
+
タブがミュートされているかを示す真理値と、最後の変更の理由からなるオブジェクト。
+
{{WebExtAPIRef("tabs.PageSettings")}}
+
+

tabs.saveAsPDF()メソッドにおいて、どのように PDF を描画するかを制御する。

+
+
{{WebExtAPIRef("tabs.Tab")}}
+
タブについての情報を含む。
+
{{WebExtAPIRef("tabs.TabStatus")}}
+
タブの読み込み状況を示す。
+
{{WebExtAPIRef("tabs.WindowType")}}
+
タブを所有しているウィンドウのタイプを示す。
+
{{WebExtAPIRef("tabs.ZoomSettingsMode")}}
+
ズームがブラウザーによるものか、拡張機能によるものか、またはズームが許可されていないのかを示す。
+
{{WebExtAPIRef("tabs.ZoomSettingsScope")}}
+
あるページのズームが、同一生成元の別ページにも適用されるか、タブ内でのみかを示す。
+
{{WebExtAPIRef("tabs.ZoomSettings")}}
+
ズーム設定{{WebExtAPIRef("tabs.ZoomSettingsMode", "mode")}}, {{WebExtAPIRef("tabs.ZoomSettingsScope", "scope")}}とデフォルトのズーム要因を示す。
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("tabs.TAB_ID_NONE")}}
+
ブラウザーのタブでないタブに対する特殊な ID(Windows の開発ツールなど)。
+
+ +

関数

+ +
+
{{WebExtAPIRef("tabs.captureTab()")}}
+
あるタブの可視エリアの画像をエンコードしたデータURIを作成します。
+
{{WebExtAPIRef("tabs.captureVisibleTab()")}}
+
特定のウィンドウのアクティブなタブの可視エリアの画像をエンコードしたデータURI を作成します。
+
{{WebExtAPIRef("tabs.connect()")}}
+
あるタブにおいて、バックグラウンドスクリプト(またはその他ポップアップやオプションページのスクリプトなど特権スクリプト)と content scripts 間でのメッセージのやり取り用の経路を確保します。
+
{{WebExtAPIRef("tabs.create()")}}
+
新しいタブを作る。
+
{{WebExtAPIRef("tabs.detectLanguage()")}}
+
タブのコンテンツの言語を検出する
+
{{WebExtAPIRef("tabs.discard()")}}
+
1つ以上のタブを破棄する。
+
{{WebExtAPIRef("tabs.duplicate()")}}
+
タブを複製する。
+
{{WebExtAPIRef("tabs.executeScript()")}}
+
ページに JavaScript コードを挿入する。
+
{{WebExtAPIRef("tabs.get()")}}
+
特定のタブについて情報を取り出す。
+
{{WebExtAPIRef("tabs.getAllInWindow()")}} {{deprecated_inline}}
+
特定のウィンドウ内のすべてのタブについての情報を取り出す。
+
{{WebExtAPIRef("tabs.getCurrent()")}}
+
スクリプトが実行されているタブについての情報を tabs.Tab オブジェクトとして取り出す。
+
{{WebExtAPIRef("tabs.getSelected()")}} {{deprecated_inline}}
+
あるウィンドウにおいてタブが選択されているかを得る。
+
{{WebExtAPIRef("tabs.getZoom()")}}
+
あるタブについてズーム要因を得る。
+
{{WebExtAPIRef("tabs.getZoomSettings()")}}
+
あるタブについてズーム設定を得る。
+
{{WebExtAPIRef("tabs.goForward()")}}
+
可能な場合、次のページへ進む。
+
{{WebExtAPIRef("tabs.goBack()")}}
+
可能な場合、前のページへ戻る。
+
{{WebExtAPIRef("tabs.hide()")}} {{experimental_inline}}
+
1つ以上のタブを隠す。
+
{{WebExtAPIRef("tabs.highlight()")}}
+
1 つ以上のタブをハイライトする。
+
{{WebExtAPIRef("tabs.insertCSS()")}}
+
CSS をページに挿入する。
+
{{WebExtAPIRef("tabs.move()")}}
+
2 つ以上のタブを同じ、あるいは異なるウィンドウの任意のポジションへ移動させる。
+
{{WebExtApiRef("tabs.moveInSuccession()")}}
+
タブグループの継承関係を編集する。
+
{{WebExtAPIRef("tabs.print()")}}
+
開いているタブのコンテンツを印刷する。
+
{{WebExtAPIRef("tabs.printPreview()")}}
+
+
開いているタブの印刷プレビューを開く。
+
+
{{WebExtAPIRef("tabs.query()")}}
+
特定のプロパティを持つすべてのタブ、またはプロパティが指定されなければすべてのタブを取得します。
+
{{WebExtAPIRef("tabs.reload()")}}
+
タブをリロードする。キャッシュを回避することもできる。
+
{{WebExtAPIRef("tabs.remove()")}}
+
1つ以上のタブを閉じる。
+
{{WebExtAPIRef("tabs.removeCSS()")}}
+
以前に{{WebExtAPIRef("tabs.insertCSS()")}}を呼び出して挿入されているCSSを削除する。
+
{{WebExtAPIRef("tabs.saveAsPDF()")}}
+
現在のページを PDF として保存する。
+
{{WebExtAPIRef("tabs.sendMessage()")}}
+
あるタブのコンテンツスクリプトへ、1つのメッセージを送信する。
+
{{WebExtAPIRef("tabs.sendRequest()")}} {{deprecated_inline}}
+
あるタブのコンテンツスクリプトへ、単一のリクエストを送信する。非推奨: 代わりに {{WebExtAPIRef("tabs.sendMessage()")}} を使用してください。
+
{{WebExtAPIRef("tabs.setZoom()")}}
+
あるタブをズームする。
+
{{WebExtAPIRef("tabs.setZoomSettings()")}}
+
あるタブについてズーム設定をする。
+
{{WebExtAPIRef("tabs.show()")}} {{experimental_inline}}
+
{{WebExtAPIRef("tabs.hide()", "hidden")}}で隠されたタブを表示する。
+
{{WebExtAPIRef("tabs.toggleReaderMode()")}}
+
あるタブについてのリーダーモードへのトグル。
+
{{WebExtAPIRef("tabs.update()")}}
+
新しい URL に案内、もしくはタブの他のプロパティを修正する。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("tabs.onActivated")}}
+
ウィンドウ内でアクティブなタブが変わったときに発火。このイベントが発火した段階ではまだタブの URL はセットされているとは限らない。
+
{{WebExtAPIRef("tabs.onActiveChanged")}} {{deprecated_inline}}
+
ウィンドウの中の選択されたタブが変更されたときに発火。非推奨: 代わりに{{WebExtAPIRef("tabs.onActivated")}}を利用してください。
+
{{WebExtAPIRef("tabs.onAttached")}}
+
タブがウィンドウに引っ付けられたとき、例えばウィンドウ間で移動されたときに発火。
+
{{WebExtAPIRef("tabs.onCreated")}}
+
タブが作られたときに発火。このイベントが発火した段階ではまだタブの URL はセットされているとは限らない。
+
{{WebExtAPIRef("tabs.onDetached")}}
+
タブがウィンドウから切り離されたときに発火。例えば、ウィンドウのない場所へタブを移動させたときなど。
+
{{WebExtAPIRef("tabs.onHighlightChanged")}} {{deprecated_inline}}
+
ウィンドウ内でハイライトまたは選択されたタブが変更したときに発火。非推奨: 代わりに{{WebExtAPIRef("tabs.onHighlighted")}}を使用してください。
+
{{WebExtAPIRef("tabs.onHighlighted")}}
+
ウィンドウ内でハイライトまたは選択されたタブが変更したときに発火。
+
{{WebExtAPIRef("tabs.onMoved")}}
+
ウィンドウ内にタブが移動したときに発火する。
+
{{WebExtAPIRef("tabs.onRemoved")}}
+
タブが閉じられたときに発火する。
+
{{WebExtAPIRef("tabs.onReplaced")}}
+
プリレンダリングによってタブが他のタブに置き換えられたときに発火。
+
{{WebExtAPIRef("tabs.onSelectionChanged")}} {{deprecated_inline}}
+
ウィンドウ内で選択されているタブが変わったときに発火。非推奨: 代わりに{{WebExtAPIRef("tabs.onActivated")}}を使用してください。
+
{{WebExtAPIRef("tabs.onUpdated")}}
+
タブが更新されたときに発火する。
+
{{WebExtAPIRef("tabs.onZoomChange")}}
+
タブがズームされたときに発火する。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.tabs")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinfo/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinfo/index.html new file mode 100644 index 0000000000..7d70c895e8 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinfo/index.html @@ -0,0 +1,67 @@ +--- +title: tabs.MutedInfo +slug: Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfo +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfo +--- +
{{AddonSidebar()}}
+ +

This object contains a boolean indicating whether the tab is muted, and the reason for the last state change.

+ +

+ +

値の型はオブジェクトです。次のプロパティを含みます:

+ +
+
extensionId{{optional_inline}}
+
string. ミュートの状態を最後に変更した拡張機能のIDです。もし拡張機能がミュートの状態の最後の変更の理由でないなら設定されません。
+
muted
+
boolean. タブが現在ミュートかどうか。Equivalent to whether the muted audio indicator is showing.
+
reason{{optional_inline}}
+
{{WebExtAPIRef('tabs.MutedInfoReason')}}. ミュートもしくはアンピューとに設定された理由。Not set if the tab's muted state has never been changed.
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.tabs.MutedInfo")}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinforeason/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinforeason/index.html new file mode 100644 index 0000000000..3a838233b6 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/mutedinforeason/index.html @@ -0,0 +1,67 @@ +--- +title: tabs.MutedInfoReason +slug: Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfoReason +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfoReason +--- +
{{AddonSidebar()}}
+ +

タブがミュート・アンミュートになった理由を指定します。

+ +

+ +

値のタイプは文字列型です。可能な値:

+ +
+
"capture"
+
タブのキャプチャが開始され、ミュート状態に強いられました。
+
"extension"
+
拡張機能がミュート状態に設定しました。もしこれが理由なら、{{WebExtAPIRef("tabs.mutedInfo")}}のextensionIdが責任のある拡張機能のIDを含んでいます。
+
"user"
+
ユーザがミュート状態に設定しました。
+
+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.tabs.MutedInfoReason")}}

+ +

{{WebExtExamples}}

+ +
謝辞 + +

このAPIはChromiumのchrome.tabs APIに基づいています。このドキュメントはChromiumコードのtabs.jsonから派生したものです。

+ +

Microsoft Edgeの互換性データはMicrosoft Corporationから提供されており、Creative Commons Attribution 3.0 United States Licenseのもとにここに含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/oncreated/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/oncreated/index.html new file mode 100644 index 0000000000..2113436fa6 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/oncreated/index.html @@ -0,0 +1,100 @@ +--- +title: tabs.onCreated +slug: Mozilla/Add-ons/WebExtensions/API/tabs/onCreated +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/onCreated +--- +
{{AddonSidebar()}}
+ +

タブが生成されたときに発火します。

+ +

イベントが発火したとき、タブはURLを渡されていないかもしれないことに注意してください。特に、Firefoxは新しいページを読み込み前に新しいタブを"about:blank"で開きます。URLがセットされたときを通知されるために{{WebExtAPIRef("tabs.onUpdated")}}イベントをリッスンすることができます。

+ +

書式

+ +
browser.tabs.onCreated.addListener(callback)
+browser.tabs.onCreated.removeListener(listener)
+browser.tabs.onCreated.hasListener(listener)
+
+ +

イベントは3つの関数を持ちます:

+ +
+
addListener(callback)
+
このイベントにリスナーを追加します。
+
removeListener(listener)
+
このイベントのリスニングを停止します。引数listenerは削除するリスナーです。
+
hasListener(listener)
+
listenerがこのイベントに登録されているかを調べます。リスニング中であればtrueを返し、そうでなければfalseを返します
+
+ +

addListenerの書式

+ +

パラメータ

+ +
+
callback
+
+

このイベントが発生したときに呼び出される関数です。関数は次の引数を渡されます:

+ +
+
tab
+
{{WebExtAPIRef('tabs.Tab')}}。生成されたタブの詳細です。
+
+
+
+ +

+ +

新しく作られたタブのログを生成します:

+ +
function handleCreated(tab) {
+  console.log(tab.id);
+}
+
+browser.tabs.onCreated.addListener(handleCreated);
+ +

{{WebExtExamples}}

+ +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.tabs.onCreated")}}

+ +
謝辞 + +

このAPIはChromiumのchrome.tabs APIに基づいています。このドキュメンテーションはChromium codeの中のtabs.jsonからの派生です。

+ +

Microsoft Edgeの互換性データはMicrosoft Corporationから提供されており、ここにthe Creative Commons Attribution 3.0 United States Licenseのもとで含まれています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/query/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/query/index.html new file mode 100644 index 0000000000..9b8dfc5a2a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/query/index.html @@ -0,0 +1,216 @@ +--- +title: tabs.query() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/query +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/query +--- +
{{AddonSidebar()}}
+ +

指定されたプロパティを持つ全てのタブを取得します。何も指定しない場合、全てのタブを取得します。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var querying = browser.tabs.query(
+  queryInfo             // object
+)
+
+ +

パラメータ

+ +
+
queryInfo
+
object. query() 関数はここで指定されたプロパティにマッチするタブだけを取得します。 このプロパティについての詳細は {{WebExtAPIRef("tabs.Tab")}} を参照してください。
+
+
+
active{{optional_inline}}
+
boolean. 各ウインドウの中でアクティブかどうか。
+
audible{{optional_inline}}
+
boolean. 音が鳴っているか。
+
autoDiscardable{{optional_inline}}
+
boolean. リソースが少なくなったときにブラウザーによって自動的にdiscardできるか。
+
cookieStoreId {{optional_inline}}
+
string. CookieストアのIDが cookieStoreId なタブのみを返すために使います。このオプションは "cookies" permissionを持つ拡張でのみ使用できます。
+
currentWindow{{optional_inline}}
+
boolean. カレントウインドウの中のタブか。
+
discarded{{optional_inline}}
+
boolean. タブがdiscardされているか。 discardされたタブはコンテンツがメモリからアンロードされているが、タブの一覧には表示されたままになります。コンテンツはタブが次にアクティブになったときにリロードされます。
+
highlighted{{optional_inline}}
+
boolean. ハイライトされているか。
+
index{{optional_inline}}
+
integer. ウィンドウの中での位置。
+
muted{{optional_inline}}
+
boolean. ミュートされているか。
+
lastFocusedWindow{{optional_inline}}
+
boolean. 最後にフォーカスされたウインドウのタブか。
+
openerTabId{{optional_inline}}
+
integer. そのタブを開いたタブのID。
+
pinned{{optional_inline}}
+
boolean. ピン留めされているか。
+
status{{optional_inline}}
+
{{WebExtAPIRef('tabs.TabStatus')}}. ロードが完了しているか。
+
title{{optional_inline}}
+
string. ページのタイトル。
+
url{{optional_inline}}
+
string もしくは array of string. 1つ以上のマッチパターンにマッチするタブか。フラグメント識別子にはマッチしません。
+
windowId{{optional_inline}}
+
integer. そのウインドウのID。カレントウインドウの場合は、 {{WebExtAPIRef('windows.WINDOW_ID_CURRENT')}} 。
+
windowType{{optional_inline}}
+
{{WebExtAPIRef('tabs.WindowType')}}. そのタブの属するウインドウの種類。
+
+
+
+ +

戻り値

+ +

マッチしたタブの情報を持つ {{WebExtAPIRef('tabs.Tab')}} オブジェクトの array に解決される Promise

+ +

エラーが発生した場合、その Promise はエラーメッセージとともに却下されます。

+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.tabs.query", 10)}}

+ +

+ +

全てのタブを取得する例:

+ +
function logTabs(tabs) {
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({});
+querying.then(logTabs, onError);
+ +

カレントウインドウの全てのタブを取得する例:

+ +
function logTabs(tabs) {
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({currentWindow: true});
+querying.then(logTabs, onError);
+ +

カレントウインドウのアクティブなタブを取得する例:

+ +
function logTabs(tabs) {
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({currentWindow: true, active: true});
+querying.then(logTabs, onError);
+ +

"mozilla.org" またはそのサブドメイン下のHTTP/HTTPS URLを開いている全てのタブを取得する例:

+ +
function logTabs(tabs) {
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({url: "*://*.mozilla.org/*"});
+querying.then(logTabs, onError);
+ +

moz-extension:// URLを開いている全てのタブを取得する例:

+ +
function logTabs(tabs) {
+  console.log(tabs);
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({url: "moz-extension://*/*"});
+querying.then(logTabs, onError);
+
+ +

この拡張機能のURLを開いている全てのタブを取得する例:

+ +
function logTabs(tabs) {
+  console.log(tabs);
+  for (let tab of tabs) {
+    // tab.url requires the `tabs` permission
+    console.log(tab.url);
+  }
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var querying = browser.tabs.query({url: browser.extension.getURL("*")});
+querying.then(logTabs, onError);
+
+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

この API は Chromium の chrome.tabs APIに基づいています。 This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/remove/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/remove/index.html new file mode 100644 index 0000000000..16c3419265 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/remove/index.html @@ -0,0 +1,102 @@ +--- +title: tabs.remove() +slug: Mozilla/Add-ons/WebExtensions/API/tabs/remove +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/remove +--- +
{{AddonSidebar()}}
+ +

1つ以上のタブを閉じます。

+ +

この関数は Promise を返す非同期関数です。

+ +

構文

+ +
var removing = browser.tabs.remove(
+  tabIds          // integer or integer array
+)
+
+ +

パラメータ

+ +
+
tabIds
+
integer または array of integer. 閉じるタブのIDを指定します。
+
+ +

戻り値

+ +

A Promise that will be fulfilled with no arguments when all the specified tabs have been removed or their beforeunload prompts have been handled. If any error occurs, the promise will be rejected with an error message.

+ +

ブラウザ実装状況

+ + + +

{{Compat("webextensions.api.tabs.remove")}}

+ +

+ +

タブを1つだけ閉じる場合:

+ +
function onRemoved() {
+  console.log(`Removed`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var removing = browser.tabs.remove(2);
+removing.then(onRemoved, onError);
+ +

複数のタブを閉じる場合:

+ +
function onRemoved() {
+  console.log(`Removed`);
+}
+
+function onError(error) {
+  console.log(`Error: ${error}`);
+}
+
+var removing = browser.tabs.remove([15, 14, 1]);
+removing.then(onRemoved, onError);
+ +

{{WebExtExamples}}

+ +
謝辞 + +

この API は Chromium の chrome.tabs APIに基づいています。 This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/tabs/tab/index.html b/files/ja/mozilla/add-ons/webextensions/api/tabs/tab/index.html new file mode 100644 index 0000000000..fcab149353 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/tabs/tab/index.html @@ -0,0 +1,128 @@ +--- +title: tabs.Tab +slug: Mozilla/Add-ons/WebExtensions/API/tabs/Tab +translation_of: Mozilla/Add-ons/WebExtensions/API/tabs/Tab +--- +
{{AddonSidebar()}}
+ +

tabs.Tab型はタブについての情報を含んでいます。これはタブの中のコンテンツについての情報へのアクセスを提供します。例えば、コンテンツはどれくらいの大きさか、どのような特別な状態もしくは制限が有効になっているか、など。

+ +

Type

+ +

この型の値はオブジェクトです。以下のプロパティを含みます:

+ +
+
active
+
+

boolean. タブがウィンドウ内でアクティブかどうかを示します。タブのウィンドウがフォーカスされていない場合でも当てはまります。

+ +

アクティブなタブは通常一つ検出されます。しかしながら、Firefox for Android上では、拡張機能のポップアップが新しいタブの中で開かれます。このポップアップタブが検出されたとき、アクティブなタブはポップアップが開かれたタブに代えられます。

+
+
attention {{optional_inline}}
+
boolean. タブが注目を集めているかを示します。例えば、タブがモーダルダイアログを表示したとき、attentiontrueになります。
+
audible {{optional_inline}}
+
boolean. タブがミュートではないとき: タブが音を作り出すかどうかです。タブがミュートであるとき: タブがミュートでないなら、音を作り出せたかどうかです。
+
autoDiscardable {{optional_inline}}
+
boolean. Whether the tab can be discarded automatically by the browser when resources are low.
+
cookieStoreId {{optional_inline}}
+
string. タブのクッキーストア。If different tabs can have different cookie stores (for example, to support contextual identity), you can pass this as the storeId option into various methods of the {{WebExtAPIRef("cookies")}} API, to set and get cookies associated with this tab's cookie store. Only present if the extension has the "cookies" permission.
+
discarded {{optional_inline}}
+
boolean. タブが破棄されたか。 A discarded tab is one whose content has been unloaded from memory, but is still visible in the tab strip. Its content gets reloaded the next time it's activated.
+
favIconUrl {{optional_inline}}
+
string. タブのfaviconのURL。Only present if the extension has the "tabs" permission. It may also be an empty string if the tab is loading.
+
height {{optional_inline}}
+
integer. タブの高さのピクセル値。
+
hidden
+
boolean. タブが隠されている(非表示)かどうか。
+
highlighted
+
+

boolean. タブがハイライトされているかどうかどうか。 An active tab is always highlighted, but some browsers may allow additional tabs to be highlighted, for example by clicking them while holding Ctrl or ⌘ Command keys.

+ +

Firefox for Android doesn't support highlighting multiple tabs, and Firefox desktop requires the browser.tabs.multiselect preference.

+
+
id {{optional_inline}}
+
integer. タブのID。 タブのIDはブラウザセッショの中でユニークです。The tab ID may also be set to {{WebExtAPIRef('tabs.TAB_ID_NONE')}} for browser windows that don't host content tabs (for example, devtools windows).
+
incognito
+
boolean. タブがプライベートブラウジングウィンドウの中にあるかどうか。
+
index
+
integer. 0を底としたウィンドウの中のタブのインデックス。
+
isArticle
+
boolean. Trueならrendered in Reader Modeで閲覧可能、falseならそれ以外。
+
isInReaderMode
+
boolean. Trueならrendered in Reader Modeで閲覧中、falseならそれ以外。
+
lastAccessed
+
double. タブが最後にアクセスされた時刻(単位: milliseconds since the epoch)。
+
mutedInfo {{optional_inline}}
+
{{WebExtAPIRef('tabs.MutedInfo')}}. The current muted state for the tab and the reason for the last state change.
+
openerTabId {{optional_inline}}
+
integer. The ID of the tab that opened this tab, if any. This property is only present if the opener tab still exists.
+
pinned
+
boolean. タブがピン留めされているかどうか。
+
selected {{deprecated_inline}}
+
boolean. タブが選択されているかどうか。
+
sessionId {{optional_inline}}
+
string. The session ID used to uniquely identify a Tab obtained from the {{WebExtAPIRef('sessions')}} API.
+
status {{optional_inline}}
+
string. loadingcomplete のどちらか。
+
successorId {{optional_inline}}
+
integer タブの後継者のID。
+
title {{optional_inline}}
+
string. タブのタイトル。Only present if the extension has the "tabs" permission.
+
url {{optional_inline}}
+
string. タブが表示しているドキュメントのURL。Only present if the extension has the "tabs" permission.
+
width {{optional_inline}}
+
integer. タブの横幅のピクセル値。
+
windowId
+
integer. このタブのホストのウィンドウのID。
+
+
+

Note: In extension background scripts, the only properties that are available are tabId and windowId.

+
+
+
+ +

Browser compatibility

+ + + +

{{Compat("webextensions.api.tabs.Tab", 10)}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.tabs API. This documentation is derived from tabs.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/theme/index.html b/files/ja/mozilla/add-ons/webextensions/api/theme/index.html new file mode 100644 index 0000000000..a2b90cb140 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/theme/index.html @@ -0,0 +1,50 @@ +--- +title: theme +slug: Mozilla/Add-ons/WebExtensions/API/theme +tags: + - Extensions + - Themes + - WebExtensions + - add-on +translation_of: Mozilla/Add-ons/WebExtensions/API/theme +--- +
{{AddonSidebar}}
+ +

ブラウザー拡張機能がブラウザーのテーマを更新できるようにします。

+ +

この API を使用するには、拡張機能の manifest.json ファイルで "theme" パーミッション を要求しなければなりません。

+ +
+

注記: バックグランドファイルでテーマをセットアップする場合、'theme' パーミッションを宣言しなければなりません。さもなければ、manifest の theme 関数を使用できません。

+
+ +

+ +
+
{{WebExtAPIRef("theme.Theme")}}
+
テーマのコンテンツを表します。
+
+ +

関数

+ +
+
{{WebExtAPIRef("theme.getCurrent()")}}
+
現在のブラウザーテーマを取得します。
+
{{WebExtAPIRef("theme.update()")}}
+
ブラウザーのテーマを更新します。
+
{{WebExtAPIRef("theme.reset()")}}
+
{{WebExtAPIRef("theme.update()")}} の呼び出しで更新されたテーマをすべて削除します。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("theme.onUpdated")}}
+
ブラウザーテーマが変更された時に発火。
+
+ +

ブラウザーの実装状況

+ +

{{Compat("webextensions.api.theme")}}

+ +

{{WebExtExamples("h2")}}

diff --git a/files/ja/mozilla/add-ons/webextensions/api/topsites/index.html b/files/ja/mozilla/add-ons/webextensions/api/topsites/index.html new file mode 100644 index 0000000000..5ee5e4386f --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/topsites/index.html @@ -0,0 +1,79 @@ +--- +title: topSites +slug: Mozilla/Add-ons/WebExtensions/API/topSites +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - topSites +translation_of: Mozilla/Add-ons/WebExtensions/API/topSites +--- +
{{AddonSidebar}}
+ +

topSites API を使うと、ユーザーがよく訪れるページをを含む配列を取得できます。

+ +

ブラウザーはユーザーがこれらの場所に簡単に戻れるようにこれを維持します。Firefoxでは既定で「新しいタブ」ページには最もよく訪れるページのリストが提供されます。

+ +

topSites API を使うには "topSites" の API パーミッション必要です。

+ +

+ +
+
{{WebExtAPIRef("topSites.MostVisitedURL")}}
+
ウェブサイトのタイトルと URLを含むオブジェクト。
+
+ +

Methods

+ +
+
{{WebExtAPIRef("topSites.get()")}}
+
ブラウザーの「新しいタブ」ページに載っているすべてのサイトの配列を取得します。ここで返されるサイトの数はブラウザー固有であり、返されるサイトは、ブラウザー履歴に基づいてユーザー固有であることに注意してください。
+
+ +

ブラウザ実装状況

+ +

{{Compat("webextensions.api.topSites")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.topSites API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/types/index.html b/files/ja/mozilla/add-ons/webextensions/api/types/index.html new file mode 100644 index 0000000000..939451faf1 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/types/index.html @@ -0,0 +1,64 @@ +--- +title: types +slug: Mozilla/Add-ons/WebExtensions/API/types +tags: + - API + - Add-ons + - Extensions + - Reference + - Types + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/types +--- +
{{AddonSidebar}}
+ +

ブラウザー設定を表すのに使われる BrowserSetting 型を定義します。

+ +

+ +
+
{{WebExtAPIRef("types.BrowserSetting")}}
+
ブラウザー設定を表現します。
+
+ +

ブラウザー実装状況

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.types API.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/webnavigation/index.html b/files/ja/mozilla/add-ons/webextensions/api/webnavigation/index.html new file mode 100644 index 0000000000..4edae83299 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/webnavigation/index.html @@ -0,0 +1,143 @@ +--- +title: webNavigation +slug: Mozilla/Add-ons/WebExtensions/API/webNavigation +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - webNavigation +translation_of: Mozilla/Add-ons/WebExtensions/API/webNavigation +--- +
{{AddonSidebar}}
+ +

ナビゲーションのいろいろな段階でイベントリスナーを追加します。ナビゲーションにはある URL から他に移動するブラウザーフレームにより成り立っていて、それは(いつもではなく)通常はリンクのクリックやロケーションバーへの URL 入力といったユーザー操作の応答として発生します。

+ +

{{WebExtAPIRef("webRequest")}} API と比較して: ナビゲーションは通常、ブラウザーにウェブリクエストを発生させますが、webRequest API は HTTP 層からの低レベルな観点に関心を持っており、一方で webNavigation API はブラウザー UI 自身に対して、より関心を持っています。

+ +

それぞれのイベントはナビゲーションの特定のステージに対応しています。イベントシーケンスは次の通りです:

+ +

+ + + +

それぞれのナビゲーションは特定のブラウザーフレーム内の URL の遷移です。ブラウザーフレームはタブ ID とフレーム ID で識別されます。フレームはタブ内の再上位のブラウジングコンテキストである場合や、iframe として実装されたネストされたブラウジングコンテキストである場合があります。

+ +

それぞれのイベントの addListener() の呼び出しはオプションの filter パラメーターを受け入れます。filter は 1 つ以上の URL パターンを指定し、イベントはターゲット URL がパターンにマッチしたナビゲーションの時だけに発火します。

+ +

onCommitted イベントリスナーには 2 つの追加プロパティが渡されます: ナビゲーションの原因 (例えばユーザーがリンクをクリックしたり、ユーザーがブックマークを選んだり) を示す{{WebExtAPIRef("webNavigation.TransitionType","TransitionType")}} と、ナビゲーションの詳細情報を提供する{{WebExtAPIRef("webNavigation.TransitionQualifier","TransitionQualifier")}} です。

+ +

この API を使うには"webNavigation" パーミッションが必要です。

+ +

+ +
+
{{WebExtAPIRef("webNavigation.TransitionType")}}
+
ナビゲーションの原因: 例えば、ユーザーがリンクをクリックしたり、アドレスを入力したり、ブックマークをクリックしたりなど。
+
{{WebExtAPIRef("webNavigation.TransitionQualifier")}}
+
+
遷移の追加情報
+
+
+ +

関数

+ +
+
{{WebExtAPIRef("webNavigation.getFrame()")}}
+
特定フレームについての情報を取得します。フレームにはタブ内のトップレベルのフレームや、ネストされた iframe であり、タブ ID とフレーム ID でユニークに識別されます。
+
{{WebExtAPIRef("webNavigation.getAllFrames()")}}
+
+

タブ ID を指定すると、そのタブに含まれているすべてのフレームの情報を取得します。

+
+
+ +

イベント

+ +
+
{{WebExtAPIRef("webNavigation.onBeforeNavigate")}}
+
+

ブラウザーがナビゲーションイベントを開始する直前に発火します。

+
+
{{WebExtAPIRef("webNavigation.onCommitted")}}
+
ナビゲーションがコミットされたときに発火します。少なくともサーバーから新しい document がいくらか取得されてブラウザーが新document に切り替えると決決めたとき。
+
{{WebExtAPIRef("webNavigation.onDOMContentLoaded")}}
+
ページ内で DOMContentLoaded イベントが発火したときに発火します。
+
{{WebExtAPIRef("webNavigation.onCompleted")}}
+
document と、それが参照するリソースが完全にロードされて初期化されたときに発火します。これは DOM load イベントと等価です。
+
{{WebExtAPIRef("webNavigation.onErrorOccurred")}}
+
エラーが起こってナビゲーションが停止したときに発火します。これはネットワークエラーが起きたときや、ユーザーがナビゲーションを停止したときのいずれかで起こりえます。
+
{{WebExtAPIRef("webNavigation.onCreatedNavigationTarget")}}
+
新しいウィンドウや、既存のウィンドウ内の新規タブが作成されてナビゲーションをホストするときに発火します: 例えば、ユーザーが新しいタブでリンクを開いた場合。
+
{{WebExtAPIRef("webNavigation.onReferenceFragmentUpdated")}}
+
ページの fragment identifier が変化したときに発火します。
+
{{WebExtAPIRef("webNavigation.onTabReplaced")}}
+
+

タブのコンテンツが別のタブ (通常は以前レンダリング済みのもの) に置き換えられるときに発火します。

+
+
{{WebExtAPIRef("webNavigation.onHistoryStateUpdated")}}
+
ページで history API を使ってブラウザーのロケーションバーの URL が更新されたときに発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.webNavigation")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.webNavigation API. This documentation is derived from web_navigation.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/webrequest/index.html b/files/ja/mozilla/add-ons/webextensions/api/webrequest/index.html new file mode 100644 index 0000000000..0495dcb7cf --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/webrequest/index.html @@ -0,0 +1,200 @@ +--- +title: webRequest +slug: Mozilla/Add-ons/WebExtensions/API/webRequest +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - webRequest +translation_of: Mozilla/Add-ons/WebExtensions/API/webRequest +--- +
{{AddonSidebar}}
+ +

websocket が ws:// and wss:// としてリクエストするものも含めた、HTTP リクエスト作成のいろいろなステージでイベントリスナーを追加します。イベントリスナーはリクエストの詳細情報を受け取ったり、リクエストを編集、修正したりします。

+ +

それぞれのイベントはリクエストの特定ステージで発火します。イベントの典型的なシーケンスは次のようなものです:

+ +

+ +

{{WebExtAPIRef("webRequest.onErrorOccurred", "onErrorOccurred")}} はリクエストの期間中のあらゆる時に発火します。また注意点としてイベントシーケンスがこれと違うこともあります: 例えば、Firefox では、HSTS 更新の時には、onBeforeRequest のすぐ後に onBeforeRedirect イベントが発火します。

+ +

onErrorOccurred を除くすべてのイベントは addListener() への次の 3 つの引数を取ります:

+ + + +

リスナー関数はリクエストの情報を含む details オブジェクトを渡されます。これにはリクエスト ID が入っていて、その ID でアドオンは単一のリクエストとイベントを関連付けられます。これはブラウザーセッションとアドオンのコンテキストごとにユニークです。リダイレクトと認証交換であっても、リクエストを通じて同じ値を保ちます。

+ +

あるホストに webRequest API を使うには、拡張機能は "webRequest" API パーミッション とそのホストの host パーミッション を持たねばなりません。「ブロッキング」機能を使うためには、拡張機能は "webRequestBlocking" API 権限も必要です。

+ +

ページに読み込まれるリソース (例えば画像、スクリプト、スタイルシート) を中断するには、拡張機能はそのメインページと同様にリソースの host パーミッションも持っている必要があります。例えば、"https://developer.mozilla.org" のページが "https://mdn.mozillademos.org" から画像を読み込む場合、画像のリクエストを中断するには拡張機能は両方の host パーミッションを持たねばなりません。

+ +

リクエストを修正する

+ +

いくつかのイベントでは、リクエストを修正できます。特に、次のことが可能:

+ + + +

これを行うには、イベント addListener()extraInfoSpec の引数に"blocking"の値のオプションを渡す必要があります。これによりリスナーが同期します。このリスナーでは {{WebExtAPIRef("webRequest.BlockingResponse", "BlockingResponse")}} オブジェクトを返すことができ、このオブジェクトは加えた修正を指し示します: 例えば、送信したい修正後のリクエストヘッダーなど。

+ +
+

Warning: Non-HTTP(S) protocols do not currently support "blocking" functionality, so modifying these requests is not available at this time. See {{bug(1475832)}} for more details.

+
+ +

セキュリティ情報へのアクセス

+ +

{{WebExtAPIRef("webRequest.onHeadersReceived", "onHeadersReceived")}} リスナー内では、{{WebExtAPIRef("webRequest.getSecurityInfo()", "getSecurityInfo()")}} を呼ぶことで TLS にアクセスできます。これを行うには、イベントの addListener()extraInfoSpec 引数に"blocking" を渡す必要もあります。

+ +

TLS ハンドシェイクについて詳しく読むことができますが、修正したり、ブラウザーのトラストな決定を上書きできません。

+ +

レスポンスを修正する

+ +

{{WebExtAPIRef("webRequest.filterResponseData")}} にリクエスト ID を渡すことで得られる {{WebExtAPIRef("webRequest.StreamFilter")}} を使うと、ブラウザーが受け取った HTTP リクエストのレスポンス本文を検査したり修正したりすることができます。

+ +

そのためには、"webRequestBlocking" パーミッションと "webRequest" API パーミッション 、さらに修正したい対象のリクエスト URL にあてはまる host permission 権限を得ている必要があります。

+ +

+ +
+
{{WebExtAPIRef("webRequest.BlockingResponse")}}
+
+

この型のオブジェクトは、イベントリスナーによって extraInfoSpec 引数にて"blocking" をセットして返されます。BlockingResponse プロパティに特定の値をセットすることで、リスナーはネットワークリクエストを変更できます。

+
+
{{WebExtAPIRef("webRequest.CertificateInfo")}}
+
単一の X.509 証明書を記述するオブジェクト。
+
{{WebExtAPIRef("webRequest.HttpHeaders")}}
+
HTTP ヘッダーの配列。それぞれのヘッダーは 2 つのプロパティを持つオブジェクトで表現されます: name と、valuebinaryValue のいずれか。
+
{{WebExtAPIRef("webRequest.RequestFilter")}}
+
webRequest イベントに適用するフィルターを記述するオブジェクト。
+
{{WebExtAPIRef("webRequest.ResourceType")}}
+
ウェブリクエスト内で取得されるリソースの特定の種類を表す。
+
{{WebExtAPIRef("webRequest.SecurityInfo")}}
+
特定のウェブリクエストのセキュリティプロパティを記述するオブジェクト。
+
{{WebExtAPIRef("webRequest.StreamFilter")}}
+
HTTP レスポンスの受信中に、それをモニターしたり修正したりするのに使うオブジェクト。
+
{{WebExtAPIRef("webRequest.UploadData")}}
+
URL リクエスト内でアップロードされるデータを含む。
+
+ +

プロパティ

+ +
+
{{WebExtAPIRef("webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES")}}
+
10分間に handlerBehaviorChanged() を最大限呼べる回数。
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("webRequest.handlerBehaviorChanged()")}}
+
このメソッドは、ページがブラウザーのインメモリーキャッシュ内にあるときに、イベントリスナーが確実に呼べるように使われます。
+
{{WebExtAPIRef("webRequest.filterResponseData()")}}
+
あるリクエストに対する {{WebExtAPIRef("webRequest.StreamFilter")}} オブジェクトを返します。
+
{{WebExtAPIRef("webRequest.getSecurityInfo()")}}
+
あるリクエストに対する TLS コネクションの詳細情報を返します。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("webRequest.onBeforeRequest")}}
+
リクエストがもうすぐなされて、ヘッダーは利用できないときに発火します。リクエストをキャンセルやリダイレクトしたい場合に、ここをリッスンします。
+
{{WebExtAPIRef("webRequest.onBeforeSendHeaders")}}
+
HTTP データを送信する前だが、HTTP ヘッダーが利用できるときに発火します。HTTP リクエストとヘッダーを修正したい場合に、ここををリッスンします。
+
{{WebExtAPIRef("webRequest.onSendHeaders")}}
+
ヘッダー送信の直前に発火します。あなたや他の人のアドオンが {{WebExtAPIRef("webRequest.onBeforeSendHeaders", "onBeforeSendHeaders")}} でヘッダーを修正した場合、ここでは修正後のバージョンが見えるでしょう。
+
{{WebExtAPIRef("webRequest.onHeadersReceived")}}
+
リクエストに関連する HTTP レスポンスヘッダーを受け取ったときに発火します。HTTP レスポンスヘッダーを修正するのにこのイベントを使用できます。
+
{{WebExtAPIRef("webRequest.onAuthRequired")}}
+
サーバーがクライアントに認証クレデンシャルを要求するときに発火します。このリスナーは何もしないか、リクエストをキャンセルするか、認証クレデンシャルを供給するかのいずれかです。
+
{{WebExtAPIRef("webRequest.onResponseStarted")}}
+
レスポンスボディの最初のバイトを受け取ったときに発火します。HTTP リクエストにとって、これはステータスラインとレスポンスヘッダーが利用可能ということになります。
+
{{WebExtAPIRef("webRequest.onBeforeRedirect")}}
+
サーバーが開始するリダイレクトが起きる直前に発火します。
+
{{WebExtAPIRef("webRequest.onCompleted")}}
+
リクエストが完了したときに発火します。
+
{{WebExtAPIRef("webRequest.onErrorOccurred")}}
+
エラーが起きたときに発火します。
+
+ +

ブラウザー実装状況

+ +

{{Compat("webextensions.api.webRequest")}}

+ +

Extra notes on Chrome incompatibilities.

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.webRequest API. This documentation is derived from web_request.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/windows/index.html b/files/ja/mozilla/add-ons/webextensions/api/windows/index.html new file mode 100644 index 0000000000..5b84904cdc --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/windows/index.html @@ -0,0 +1,117 @@ +--- +title: windows +slug: Mozilla/Add-ons/WebExtensions/API/windows +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - Windows +translation_of: Mozilla/Add-ons/WebExtensions/API/windows +--- +
{{AddonSidebar}}
+ +

ブラウザーウィンドウと相互作用します。この API を使って開いているウィンドウの情報を取得したり、ウィンドウを開き、修正し、閉じることができます。ウィンドウのオープン、クローズ、アクティベートのイベントをリッスンすることもできます。

+ +

+ +
+
{{WebExtAPIRef("windows.WindowType")}}
+
ブラウザーウィンドウの this の型。
+
{{WebExtAPIRef("windows.WindowState")}}
+
ブラウザーウィンドウの状態。
+
{{WebExtAPIRef("windows.Window")}}
+
ブラウザーウィンドウについての情報を含む。
+
{{WebExtAPIRef("windows.CreateType")}}
+
作成するブラウザーウィンドウの型を指定する。
+
+ +

定数

+ +
+
{{WebExtAPIRef("windows.WINDOW_ID_NONE")}}
+
ブラウザーウィンドウがないことを表す windowId の値。
+
{{WebExtAPIRef("windows.WINDOW_ID_CURRENT")}}
+
現在のウィンドウを表す windowId の値。
+
+ +

メソッド

+ +
+
{{WebExtAPIRef("windows.get()")}}
+
与えられた ID のウィンドウの詳細を取得します。
+
{{WebExtAPIRef("windows.getCurrent()")}}
+
現在のウィンドウを取得します。
+
{{WebExtAPIRef("windows.getLastFocused()")}}
+
最も最近フォーカスされたウィンドウを取得します — 典型的には「最上位」のウィンドウです。
+
{{WebExtAPIRef("windows.getAll()")}}
+
すべてのウィンドウを取得します。
+
{{WebExtAPIRef("windows.create()")}}
+
+

新しいウィンドウを作成します。

+
+
{{WebExtAPIRef("windows.update()")}}
+
ウィンドウのプロパティを更新します。これを使ってウィンドウの移動、リサイズ、フォーカス(外し)などを行います。
+
{{WebExtAPIRef("windows.remove()")}}
+
ウィンドウと、そのタブのすべてを閉じます。
+
+ +

イベント

+ +
+
{{WebExtAPIRef("windows.onCreated")}}
+
ウィンドウが作成された時に発火します。
+
{{WebExtAPIRef("windows.onRemoved")}}
+
ウィンドウが閉じられた時に発火します。
+
{{WebExtAPIRef("windows.onFocusChanged")}}
+
現在フォーカスされているウィンドウが変わった時に発火します。
+
+ +

ブラウザー実装状況

+ + + +

{{Compat("webextensions.api.windows")}}

+ +

{{WebExtExamples("h2")}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.windows API. This documentation is derived from windows.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/windows/windowstate/index.html b/files/ja/mozilla/add-ons/webextensions/api/windows/windowstate/index.html new file mode 100644 index 0000000000..a60ce41391 --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/windows/windowstate/index.html @@ -0,0 +1,73 @@ +--- +title: windows.WindowState +slug: Mozilla/Add-ons/WebExtensions/API/windows/WindowState +translation_of: Mozilla/Add-ons/WebExtensions/API/windows/WindowState +--- +
{{AddonSidebar()}}
+ +

ブラウザウィンドウの状態。

+ +

+ +

値の方はstringsです。可能な値は以下:

+ +
+
"normal"
+
ウィンドウはデフォルトかユーザ指定のサイズ。
+
"minimized"
+
ウィンドウはアイコンとしてタスクバーの中に表示(最小化)。
+
"maximized"
+
ウィンドウはシステムエリアやOSによる予約なしに画面を満たしている(最大化)。
+
"fullscreen"
+
ウィンドウはフルスクリーンアプリケーションとして稼働しているか、タブの内容がFullscreen APIを利用している(全画面)。
+
"docked"
+
A docked window occupies a fixed position relative to other windows owned by the same application.
+
+ +

macOS compatibility: Beginning in macOS 10.10, the default maximizing behavior for windows changed to run applications as full screen applications instead of "zoomed" windows. fullscreen refers to both the browser running as a full screen application and when content in a tab uses the Fullscreen API.

+ +

Browser compatibility

+ + + +

{{Compat("webextensions.api.windows.WindowState")}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.windows API. This documentation is derived from windows.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + diff --git a/files/ja/mozilla/add-ons/webextensions/api/windows/windowtype/index.html b/files/ja/mozilla/add-ons/webextensions/api/windows/windowtype/index.html new file mode 100644 index 0000000000..eca8a0916a --- /dev/null +++ b/files/ja/mozilla/add-ons/webextensions/api/windows/windowtype/index.html @@ -0,0 +1,65 @@ +--- +title: windows.WindowType +slug: Mozilla/Add-ons/WebExtensions/API/windows/WindowType +translation_of: Mozilla/Add-ons/WebExtensions/API/windows/WindowType +--- +
{{AddonSidebar()}}
+ +

これはブラウザウィンドウの種類です。

+ +

+ +

値の型はstringsです。可能な値は以下:

+ + + +

ブラウザ互換性

+ + + +

{{Compat("webextensions.api.windows.WindowType")}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.windows API. This documentation is derived from windows.json in the Chromium code.

+ +

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

+
+ + -- cgit v1.2.3-54-g00ecf