recursal/MDN huggingface dataset:
ロケール固有のメッセージ参照
==============

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

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

messages.json example
---------------------

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


```json
{
  "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 には、次の文字が使用できます:

* A-Z
* a-z
* 0-9
* \_ (アンダースコア)
* @

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

### message

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

* *$placeholder\_name$* (大文字と小文字を区別) は、文字列に特定のプレースホルダー (例えば、上記の例の $URL$) を挿入します。
* `$1`, `$2`, `$3` 等は、`i18n.getMessage()` 呼び出し時に取得した値を文字列に直接挿入します。

他の注意すべき点:

* 文字列の前後に現れるいくつかのドル記号は、その個数から 1 を引いた数分のドル記号に置き換えられます。つまり、$$ は $ に、$$$ は $$ になります。
* ロケールファイルの読み込み時に、`/\$([a-z0-9_@]+)\$/i` と一致するトークンは、文字列の "置き換え" オブジェクトからの一致する値に置き換えられます。これらの置換は、メッセージ内の任意の `/\$\d/` トークンの処理よりも優先して行われます。
* ロケール文字列が使用される時に、`/\$\d+/` と一致するトークンは、`i18n.getMessage()` に渡される replacement に置き換えられます。
* `getMessage()` は、placeholder/substitution の呼び出しを 9 個までしか処理しません。
### description

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

### placeholders

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

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


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


#### プレースホルダー名

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

#### content

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

#### example

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

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

型
-

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

`id`

`string`。アイテムに固有の ID。

`url` 省略可

`string`。ページの URL。

`title` 省略可

`string`。ページのタイトル。

`lastVisitTime` 省略可

`number`。ページが最後に読み込まれた日付と時間で、epoch からのミリ秒で表現される。

`visitCount` 省略可

`number`。ユーザーがページを訪問した回数。

`typedCount` 省略可

`number`。ユーザーがアドレスをタイプしてページに移動したきた回数。

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

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

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

メッセージや接続要求の送信元に関する情報を持つオブジェクトです。このオブジェクトは、`runtime.onMessage()` リスナーに渡されます。

また、このオブジェクトは `runtime.Port` (en-US) のプロパティでもありますが、`runtime.onConnect()` (en-US) または `runtime.onConnectExternal()` (en-US) リスナーに渡された `Port` インスタンスにしか存在しません。

型
-

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

`tab`省略可

`tabs.Tab` 型。接続を開いた `tabs.Tab` です。このプロパティが存在するのは、タブ (コンテンツスクリプトを含む) から接続が開かれたときだけです。

`frameId`省略可

`integer` 型。接続を開いたフレームです。0 は最上位のフレームを、正の数値は子フレームを表します。このプロパティが存在するのは、`tab` が設定されるときだけです。

`id`省略可

`string` 型。メッセージが拡張機能から送信された場合は、その拡張機能の ID が設定されます。送信側の manifest.json で applications キーを使って明示的に ID が設定されている場合は、`id` にはその値が使われます。そうでない場合は、送信側の自動生成された ID が使われます。
 バージョン 54 より前の Firefox では、この値には拡張機能の内部 ID が使われることに注意してください (つまり、拡張機能の URL に含まれる UUID です)。


`url`省略可

`string` 型。メッセージを送信したスクリプトを持つページやフレームの URL です。
 送信側が拡張機能のページ (例えば、バックグラウンド ページ、オプションページ、 ブラウザーアクション や ページアクション のポップアップ) に含まれるスクリプトである場合、URL は `"moz-extension://<拡張機能の内部 ID>/path/to/page.html"` という形式が使われます。送信側がバックグラウンドスクリプトであって、バックグラウンド ページを使っていない場合、URL は `"moz-extension://<拡張機能の内部 ID>/_generated_background_page.html"` という形式が使われます。
 送信側がウェブページ内のスクリプト (ページに含まれる通常のスクリプトだけでなく、コンテンツスクリプトも含みます) である場合、`url` はそのウェブページの URL が使われます。スクリプトがフレーム内で動作している場合、`url` はそのフレームの URL です。


`tlsChannelId`省略可

`string` 型。接続を開いたページまたはフレームの TLS チャンネルの ID です。拡張機能によって要求され、可能である場合にのみ設定されます。

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

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

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

拡張機能が最初にインストールされた時や、新しいバージョンへ更新された時、ブラウザーが新しいバージョンへ更新された時に発火します。

`runtime.onInstalled` は `management.onInstalled` (en-US) と同じではありません。`runtime.onInstalled` イベントはあなたの拡張機能でのみ発火されます。`browser.management.onInstalled` イベントは、どの拡張機能でも発火されます。

構文
--


```js
browser.runtime.onInstalled.addListener(listener)
browser.runtime.onInstalled.removeListener(listener)
browser.runtime.onInstalled.hasListener(listener)
```


イベントには 3 つの関数があります:

`addListener(callback)`

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

`removeListener(listener)`

イベントリスナーを停止します。`listener` 引数は削除するリスナーです。

`hasListener(listener)`

`listener` がこのイベントに登録されているか確認します。登録されていば `true`、そうでない場合は `false` を返します。

addListener の構文
---------------

### 引数

`function`

イベントが起こったときに呼び出されるコールバック関数です。この関数には以下の引数が渡されます:

`details`

以下のプロパティを持つオブジェクトです:

`id` 省略可

`string` 型。更新されたモジュール共有中の拡張機能の ID です。`reason` の値が `shared_module_update` の時のみ設定されます。

`previousVersion` 省略可

`string` 型。更新前の拡張機能のバージョンです。`reason` の値が `update` の時のみ設定されます。

`reason`

`runtime.OnInstalledReason` (en-US) の値で、このイベントが発火した理由を表します。

`temporary`

`boolean` 型。拡張機能が一時的にインストールされた場合は True です。例えば、 Firefox で "about:debugging" ページ を使ったり、 web-ext run を使った場合です。それ以外の場合は False です。


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

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

例
-

拡張機能がインストールされた時に、理由をログ出力し、 https://example.com を開きます:


```js
function handleInstalled(details) {
  console.log(details.reason);
  browser.tabs.create({
    url: "https://example.com",
  });
}

browser.runtime.onInstalled.addListener(handleInstalled);
```

### Example extensions

* runtime-examples

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

この値は、コールバック関数のある非同期 API でエラーメッセージを伝える時に使われます。拡張機能のコールバックベースの API を使っている時に便利です。

プロミスベースの API を使っている時にはこのプロパティは必要ありません。代わりにプロミスへエラーハンドラーを渡してください。


```js
const gettingCookies = browser.cookies.getAll();
gettingCookies.then(onGot, onError);
```


`runtime.lastError` プロパティは、呼び出し元へ伝える必要のあるエラーを非同期関数が持っている時に設定されます。

`lastError` が設定されるかもしれない非同期関数を呼び出すなら、関数の結果を扱う時にエラーチェックが期待されます。 `lastError` が設定されてコールバック関数内でエラーチェックしなかった場合、エラーが発生します。

構文
--


```js
let myError = browser.runtime.lastError;  // null or Error object
```

### 値

エラーを表す `Error` オブジェクトです。 `message` プロパティは、人間が読めるエラーの説明の `string` です。`lastError` が無かったら、値は `null` になります。

例
-

Cookie を設定して、 Cookie の内容を出力するかエラーを伝えるコールバックを使う例です。


```js
function logCookie(c) {
  if (browser.runtime.lastError) {
    console.error(browser.runtime.lastError);
  } else {
    console.log(c);
  }
}

browser.cookies.set({ url: "https://developer.mozilla.org/" }, logCookie);
```


同じ処理内容ですが、 `setCookie()` の結果を扱うプロミスを使う例です。


```js
function logCookie(c) {
  console.log(c);
}

function logError(e) {
  console.error(e);
}

const setCookie = browser.cookies.set({
  url: "https://developer.mozilla.org/",
});

setCookie.then(logCookie, logError);
```


**メモ:** `runtime.lastError` は `extension.lastError` (en-US) のエイリアスです。 2 つはセットになっており、どちらかだけを確認すればよいです。

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

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

### Example extensions

* menu-demo

**メモ:** この API は Chromium の `chrome.runtime` API に基づいています。また、このドキュメントは `runtime.json` における Chromium から作成されています。
runtime.openOptionsPage()
=========================

拡張機能にオプションページが定義されている場合、このメソッドはそれを開きます。

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

構文
--


```js
var openingPage = browser.runtime.openOptionsPage();
```

### パラメータ

なし。

### 返り値

オプションページの作成が成功した時は、引数のない `Promise` で、操作が失敗した場合はエラーメッセージつきの rejected が返ります。

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

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

例
-

ユーザーがブラウザーアクションのアイコンをクリックした時にオプションページを返します:


```js
function onOpened() {
  console.log(`Options page opened`);
}

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

var opening = browser.runtime.openOptionsPage();
opening.then(onOpened, onError);
```

### Example extensions

* favourite-colour

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

**メモ:** この 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`

開発ツールテーマが変更された時に発火する

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

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

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

* devtools-panels

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

**メモ:** このページは 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()`

ターゲットウィンドウのドキュメントを再読み込みする

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

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

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

* devtools-panels

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

**メモ:** このページは 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`

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

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

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

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

devtools のこのインスタンスがアタッチされる `tab` の ID。番号で表されます。

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


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



```js
// background.js

function handleMessage(request, sender, sendResponse) {
  browser.tabs.executeScript(request.tabId, {
    code: request.script,
  });
}

browser.runtime.onMessage.addListener(handleMessage);
```

ブラウザの対応状況
---------

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

**メモ:** この API は Chromium の `chrome.devtools` API に基づいています。Microsoft Edge の互換性データは Microsoft Corporation によって提供され、Creative Commons Attribution 3.0 United States License に含まれています。
tabs.duplicate()
================

ID で指定されたタブを複製します。

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

構文
--


```js
var duplicating = browser.tabs.duplicate(
  tabId, // integer
);
```

### パラメータ

`tabId`

`integer`. 複製するタブの ID を指定します。

### 戻り値

A `Promise` that will be fulfilled with a `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.

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

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

例
-

１つ目のタブを複製し、新しく作られたタブの ID をログに残す例：


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

### Example extensions

* tabs-tabs-tabs

**メモ:** この 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 に従っています。
tabs.remove()
=============

１つ以上のタブを閉じます。

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

構文
--


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

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

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.log(`Error: ${error}`);
}

var removing = browser.tabs.remove(2);
removing.then(onRemoved, onError);
```


複数のタブを閉じる場合：


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

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

var removing = browser.tabs.remove([15, 14, 1]);
removing.then(onRemoved, onError);
```

### Example extensions

* contextual-identities
* tabs-tabs-tabs

**メモ:** この 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 に従っています。
tabs.MutedInfoReason
====================

タブがミュート・アンミュートになった理由を指定します。

型
-

値のタイプは文字列型です。可能な値:

"capture"

タブのキャプチャが開始され、ミュート状態に強いられました。

"extension"

拡張機能がミュート状態に設定しました。もしこれが理由なら、`tabs.mutedInfo`の`extensionId`が責任のある拡張機能の ID を含んでいます。

"user"

ユーザがミュート状態に設定しました。

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

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

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

新しいタブを作ります。

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

構文
--


```js
var creating = browser.tabs.create(
  createProperties, // object
);
```

### パラメータ

`createProperties`

新しいタブについてのプロパティを与える`オブジェクト`。これらのプロパティについて詳しくは`tabs.Tab`を参照してください。

`active`省略可

タブをアクティブにするかどうかを`真理値`で指定します。ウィンドウがフォーカスされているかには影響されません(`windows.update` (en-US)も参照)。デフォルト値は`true`.

`cookieStoreId` 省略可

`文字列` 。タブの cookie store ID が`cookieStoreId`のタブを作るときに使用します。このオプションは拡張機能が`"cookies"` permissionを持つときのみ使用できます。

`index`省略可

`整数値`。ウィンドウ中のタブの位置を指定します。数値はゼロからウィンドウ内のタブの数までです。

`openerTabId`省略可

`整数値`。開くタブの ID を指定します。指定した場合、開く側のタブは新しいタブと同じウィンドウにある必要があります。

`openInReaderMode`省略可

`真理値`。もし`true`であればリーダーモードで開かれます。 デフォルトは`false`。

`pinned`省略可

`真理値`。タブをピン留めするかを指定します。デフォルトは`false`。

`selected`省略可

`真理値`。ウィンドウ内で選択されるかどうかを指定します。デフォルトは`true`。

**警告:** このプロパティは非推奨です。Firefox ではサポートされません。代わりに`active`を使用してください。

`url`省略可

`文字列`。はじめに開く 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`省略可

`整数値`。新しくタブを作るウィンドウを指定します。デフォルトは現在開いているウィンドウ。


### 返り値

新しく作ったタブに関する`tabs.Tab`オブジェクトを引数に持つ`Promise`が返されます。URL が特権 URL であるなどして、タブが作られなかった場合は promise はエラーメッセージとともに reject されます。

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

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

例
-

"https://example.org" を新しいタブで開きます


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

### Example extensions

* commands
* contextual-identities
* find-across-tabs
* firefox-code-search
* open-my-page-button
* permissions
* store-collected-images
* tabs-tabs-tabs

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

指定ウィンドウの選択タブの表示領域の画像をエンコードしたデータ URI を作成します。このメソッドを使うには `<all_urls>` パーミッション が必要です (Chrome の場合、`activeTab` パーミッション があり、ユーザーが許可の操作を行えば、このメソッドを使うことができます)。

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

構文
--


```js
var capturing = browser.tabs.captureVisibleTab(
  windowId, // optional integer
  options, // optional extensionTypes.ImageDetails
);
```

### 引数

`windowId`省略可

`integer` 型。対象となるウィンドウ。デフォルトは現在のウィンドウ。

`options`省略可

`extensionTypes.ImageDetails` 型。

### 戻り値

`Promise` であり、キャプチャーされたタブの表示領域の画像をエンコードしたデータ URL で fulfilled 状態にされる。このデータ URL は、HTML イメージ要素の 'src' 属性に設定することで、画像を表示できる。もし何らかのエラーが発生した場合、Promise はエラーメッセージによって rejected 状態にされる。

使用例
---

現在のウィンドウの選択されたタブの画像を、デフォルト設定でキャプチャーする。


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

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

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

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

タブの ID を指定し、`tabs.Tab`オブジェクトとしてタブの詳細を取得します。

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

構文
--


```js
var getting = browser.tabs.get(
  tabId, // integer
);
```

### 引数

`tabId`

`integer`. 取得するタブの ID。

### 返値

A `Promise` that will be fulfilled with a `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.

例
-

タブがアクティブなとき、情報を取得します:


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

### Example extensions

* chill-out
ブラウザーの互換性
---------

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

**メモ:** This API is based on Chromium's `chrome.tabs` API. This documentation is derived from `tabs.json` in the Chromium code.
tabs.onCreated
==============

タブが生成されたときに発火します。

イベントが発火したとき、タブは URL を渡されていないかもしれないことに注意してください。特に、Firefox は新しいページを読み込み前に新しいタブを"about:blank"で開きます。URL がセットされたときを通知されるために`tabs.onUpdated` (en-US)イベントをリッスンすることができます。

書式
--


```js
browser.tabs.onCreated.addListener(callback);
browser.tabs.onCreated.removeListener(listener);
browser.tabs.onCreated.hasListener(listener);
```


イベントは３つの関数を持ちます:

`addListener(callback)`

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

`removeListener(listener)`

このイベントのリスニングを停止します。引数`listener`は削除するリスナーです。

`hasListener(listener)`

`listener`がこのイベントに登録されているかを調べます。リスニング中であれば`true`を返し、そうでなければ`false`を返します

addListener の書式
---------------

### パラメータ

`callback`

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

`tab`

`tabs.Tab`。生成されたタブの詳細です。


例
-

新しく作られたタブのログを生成します:


```js
function handleCreated(tab) {
  console.log(tab.id);
}

browser.tabs.onCreated.addListener(handleCreated);
```

### Example extensions

* session-state
* tabs-tabs-tabs
ブラウザーの互換性
---------

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

**メモ:** この API は Chromium の`chrome.tabs` API に基づいています。このドキュメンテーションは Chromium code の中の`tabs.json`からの派生です。Microsoft Edge の互換性データは Microsoft Corporation から提供されており、ここに the Creative Commons Attribution 3.0 United States License のもとで含まれています。