recursal/MDN huggingface dataset:
storage
=======

拡張機能にデータの保存、取得と、保存項目の変更をリッスンできるようにします。

ストレージのシステムは Web Storage API に基づいていますが、いくつか相違点があります。とりわけ、以下の違いがあります。

* 非同期です。
* 値は拡張機能のスコープで、特定ドメインのスコープではありません (つまりキー/値ペアーの同じ組み合わせが、すべてのバックグラウンドコンテキストとコンテンツスクリプトから利用できます)。
* 保存された値は JSON-ifiable な (JSON 化できる) 値で、単なる `String` ではありません。とりわけ、`Array` と `Object` も、コンテンツが JSON で表現できる時 (DOM ノードは入りません) を除いて不可です。値を保存する前に JSON `Strings` に変換する必要はなく、内部で JSON として表現されます、つまり JSON-ifiable である必要があります。
* 複数のキー/値ペアーが同じ API 呼び出しで設定、取得できます。

この API を利用するためには"storage" permission を manifest.json に含める必要があります。

各々の拡張機能は独自のストレージ領域を持っています。またそれらは異なる型のストレージに分割することができます。

`Window.localStorage`とこの API は似ていますが、拡張機能関連のデータを格納する際に拡張コード内で `Window.localStorage` を使わないことを推奨します。Firefox はプライバシー上の理由で、ブラウザー履歴やデータを消去などをする場合、localStorage API を利用して保存されたデータも消去します。しかし `storage.local` API を利用して保存されたデータはこれらの場合でも保持されます。

**メモ:** ストレージ領域内は暗号化されていないため、ユーザーの機密情報を保存すべきではありません。

型
-

`storage.StorageArea`

ストレージ領域を表すオブジェクト

`storage.StorageChange`

ストレージ領域の変更を表すオブジェクト

プロパティ
-----

`storage` は 3 つのプロパティを持ち、異なる型の利用可能なストレージ領域を表しています。

`storage.sync`

`sync` ストレージ領域を表します。`sync` ストレージ内のアイテムはブラウザーによって同期され、異なるデバイス間でも、ログインしているユーザーのブラウザーのすべてのインスタンスを跨いで利用できるようになります。

`storage.local`

`local` ストレージ領域を表します。`local` ストレージ内のアイテムは拡張機能がインストールされているマシン内のみで扱えます。

`storage.managed` (en-US)

`managed` ストレージ領域を表します。`managed` ストレージ内のアイテムはドメイン管理者によってセットされ、拡張機能は読取権限のみを持ちます。そのため、この名前空間を変更しようとするとエラーになります。

イベント
----

`storage.onChanged` (en-US)

ストレージ領域内のアイテムを 1 つ以上変更した場合に発火します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* annotate-page
* favourite-colour
* forget-it
* navigation-stats
* proxy-blocker
* quicknote
* stored-credentials

**メモ:** この API は Chromium の `chrome.storage` API に基づいています。また、このドキュメントは `storage.json` における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
pkcs11
======

`pkcs11` API は拡張機能にセキュリティモジュール PKCS #11 の列挙を可能とし、キーの元と証明書としてブラウザーからアクセスできるようにします。

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

Provisioning PKCS #11 modules
-----------------------------

There are two environmental prerequisites for using this API:

* one or more PKCS #11 modules must be installed on the user's computer
* for each installed PKCS #11 module, there must be a native manifest file that enables the browser to locate the module.

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.

関数
--

`pkcs11.getModuleSlots()` (en-US)

For each slot in a module, get its name and whether it contains a token.

`pkcs11.installModule()` (en-US)

Installs the named PKCS #11 module.

`pkcs11.isModuleInstalled()` (en-US)

Checks whether the named PKCS #11 module is installed.

`pkcs11.uninstallModule()` (en-US)

Uninstalls the named PKCS #11 module.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
identity
========

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

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

* Google
* GitHub

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

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

この API を利用するためには、"identity" API の権限が必要です。

セットアップ
------

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

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

リダイレクト URL は、アクセストークンまたは認証コードを拡張機能に配布するための `identity.launchWebAuthFlow()` (en-US) のエンドポイントを意味します。ブラウザーはレスポンスを読み込まずに、リダイレクト URL から結果を展開します。

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

`identity.getRedirectURL()` は、修正されたドメイン名とアドオンの ID に由来するサブドメインで URL を返します。OAuth サーバー（Google など）によっては、所有者が確認されたドメインしかリダイレクト URL として受け入れられない場合があります。ダミードメインは拡張機能開発者がコントロールすることができないため、既定では常に使用することができません。

しかし、ループバックアドレスはドメイン検証を必要としない受け入れ可能な代替手段です（RFC 8252, section 7.3 に基づいています）。Firefox 86 からは、`http://127.0.0.1/mozoauth2/[identity.getRedirectURL()]` が返す URL のサブドメイン] という形式のループバックアドレスをリダイレクト URL の値として許可しています。

**メモ:** Firefox 75 からは `identity.getRedirectURL()` が返すリダイレクト URL を使用する必要があります。それ以前のバージョンでは、任意のリダイレクト URL を指定することができました。

Firefox 86 以降は、記述されている特殊なループバックアドレスも使用することができます。

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

* 拡張機能を OAuth2 クライアントとして登録するとき
* `identity.launchWebAuthFlow()` の `url` 引数に URL パラメーターとして渡すとき
### 拡張機能を登録する

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

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

関数
--

`identity.getRedirectURL()`

リダイレクト URL を取得します。

`identity.launchWebAuthFlow()` (en-US)

ウェブ認証フローを開始します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* google-userinfo

**メモ:** この API は Chromium の `chrome.identity` API に基づいています。
privacy
=======

さまざまなプライバシー関連のブラウザー設定にアクセスや変更を行います。

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

プロパティ
-----

`privacy.network` (en-US)

ネットワーク関連のプライバシー設定にアクセス、編集します。

`privacy.services` (en-US)

ブラウザーやサードパーティのプライバシー設定にアクセス、編集します。

`privacy.websites` (en-US)

ウェブサイトのふるまいに関連したプライバシー設定にアクセス、編集します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**メモ:** This API is based on Chromium's `chrome.privacy` API.
windows
=======

ブラウザーウィンドウと相互作用します。この API を使って開いているウィンドウの情報を取得したり、ウィンドウを開き、修正し、閉じることができます。ウィンドウのオープン、クローズ、アクティベートのイベントをリッスンすることもできます。

型
-

`windows.WindowType`

ブラウザーウィンドウの this の型。

`windows.WindowState`

ブラウザーウィンドウの状態。

`windows.Window` (en-US)

ブラウザーウィンドウについての情報を含む。

`windows.CreateType` (en-US)

作成するブラウザーウィンドウの型を指定する。

定数
--

`windows.WINDOW_ID_NONE` (en-US)

ブラウザーウィンドウがないことを表す `windowId` の値。

`windows.WINDOW_ID_CURRENT` (en-US)

現在のウィンドウを表す `windowId` の値。

メソッド
----

`windows.get()` (en-US)

与えられた ID のウィンドウの詳細を取得します。

`windows.getCurrent()` (en-US)

現在のウィンドウを取得します。

`windows.getLastFocused()` (en-US)

最も最近フォーカスされたウィンドウを取得します — 典型的には「最上位」のウィンドウです。

`windows.getAll()` (en-US)

すべてのウィンドウを取得します。

`windows.create()` (en-US)

新しいウィンドウを作成します。

`windows.update()` (en-US)

ウィンドウのプロパティを更新します。これを使ってウィンドウの移動、リサイズ、フォーカス(外し)などを行います。

`windows.remove()` (en-US)

ウィンドウと、そのタブのすべてを閉じます。

イベント
----

`windows.onCreated` (en-US)

ウィンドウが作成された時に発火します。

`windows.onRemoved` (en-US)

ウィンドウが閉じられた時に発火します。

`windows.onFocusChanged` (en-US)

現在フォーカスされているウィンドウが変わった時に発火します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* annotate-page
* bookmark-it
* private-browsing-theme
* store-collected-images
* theme-integrated-sidebar
* window-manipulator

**メモ:** 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.
cookies
=======

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

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

型
-

`cookies.Cookie`

HTTP cookie の情報を表す。

`cookies.CookieStore` (en-US)

ブラウザーの cookie store を表す。

`cookies.OnChangedCause` (en-US)

cookie の変更理由を表す。

メソッド
----

`cookies.get()` (en-US)

1 つの cookie の情報を取得する。

`cookies.getAll()` (en-US)

与えられたフィルターにマッチするすべての cookies を取得する。

`cookies.set()` (en-US)

与えられた cookie データ を cookie に設定する; おなじ cookies が存在すれば上書きする。

`cookies.remove()` (en-US)

指定した名前の cookie を削除する。

`cookies.getAllCookieStores()` (en-US)

すべての cookie stores を一覧する。

イベントハンドラー
---------

`cookies.onChanged` (en-US)

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 の読み書き

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* cookie-bg-picker
* list-cookies

**メモ:** この API は Chromium の `chrome.cookies` API に基づいています。また、このドキュメントは `cookies.json` における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
browserSettings
===============

拡張機能にグローバルなブラウザー設定の変更を可能にします。この API の各プロパティは `BrowserSetting` (en-US) オブジェクトで、これはそれぞれの設定の変更能力を提供します。これはグローバルな設定のため、拡張機能で衝突が起きる可能性があります。衝突の処理方法の詳細は `BrowserSetting.set()` の文書を見てください。

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

プロパティ
-----

`browserSettings.allowPopupsForUserEvents` (en-US)

ユーザーのイベントに反応して、ウェブページで実行しているコードがポップアップを許可するかどうかを決める

`browserSettings.cacheEnabled` (en-US)

ブラウザーキャッシュの有効・無効を決める

`browserSettings.homepageOverride` (en-US)

ブラウザーのホームページの値を読む

`browserSettings.imageAnimationBehavior` (en-US)

ブラウザーが画像アニメーションをどう扱うのかを決める

`browserSettings.newTabPageOverride`

ブラウザーの新規タブページ値を読む

`browserSettings.webNotificationsDisabled` (en-US)

ウェブサイトが `Notification` Web API を使って通知を表示するのを妨げる

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
find
====

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

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

関数
--

`find.find()`

ウェブページのテキストを検索する

`find.highlightResults()` (en-US)

最後に検索にマッチした集合をハイライトする

`find.removeHighlighting()` (en-US)

あらゆるハイライトを削除する

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* find-across-tabs
extensionTypes
==============

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

型
-

`extensionTypes.ImageFormat` (en-US)

画像フォーマット

`extensionTypes.ImageDetails`

画像のフォーマットと画質の詳細

`extensionTypes.RunAt`

タブに JavaScript か CSS が挿入されてほんのすぐ

`extensionTypes.CSSOrigin`

`tabs.insertCSS` で挿入された CSS スタイルシートが "author" か "user" のスタイルシートのどちらであるかを示す

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**メモ:** この API は Chromium の `chrome.extensionTypes` API に基づいています。また、このドキュメントは `extension_types.json`における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
bookmarks
=========

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

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

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

関連する値の型
-------

`bookmarks.BookmarkTreeNode`

ブックマークツリー上のブックマークやフォルダーを表します。

`bookmarks.BookmarkTreeNodeType`

ツリー内のノードがブックマークかフォルダーかセパレーターかを表す `string` の列挙型です。

`bookmarks.BookmarkTreeNodeUnmodifiable`

ブックマークやフォルダーが変更不可である理由を表す `string` の列挙型です。

`bookmarks.CreateDetails`

新しいブックマークを作成する際、`bookmarks.create()` メソッドに渡す情報を含みます。

関数
--

`bookmarks.create()`

ブックマークやフォルダーを作成します。

`bookmarks.get()`

ブックマークの ID や ID の配列を指定し、1 つ以上の `BookmarkTreeNode(s)` を取得します。

`bookmarks.getChildren()`

指定した `BookmarkTreeNode` の子要素を取得します。

`bookmarks.getRecent()`

最近追加されたブックマークを取得します。

`bookmarks.getSubTree()`

指定したノードを起点とする、ブックマークツリーの部分木を取得します。

`bookmarks.getTree()`

ブックマークのツリー全体を `BookmarkTreeNode` オブジェクトの配列として取得します。

`bookmarks.move()`

指定した `BookmarkTreeNode` を所望の場所に移します。

`bookmarks.remove()`

ノードの ID を指定し、ブックマークや空のブックマークフォルダーを削除します。

`bookmarks.removeTree()`

ブックマークのフォルダーを再帰的に削除します。すなわち、フォルダーノードの ID を指定し、そのノードと子要素すべてを削除します。

`bookmarks.search()`

与えた条件に一致する `BookmarkTreeNodes` を検索します。

`bookmarks.update()`

ブックマークの ID を指定し、ブックマークの URL やタイトル、またはフォルダーの名前を更新します。

Events
------

`bookmarks.onCreated`

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

`bookmarks.onRemoved`

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

`bookmarks.onChanged`

ブックマークやフォルダーが変更された際に発火します。現在は `title` と url の変更に対してのみ発火します。

`bookmarks.onMoved`

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

`bookmarks.onChildrenReordered`

UI で表示されている順序に伴って子フォルダーの順序も変更された際に発火します。`move()` の実行後には発火しません。

`bookmarks.onImportBegan`

ブックマークのインポートが開始した際に発火します。パフォーマンスが重要である場合、イベントのオブザーバは `bookmarks.onImportEnded` が発火するまで `bookmarks.onCreated` を無視すべきでしょう。その場合であっても、オブザーバは他のイベントについては即座に処理すべきでしょう。

`bookmarks.onImportEnded`

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

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* bookmark-it

**メモ:** この API は Chromium の `chrome.bookmarks` API に基づいています。また、このドキュメントは `bookmarks.json` における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
events
======

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

型
-

`events.Rule` (en-US)

イベント処理用の宣言的ルールを記述します。

`events.Event` (en-US)

Chrome イベントにリスナーを追加、削除できるオブジェクト。

`events.UrlFilter` (en-US)

いろいろな条件で URL をフィルターする。所与の条件のいずれかがマッチした場合、フィルター全体がマッチする。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**メモ:** この API は Chromium の `chrome.events` API に基づいています。また、このドキュメントは `events.json` における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
sessions
========

セッション API を使ってブラウザーが動作している間に閉じたタブやウィンドウを一覧、復帰します。

`sessions.getRecentlyClosed()` (en-US) 関数は `tabs.Tab` 配列と`windows.Window` (en-US) オブジェクトを返し、これはブラウザーが動作している間に閉じられたタブやウィンドウを `sessions.MAX_SESSION_RESULTS` (en-US) で定義される上限まで表します。

ウィンドウやタブの復帰は `sessions.restore()` (en-US) 関数を使ってできます。復帰はタブを再オープンするだけではありません: タブの移動履歴を復帰して戻る/進むのボタンが動くようにもします。

この API は拡張機能にタブやウィンドウに関連する追加状態の保存させる関数グループも提供します。それで、タブやウィンドウが閉じられて順次復帰された場合、拡張機能は状態を取得できます。例えば、タブをグループ化する拡張機能は、これを使ってタブがどのグループにいるのかを記憶し、ユーザーがタブを復帰した時に正しいグループに復帰できるようになります。

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

型
-

`sessions.Filter` (en-US)

`sessions.getRecentlyClosed()` (en-US)の呼び出しで返される`Session` (en-US) オブジェクトの数を制限します。

`sessions.Session` (en-US)

現在のブラウジングセッションでユーザーが閉じたタブやウィンドウを表します。

プロパティ
-----

`sessions.MAX_SESSION_RESULTS` (en-US)

`sessions.getRecentlyClosed()` (en-US)の呼び出しで返される最大のセッション数。

関数
--

`sessions.forgetClosedTab()` (en-US)

ブラウザーの最近閉じたタブリストから閉じたタブを削除します。

`sessions.forgetClosedWindow()` (en-US)

ブラウザーの最近閉じたウィンドウリストから閉じたウィンドウを削除します。

`sessions.getRecentlyClosed()` (en-US)

`Session` (en-US) オブジェクトを返します、これは現在のブラウジングセッション(つまり: ブラウザーが起動した以降の)で閉じたウィンドウとタブを表しています。

`sessions.restore()` (en-US)

閉じたタブやウィンドウを復元します。

`sessions.setTabValue()` (en-US)

あるタブに関連するキー/バリューペアを保存します。

`sessions.getTabValue()` (en-US)

あるタブのキーに対応するバリューを取得します。

`sessions.removeTabValue()` (en-US)

あるタブに関連するキー/バリューペアを削除します。

`sessions.setWindowValue()` (en-US)

あるウィンドウに関連するキー/バリューペアを保存します。

`sessions.getWindowValue()` (en-US)

あるウィンドウに関連するキー/バリューペアを保存します。

`sessions.removeWindowValue()` (en-US)

あるウィンドウに関連するキー/バリューペアを削除します。

イベント
----

`sessions.onChanged` (en-US)

タブかウィンドウが閉じられたときに発火します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* session-state

**メモ:** 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.
browsingData
============

拡張機能がユーザーの閲覧中に蓄積したデータをクリアできるようにします。

`browsingData` API では、閲覧データは下記の型に分けられます。

* browser cache (ブラウザーキャッシュ)
* cookies
* downloads (ダウンロードデータ)
* history (履歴)
* local storage (ローカルストレージ)
* plugin data (プラグインのデータ)
* saved form data (保存したフォームデータ)
* saved passwords (保存したパスワード)

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

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

* データ削除を過去どれだけ遡れるのか
* 通常のウェブページか、ホストされたウェブアプリも含めてデータ削除するのかのいずれか。このオプションは Firefox ではまだサポートされていないことに注意してください。

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

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

型
-

`browsingData.DataTypeSet` (en-US)

削除データの型を指定するオブジェクト。例えば、history, downloads, passwords, など

`browsingData.RemovalOptions` (en-US)

データ削除するのにどれくらい以前に遡るのか、通常のウェブ閲覧/ホスト型アプリ/アドオンのどのデータを削除するのかを指定するオブジェクト。

メソッド
----

`browsingData.remove()` (en-US)

指定された型の閲覧データを削除する

`browsingData.removeCache()`

ブラウザーキャッシュを消去する

`browsingData.removeCookies()` (en-US)

cookies を削除する

`browsingData.removeDownloads()` (en-US)

ダウンロード済みのファイルを削除する

`browsingData.removeFormData()` (en-US)

保存されたフォームデータを消去する

`browsingData.removeHistory()` (en-US)

ブラウザー履歴を消去する

`browsingData.removeLocalStorage()` (en-US)

ウェブサイトが作成した local storage を消去する

`browsingData.removePasswords()` (en-US)

パスワードを消去する

`browsingData.removePluginData()` (en-US)

プラグインに関連するデータを消去する

`browsingData.settings()` (en-US)

ブラウザーの「履歴消去」機能の現在の設定値を得る

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* forget-it

**メモ:** この API は Chromium の `chrome.browsingData` API に基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
notifications
=============

OS の通知メカニズムを使って、ユーザーへの通知を表示します。この API は OS の通知メカニズムを使うため、OS とユーザー設定によって通知の現れ方やふるまいは変わってきます。

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

すべてのデスクトップ OS で通知は同じ見た目です。次のようなものです:

![](/ja/docs/Mozilla/Add-ons/WebExtensions/API/notifications/notification.png)

型
-

`notifications.NotificationOptions` (en-US)

通知の中身を定義します。

`notifications.TemplateType` (en-US)

通知の種類。例えば、通知に画像を含められるかなどを定義します。

関数
--

`notifications.clear()` (en-US)

ID に基づいた特定の通知をクリアします。

`notifications.create()` (en-US)

新規の通知を作成、表示します。

`notifications.getAll()` (en-US)

すべての通知を取得します。

`notifications.update()` (en-US)

通知を更新します。

イベント
----

`notifications.onButtonClicked` (en-US)

ユーザーが通知内のボタンをクリックしたときに発火します。

`notifications.onClicked` (en-US)

ユーザーが通知内のボタン以外をクリックしたときに発火します。

`notifications.onClosed` (en-US)

通知が閉じたとき、システムかユーザーいずれかがやめた場合にも、発火します。

`notifications.onShown` (en-US)

通知が表示されるとすぐに発火します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* export-helpers
* forget-it
* google-userinfo
* notify-link-clicks-i18n
* runtime-examples

**メモ:** This API is based on Chromium's `chrome.notifications` API.
commands
========

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

型
-

`commands.Command` (en-US)

コマンドを表す型。これは manifest.json の `commands` キーのコマンドで指定された情報が入っています。

関数
--

`commands.getAll` (en-US)

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

イベント
----

`commands.onCommand` (en-US)

関連付けされたキーボードショートカットを使ってコマンドが実行された時に発火します。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* commands

**メモ:** この API は Chromium の `chrome.commands` API に基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。
contentScripts
==============

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

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

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

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

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

Types
-----

`contentScripts.RegisteredContentScript` (en-US)

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

Functions
---------

`contentScripts.register()`

コンテントスクリプトを登録します。

ブラウザの互換性
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Example extensions
------------------

* content-script-register