recursal/MDN huggingface dataset:
pageAction.onClicked
====================

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

右クリックのアクションを定義するには、`contextMenus` (en-US) API を"page\_action" context type (en-US)とともに使ってください。

書式
--


```js
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`

ページアクションがクリックされたタブの`tabs.Tab`オブジェクト。


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

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

例
-

ユーザがページアクションをクリックしたとき、それを隠し、アクティブタブを"http://chilloutandwatchsomecatgifs.com/"に誘導します:


```js
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 () {});
```

### Example extensions

* apply-css
* chill-out

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

`BrowserSetting` (en-US) オブジェクトを使用すると「新規タブ」ページ、つまりユーザーが新しい空のタブを開いたときのページを表す URL を取得することができます。

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

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

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

例
-

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


```js
browser.browserSettings.newTabPageOverride.get({}).then((result) => {
  console.log(result.value);
});
```
Element.openOrClosedShadowRoot
==============================

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**メモ:** この API は WebExtensions でのみ使用できます。

`Element.openOrClosedShadowRoot` は読み取り専用プロパティで、この要素が保持しているシャドウルートを、 `mode` が `open` であるか `closed` であるかに関わらず表します。

`Element.attachShadow()` を使用すると、シャドウルートを既存の要素に追加することができます。

構文
--


```js
var shadowroot = element.openOrClosedShadowRoot;
```

### 値

`ShadowRoot` オブジェクトインスタンスで、 `mode` が `open` と `closed` のどちらに設定されていても取得できます。シャドウルートが存在しない場合は `null` です。
 （詳細は `Element.attachShadow()` を参照してください。）

仕様書
---

*このプロパティは仕様書にはありません。*

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

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

関連情報
----

* `Element.shadowRoot`
menus.onClicked
===============

メニューアイテムがクリックされたときに発火します。

他のブラウザとの互換性のために Firefox はこのイベントを名前空間`contextMenus`と`menu`を経由して利用可能にしています。

書式
--


```js
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`

`menus.OnClickData` (en-US). Information about the item clicked and the context where the click happened.


`tab`

`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.


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

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

例
-

この例はメニューアイテムのクリックをリッスンし、アイテムの ID とタブの ID をログします:


```js
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);
});
```

### Example extensions

* menu-accesskey-visible
* menu-demo
* menu-labelled-open
* menu-remove-element
* menu-search
* session-state

**メモ:** This API is based on Chromium's `chrome.contextMenus` API. This documentation is derived from `context_menus.json` in the Chromium code.
identity.getRedirectURL()
=========================

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

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

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

構文
--


```js
var redirectURL = browser.identity.getRedirectURL();
```

### 引数

なし

### 返り値

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

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

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

例
-

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


```js
var redirectURL = browser.identity.getRedirectURL();
```

### Example extensions

* google-userinfo

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

`local` ストレージ領域を指します。`local`ストレージ内のアイテムはその拡張機能がインストールされたマシン内で利用できます。

ブラウザーは拡張機能がローカルストレージエリアに保存できるデータ量を制限します。

* Chrome では、この API を使用して、"unlimitedStorage"パーミッションを許可しない場合は 5MB まで保存できます。
* Firefox ではバージョン 56 以降で"unlimitedStorage"パーミッションを利用できます。保存できるデータ量は現在では制限していませんが、将来的には制限するため、もし大きなデータ量を保存するのであれば"unlimitedStorage"パーミッションを今から使用するとよいでしょう。

拡張機能をアンインストールすると、関連するローカルストレージは削除されます。

また Firefox では、"about:config"で"keepUuidOnUninstall"と"keepStorageOnUninstall"の設定を`true`にすることで、アンインストール時にデータが削除されることを防ぐことができます。 この機能は拡張機能開発のテストのために提供されています。拡張機能自身ではこれらの設定を変更できません。

この API は `Window.localStorage`に似ていますが、拡張機能のコード内で`Window.localStorage`を使用することは推奨されません。これはユーザがプライバシーのために履歴とデータを削除するなど、Firefox は localStorage API を用いて拡張機能が保存したデータを削除することがあるためです。

関数
--

`local`オブジェクトは`storage.StorageArea` 型で定義された関数を実装しています。

`storage.StorageArea.get()`

ストレージ領域から 1 つ以上のアイテムを取得します。

`storage.StorageArea.getBytesInUse()`

1 つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。

`storage.StorageArea.set()`

1 つ以上のアイテムをストレージ領域に格納します。既にアイテムが存在していれば値は上書きされます。 値を格納したとき`storage.onChanged` (en-US)イベントが発火します。

`storage.StorageArea.remove()`

ストレージ領域内の 1 つ以上のアイテムを削除します。

`storage.StorageArea.clear()`

ストレージ領域内の全てのアイテムを削除します。

ブラウザ互換状況
--------

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

### Example extensions

* annotate-page
* 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 に従っています。
storage.StorageArea
===================

StorageArea はストレージ領域を表すオブジェクトです。

型
-

StorageArea はオブジェクト型です。

関数
--

`storage.StorageArea.get()`

ストレージ領域から 1 つ以上のアイテムを取得します。

`storage.StorageArea.getBytesInUse()`

ストレージ領域に格納されている 1 つ以上のアイテムで使用されているストレージサイズ(バイト単位)を取得します。

`storage.StorageArea.set()`

1 つ以上のアイテムをストレージ領域に保存します。既にアイテムが存在する場合は値が上書きされます。

`storage.StorageArea.remove()`

1 つ以上のアイテムをストレージ領域から削除します。

`storage.StorageArea.clear()`

全てのアイテムをストレージ領域から削除します。

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

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

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

`StorageChange` はストレージ領域の変更を表すオブジェクトです。

型
-

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

`oldValue`省略可

アイテムの変更前の値が存在すれば、この中に入ります。データ型は特定されておらず、何らかのデータ型が入ります。

`newValue`省略可

アイテムの変更後の値があれば、この中に入ります。データ型は特定されておらず、何らかのデータ型が入ります。

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

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

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

`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` オブジェクトは `storage.StorageArea` 型で定義された関数を実装しています。

`storage.StorageArea.get()`

ストレージ領域から 1 つ以上のアイテムを取得します。

`storage.StorageArea.getBytesInUse()`

1 つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。

`storage.StorageArea.set()`

1 つ以上のアイテムをストレージ領域に格納します。既にアイテムが存在していれば値は上書きされます。

`storage.StorageArea.remove()`

ストレージ領域内の 1 つ以上のアイテムを削除します。

`storage.StorageArea.clear()`

ストレージ領域内の全てのアイテムを削除します。

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

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

### Example extensions

* favourite-colour

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

1 つ以上のアイテムをストレージ領域から削除します。

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

構文
--


```js
let removingItem = browser.storage.<storageType>.remove(
  keys             // string, or array of strings
)
```


`<storageType>` は `storage.sync` または `storage.local` の書き込み可能なストレージタイプです。

### 引数

`keys`

削除したいアイテムのキー(文字列または文字列の配列)を指定します。

### 返り値

成功時は引数の無い `Promise` を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

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

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

例
-

1 つのアイテムを削除する例です。


```js
function onRemoved() {
  console.log("OK");
}

function onError(e) {
  console.log(e);
}

let removeKitten = browser.storage.remove("kitten");
removeKitten.then(onRemoved, onError);
```


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

1 つ以上のアイテムをストレージ領域に保存または上書きします。

この API を使用して保存や上書きをする場合、`storage.onChanged` (en-US) イベントが発火します。

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

構文
--


```js
let settingItem = browser.storage.<storageType>.set(
  keys             // オブジェクト
)
```


`<storageType>` は `storage.sync` または `storage.local` の書き込み可能なストレージタイプです。

### 引数

`keys`

保存したい 1 つ以上のキー/値ペアを持つオブジェクトを指定します。アイテムが既に存在する場合、値は上書きされます。

値は primitive 型 (整数型・ブール型・文字列) または`配列` を指定でできます。

通常は他の型 (`Function`, `Date`, `RegExp`, `Set`, `Map`, `ArrayBuffer` など)は格納できません。これらのサポートされていない型の中には空のオブジェクトとして復元されたり、 `set()` がエラーをスローする場合があります。この場合の挙動はブラウザに依存します。

### 返り値

成功時は引数の無い `Promise` を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

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

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

例
-


```js
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);
```


**メモ:** この API は Chromium の `chrome.storage` API に基づいています。また、このドキュメントは `storage.json` における Chromium のコードに基づいています。
StorageArea.getBytesInUse()
===========================

1 つ以上のストレージ領域内に格納されたアイテムが占めるストレージ空間をバイト単位で取得します。

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

構文
--


```js
var gettingSpace = browser.storage.<storageType>.getBytesInUse(
  keys                      // null, string, or array of strings
)
```


`<storageType>` は `storage.sync` または `storage.local` の書き込み可能なストレージタイプです。

### 引数

`keys`

ストレージ空間を取得したいアイテムのキー(文字列または文字列の配列)を指定します。 空の文字列か配列を渡すと 0 が返ります。 `null` を指定すると、ストレージ領域全体の使用中ストレージ空間を返します。

### 返り値

成功時は `keys` で指定されたオブジェクトが占めるストレージ空間を持つ整数 `bytesUsed` を引数に持つ `Promise` を返します。失敗した場合 Promise はエラーメッセージと共にリジェクトされます。

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

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

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

ストレージ領域から 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.

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

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

例
-

あらかじめストレージ領域に 2 つのアイテムを格納しておきます。


```js
// "kitten" と "monster" を格納
browser.storage.local.set({
  kitten: { name: "Mog", eats: "mice" },
  monster: { name: "Kraken", eats: "people" },
});
```


次に promise で使う成功時と失敗時のハンドラを定義しておきます。


```js
function onGot(item) {
  console.log(item);
}

function onError(error) {
  console.log(`Error: ${error}`);
}
```


`keys` を指定せずに呼び出すと全て取得します。


```js
let gettingItem = browser.storage.local.get();
gettingItem.then(onGot, onError);

// -> Object { kitten: Object, monster: Object }
```


空のキーを指定すると何も返しません。


```js
// 空の配列を指定すると何も返らない
let gettingItem = browser.storage.local.get([]);
gettingItem.then(onGot, onError);

// -> Object { }
```


オブジェクト名を指定すると、合致するものを返します。


```js
let gettingItem = browser.storage.local.get("kitten");
gettingItem.then(onGot, onError);

// -> Object { kitten: Object }
```


オブジェクト名の配列を指定すると合致するものを全て返します。


```js
let gettingItem = browser.storage.local.get([
  "kitten",
  "monster",
  "grapefruit",
]);
gettingItem.then(onGot, onError);

// -> Object { kitten: Object, monster: Object }
```


オブジェクト名をキー、デフォルト値を value に指定したオブジェクトを指定する場合


```js
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 }
```

### Chrome での例


```js
chrome.storage.local.get("kitten", function (items) {
  console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
});
```


Or with an arrow function


```js
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 に従っています。
StorageArea.clear()
===================

全てのアイテムをストレージ領域から削除します。

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

構文
--


```js
var clearing = browser.storage.<storageType>.clear()
```


`<storageType>` は `storage.sync` または `storage.local` の書き込み可能なストレージタイプです。

### 引数

なし

### 返り値

成功時は引数の無い `Promise` を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。

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

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

例
-


```js
function onCleared() {
  console.log("OK");
}

function onError(e) {
  console.log(e);
}

var clearStorage = browser.storage.local.clear();
clearStorage.then(onCleared, onError);
```


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

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

* HTTP もしくは HTTPS のプロトコルを使用した URL を指定した場合、対象のホスト名に対応する全ての cookie を含んだリクエストが送られます。
* `filename` と `saveAs` が指定されている場合、指定された`filename`が設定された[名前をつけて保存]のダイアログが開きます。

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

構文
--


```js
var downloading = browser.downloads.download(
  options, // object
);
```

### パラメータ

`options`

この`object`ではダウンロードしたいファイルやその他のダウンロードに関する設定を指定します。指定できるプロパティは以下です。

`body`省略可

リクエストの body を`string`で指定します。

`conflictAction`省略可

A string representing the action you want taken if there is a filename conflict, as defined in the `downloads.FilenameConflictAction` (en-US) type (defaults to "uniquify" when it is not specified).

`filename` 省略可

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`省略可

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`省略可

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`省略可

HTTP[S]を使用した URL を指定した際、HTTP メソッドを`string`で指定します。GET もしくは POST を設定できます。

`saveAs`省略可

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 `downloads.DownloadItem` (en-US)の id が格納された promise を受け取ります。対して、promise が reject された場合は、エラーメッセージを受け取ります。

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

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

例
-

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


```js
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);
```


**メモ:** この API は Chromium の `chrome.downloads` API を元にしています。
browsingData.removeCache()
==========================

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

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

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

構文
--


```js
var removing = browser.browsingData.removeCache(
  removalOptions, // RemovalOptions オブジェクト
);
```

### 引数

`removalOptions` 省略可

`browsingData.RemovalOptions` (en-US) オブジェクト このパラメータは無視されます。

### 返り値

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

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

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

例
-

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


```js
function onRemoved() {
  console.log("removed");
}

function onError(error) {
  console.error(error);
}

browser.browsingData.removeCache({}).then(onRemoved, onError);
```


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

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

型
-

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

* `"document_start"`: `loading` に対応します。DOM はまだ読み込み中の状態です。
* `"document_end"`: `interactive` に対応します。DOM の読み込みは終わりましたが、スクリプトや画像といったリソースはまだ読み込み中です。
* `"document_idle"`: `complete` に対応します。ドキュメントとその全てのリソースの読み込みが完了しました。

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

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

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 に従っています。
extensionTypes.ImageDetails
===========================

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

型
-

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

`format`省略可

`extensionTypes.ImageFormat` (en-US) 型。出力される画像のフォーマット。デフォルトは `"png"`。

`quality`省略可

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

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

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 に従っています。