recursal/MDN huggingface dataset:
contentScripts.register()
=========================

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

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

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

構文
--


```js
var registering = browser.contentScripts.register(
  contentScriptOptions, // object
);
```

### パラメーター

`contentScriptOptions`

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

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

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

`allFrames`省略可

`content_scripts` における `all_frames` と同様です。

`css`省略可

オブジェクトの配列。 それぞれのオブジェクトは `file` という名前の manifest.json からの相対パスで登録したい CSS ファイルを指定した URL の文字列を持つプロパティか、`code` という名前の登録したい CSS の文字列を持つプロパティを含みます。

`excludeGlobs`省略可

`content_scripts` における `exclude_globs` と同様です。

`excludeMatches`省略可

`content_scripts` における `exclude_matches` と同様です。

`includeGlobs`省略可

`content_scripts` における `include_globs` と同様です。

`js`省略可

オブジェクトの配列。各オブジェクトは `file` または `code` プロパティを含み、その要素は css プロパティと同様です。

`matchAboutBlank`省略可

`content_scripts` における `match_about_blank` と同様です。

`matches`

`content_scripts` における `matches` と同様です。

`runAt`省略可

`content_scripts` における `run_at` と同様です。


### 返り値

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

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

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

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

例
-

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


```js
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 ファイルを登録します。


```js
const scriptObj = await browser.contentScripts.register({
  js: [{ file: "/content\_scripts/example.js" }],
  matches: ["<all\_urls>"],
  allFrames: true,
  runAt: "document\_start",
});
```

### Example extensions

* content-script-register
browserAction.onClicked
=======================

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

右クリックを定義するには、`contextMenus` (en-US) API の"browser\_action" context type (en-US)を利用してください。

書式
--


```js
browser.browserAction.onClicked.addListener(listener);
browser.browserAction.onClicked.removeListener(listener);
browser.browserAction.onClicked.hasListener(listener);
```


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

`addListener(listener)`

このイベントのリスナーを追加します。

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

例
-

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


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

### Example extensions

* bookmark-it
* favourite-colour
* find-across-tabs
* forget-it
* google-userinfo
* native-messaging
* open-my-page-button
* permissions
* runtime-examples
* store-collected-images

**メモ:** この API は Chromium の`chrome.browserAction` API に基づいています。このドキュメントは Chromium コードの`browser_action.json`から派生したものです。Microsoft Edge の互換性データは Microsoft Corporation から提供されており、Creative Commons Attribution 3.0 United States License のもとにここに含まれています。
browserAction.disable()
=======================

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

書式
--


```js
browser.browserAction.disable(
  tabId, // optional integer
);
```

### パラメータ

`tabId`省略可

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

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

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

例
-

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


```js
browser.tabs.onCreated.addListener(() => {
  browser.browserAction.enable();
});

browser.browserAction.onClicked.addListener(() => {
  browser.browserAction.disable();
});
```


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


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


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

型
-

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

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

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

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

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

**メモ:** この API は Chromium の`chrome.browserAction` API に基づいています。このドキュメントは Chromium コードの `browser_action.json`から派生したものです。Microsoft Edge の互換性データは Microsoft Corporation から提供されており、Creative Commons Attribution 3.0 United States License のもとにここに含まれています。
clipboard.setImageData()
========================

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

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:

* The Chrome API is only for apps, not extensions.
* This API requires only the `"clipboardWrite"` permission, while the Chrome version also requires the `"clipboard"` permission.
* Chrome's API uses callbacks, and this API only supports promises.
* This API does not support the `additionalItems` parameter.

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

書式
--


```js
browser.clipboard.setImageData(imageData, imageType);
```

### パラメータ

`imageData`

An `ArrayBuffer` containing the encoded image data to copy to the clipboard.

`imageType`

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

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

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

例
-

Copy a remote image:


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


```js
// requires the API permission "clipboardWrite"

fetch(browser.runtime.getURL("image.png"))
  .then((response) => response.arrayBuffer())
  .then((buffer) => browser.clipboard.setImageData(buffer, "png"));
```


**メモ:** This API is based on Chromium's `chrome.clipboard` API.
cookies.Cookie
==============

`cookies` API の `Cookie` 型は HTTP cookie の情報を持ちます。

型
-

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

`domain`

cookie の所属するドメイン (例えば "www.google.com" や "example.com") を示す文字列を持つ `string` 型です。

`expirationDate`省略可

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` 型です。`cookies.getAllCookieStores()` (en-US)によって提供されます。

`value`

cookie の値を格納する `string` 型です。

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

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

例
-

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

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


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


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

これはブラウザウィンドウの種類です。

型
-

値の型は`strings`です。可能な値は以下:

* `"normal"`
* `"popup"`
* `"panel"`
* `"devtools"`
ブラウザーの互換性
---------

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

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

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

型
-

この値の型は `strings` です。可能な値は以下のとおりです。

`"normal"`

このウィンドウは既定のサイズまたはユーザー指定のサイズです。

`"minimized"`

このウィンドウはアイコンとしてタスクバーの中にだけ表示されています。

`"maximized"`

このウィンドウはオペレーティングシステムによって予約されている画面領域を除く画面全体を埋め尽くしています。

`"fullscreen"`

ウィンドウは全画面アプリケーションとして動作しているか、タブのコンテンツが全画面 APIを利用しています。。

`"docked"`

ドックされたウィンドウは、同じアプリケーションで所有されている他のウィンドウとの相対的な位置が固定されます。

macOS の互換性: macOS 10.10 から、ウィンドウの既定の最大化動作が変更され、アプリケーションを「ズーム」ウィンドウではなく全画面アプリケーションとして実行するようになりました。全画面 (`fullscreen`) は、全画面アプリケーションとして実行されているブラウザーと、全画面 API を使用しているタブ内のコンテンツの両方を指します。

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

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

**メモ:** この API は Chromium の `chrome.windows` API に基づいています。この記事は Chromium コードの `windows.json` から派生しています。
bookmarks.onRemoved
===================

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

構文
--


```js
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 を表す `string`


`removeInfo`

削除された要素の詳細を含んだ `object`


付随するオブジェクト
----------

### removeInfo

`parentId`

要素の親の ID を表す `string`

`index`

この要素が親からみて何番目にあるかを表す 0 以上の整数

`node`

削除された要素に関する詳細を含む `bookmarks.BookmarkTreeNode`

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

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

例
-


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

### Example extensions

* bookmark-it

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

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

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

構文
--


```js
browser.bookmarks.removeTree(
  id, // 文字列
  callback, // 関数（省略可）
);
```

### 引数

`id`

子要素とともに削除されるフォルダノードの ID を表す `string` です。

`callback`省略可

ノードが削除された際に実行される関数です。この関数に渡される引数はありません。

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

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

使用例
---

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


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


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

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

構文
--


```js
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 を表す `string` です。


`moveInfo`

移動に関する詳細を含んだ `object` です。


付随するオブジェクト
----------

### moveInfo

`parentId`

新しい親フォルダを表す `string`

`index`

この要素が親から見て何番目にあるかを表す整数

`oldParentId`

移動前の親フォルダを表す `string`

`oldIndex`

`移動前において、`この要素が親から見て何番目にあったかを表す整数

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

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

例
-


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


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

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

値の型
---

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

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

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

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

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

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

値の型
---

以下のプロパティを含む `object` です。

`parentId`省略可

新しいブックマーク / フォルダの親フォルダを指定する `string` です。デフォルト値はブラウザによって異なり、Chrome の場合は「その他のブックマーク」、Firefox の場合は「未分類のブックマーク」です。

`index`省略可

親要素の配下における、新しいブックマーク / フォルダの位置を指定する `number` です。値が 0 の場合、リストの先頭に置かれます。

`title`省略可

`作成する`ブックマークのタイトルやフォルダの名前を指定する `string` です。値を省略した場合、タイトルは `""` になります。

`url`省略可

ブックマークの URL を指定する `string` です。値を省略するか `null` を指定した場合、ブックマークではなくフォルダが作成されます。

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

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

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

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

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

構文
--


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

### 引数

`query`

実行するクエリを表す `string` または `object` です。

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

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

`query`省略可

1 つ以上の検索項を含んだ `string` を指定します。このフォーマットは `query` 引数における文字列のフォーマットと同じです。このプロパティ値が `string` でなかった場合、 例外が送出されます。

`url`省略可

ブックマークの URL と完全一致しなければならない `string` `を指定します。`マッチの際に大文字・小文字は区別されず、また末尾のスラッシュも無視されます。

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

`title`省略可

ブックマークのタイトルと完全一致しなければならない `string` `を指定します。`マッチの際には大文字・小文字が区別されます。


`callback`

クエリの結果が得られた場合に呼び出される関数を指定します。この関数には以下の引数が渡ります。

`results`

`bookmarks.BookmarkTreeNode` オブジェクトの配列であり、各要素はマッチしたブックマークをそれぞれ表しています。何も見つからなかった場合は空の配列となります。


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

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

使用例
---

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


```js
function onGot(bookmarkItems) {
  for (item of bookmarkItems) {
    console.log(item.id);
  }
}

chrome.bookmarks.search({}, onGot);
```


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


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

### Example extensions

* bookmark-it

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

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

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

構文
--


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

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

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

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

使用例
---


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


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

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

構文
--


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

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

`id`

`string`.


`bookmark`

`bookmarks.BookmarkTreeNode`.


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

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 に従います。
bookmarks.get()
===============

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

構文
--


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

### 引数

`idOrIdList`

取得したい `BookmarkTreeNode` オブジェクトの ID を指定した `string` または `string` の {[jsxref("array")}} です。

`callback`

ノードが取得された際に実行される `function` です。この関数には以下の引数が渡ります。

`results`

各要素が `bookmarks.BookmarkTreeNode` である、マッチしたノードの `array` です。セパレータは結果の戻り値に含まれません。ノードが見つからなかった場合の `results` は `undefined` となり、`runtime.lastError` がセットされます。


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

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

使用例
---

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


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


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