recursal/MDN huggingface dataset:
manifest.json
=============

manifest.json ファイルは、WebExtension API を使う拡張機能に必ず含めなければならない唯一のファイルです。

manifest.json を使うことで、拡張機能の名前やバージョンといった基本的なメタデータを指定したり、拡張機能の機能的な側面として、例えばバックグラウンドスクリプトやコンテンツスクリプト、ブラウザーアクションを指定することもできます。

これは JSON形式のファイルですが、１つ例外があります: "`//`"-形式のコメントが許可されています。

manifest.json のキー一覧は次の通り:

* author
* background
* browser\_action
* browser\_specific\_settings
* chrome\_settings\_overrides
* chrome\_url\_overrides
* commands
* content\_scripts
* content\_security\_policy
* default\_locale
* description
* developer
* devtools\_page
* homepage\_url
* incognito
* manifest\_version
* name
* omnibox
* optional\_permissions
* options\_ui
* page\_action
* permissions
* protocol\_handlers
* short\_name
* sidebar\_action
* version
* version\_name
* web\_accessible\_resources
### manifest.json のキーの注意点

* 必須のキーは、`"manifest_version"`, `"version"`, `"name"` だけです。
* `"default_locale"` は `"_locales"` ディレクトリーが存在する場合は必要ですが、そうでない場合は不要です。
* `"applications"` は Google Chrome でサポートされていません。
### manifest.json の情報を実行時に参照する

拡張機能の manifest には、拡張機能の JavaScript から `runtime.getManifest()` (en-US) 関数を使ってアクセスできます:


```js
browser.runtime.getManifest().version;
```

例
-

下記のブロックには一般的な manifest keys の基本文法を示します。

**メモ:** これはコピー・ペーストできるような使われ方のつもりではないのに注意してください: どのキーが必要かは開発している拡張機能に依存します。

完全な例は Example extensions を見てください。


```json
{
  "applications": {
    "gecko": {
      "id": "addon@example.com",
      "strict\_min\_version": "42.0"
    }
  },

  "background": {
    "scripts": ["jquery.js", "my-background.js"],
    "page": "my-background.html"
  },

  "browser\_action": {
    "default\_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default\_title": "Whereami?",
    "default\_popup": "popup/geo.html"
  },

  "commands": {
    "toggle-feature": {
      "suggested\_key": {
        "default": "Ctrl+Shift+Y",
        "linux": "Ctrl+Shift+U"
      },
      "description": "Send a 'toggle-feature' event"
    }
  },

  "content\_security\_policy": "script-src 'self' https://example.com; object-src 'self'",

  "content\_scripts": [
    {
      "exclude\_matches": ["\*://developer.mozilla.org/\*"],
      "matches": ["\*://\*.mozilla.org/\*"],
      "js": ["borderify.js"]
    }
  ],

  "default\_locale": "en",

  "description": "...",

  "icons": {
    "48": "icon.png",
    "96": "icon@2x.png"
  },

  "manifest\_version": 2,

  "name": "...",

  "page\_action": {
    "default\_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default\_title": "Whereami?",
    "default\_popup": "popup/geo.html"
  },

  "permissions": ["webNavigation"],

  "version": "0.1",

  "web\_accessible\_resources": ["images/my-image.png"]
}
```

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

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

マニフェストキーとサブキーのすべてを見るには、完全な manifest.json ブラウザー互換テーブルを見てください。
ユーザーインターフェイス
============

WebExtension API を使った機能拡張には、いくつかのユーザーインターフェイスオプションが提供されていて、ユーザーがこれによって機能を利用できます。この節では、下記にこのオプションの要約と、それぞれのユーザーインターフェイスオプションの詳細な導入とがあります。

**メモ:** 機能拡張でこれらの UI コンポーネントを使って優れた使い勝手を実現するためのアドバイスとして、ユーザーエクスペリエンスのベストプラクティス （英語）の記事を見てください。


| UI オプション | 説明 | 例 |
| --- | --- | --- |
| ブラウザーツールバーボタン
 (ブラウザーアクション)
  | ブラウザーツールバーのボタンで、クリック時に機能拡張にイベントを送ります。既定では全てのタブででこのボタンが表示されています。 | ツールバーボタン（ブラウザーアクション）を表示している例 |
| ポップアップ付きのツールバーボタン | ボタンがクリックされた時の、ブラウザーツールバーのボタン上のポップアップ。ポップアップは、ユーザー操作を扱う HTML 文書内で定義されます。 | ツールバーボタンのポップアップの例 |
| アドレスバーボタン
 (ページアクション)
  | ブラウザーアドレスバー上のボタンで、クリック時に機能拡張にイベントを送ります。既定では、全てのタブでこのボタンは非表示です。 | アドレスバーボタン（ページアクション）を表示している例 |
| ポップアップ付きのアドレスバーボタン | ブラウザーアドレスバーのボタン上のポップアップで、クリック時に開きます。ポップアップは、ユーザーインタラクションを扱う HTML 文書内で定義されます。 | アドレスバーボタン上のポップアップの例 |
| コンテキストメニュー項目 | ブラウザーのコンテキストメニュー上の、メニュー項目や、チェックボックスや、ラジオボタン。また、メニューはセパレーターを追加して構造化もできます。メニュー項目がクリックされたとき、機能拡張にイベントが送られます。 | Example of content menu items added by a WebExtension, from the context-menu-demo example |
| サイドバー | ウェブページの隣に表示される HTML 文書で、ページごとに独自のコンテンツを作成するオプションがあります。サイドバーは拡張機能がインストールされたときに開かれ、ユーザーのサイドバーの表示／非表示の選択に従います。サイドバー内のユーザー操作は、その HTML 文書が処理します。 | Example of a sidebar |
| オプションページ | ユーザーが変更できる拡張機能の環境設定を定義することができるページです。ユーザーは、ブラウザーのアドオンマネージャーからこのページにアクセスできます。 | Example showing the options page content added in the favorite colors example. |
| 拡張機能ページ | 拡張機能に含まれるウェブページを使用して、フォーム、ヘルプ、その他必要なコンテンツをウィンドウまたはタブ内で提供します。 | Example of a simple bundled page displayed as a detached panel. |
| 通知 | OS の通知の仕組みを通じてユーザーに表示される一時的な通知。ユーザーが通知をクリックした時や、(自動的に、あるいはユーザーが要求した場合の両方に)通知が閉じた時、機能拡張にイベントを送る。 | Example of an extension triggered system notification |
| アドレスバーのサジェスト (en-US) | ユーザーがキーワードを入力すると、アドレスバーにカスタム候補を提供します。 | Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions. |
| 開発ツールパネル | ブラウザーの開発者ツールに表示される、関連する HTML 文書を持つタブです。 | Example showing the result of the firefox_code_search WebExtension's customization of the address bar suggestions. |

下記の方法ガイドにはユーザーインターフェイスオプションを作成するためのステップバイステップのガイドがあります。

* アクセシビリティガイドライン（英語）
* ツールバーへボタンを追加する
* ブラウザースタイル (en-US)
* 開発者ツールの拡張
* 設定ページの実装
拡張機能とは何か？
=========

拡張機能はウェブブラウザーに機能を追加します。標準化されている web 技術（JavaScript / HTML / CSS）に専用の JavaScript API をいくつか加えて書かれます。とりわけ、拡張機能はブラウザーに新しい機能を追加したり、特定のウェブサイトが持つ見た目やコンテンツを変更したりできます。

**ウェブサイト全体の改良**: アドオンを使ってブラウザー内の機能やウェブサイトからの情報を届けます。ユーザーが訪れたページの詳細を集めるようにできて、サービスを向上させることができます。

![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/Amazon_add_on.png)

例: Amazon Assistant for Firefox, OneNote Web Clipper, Grammarly for Firefox

**ユーザーの個性を見せる**: ブラウザー機能拡張はユーザーによってブラウズされるページコンテンツを操作できます。例えば、ユーザーのお気に入りのロゴや写真を、訪れるすべてのページの背景として追加できます。拡張機能は Firefox UI の見た目を更新する力を与えることもできます (スタンドアローンの テーマアドオンを使っても同様に Firefox UI を更新できます)。

![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/MyWeb_New_Tab_add_on.png)

例: MyWeb New Tab, Tabliss, VivaldiFox

**ウェブページのコンテンツを追加/削除**: ウェブページで触れられた国や都市への旅行ガイドへのアクセスを提供してウェブページのしつこい広告をユーザーがブロックするのを補助したり、読む体験の一貫性を提供するためにページの再フォーマットをしたいかもしれません。ページの HTML と CSS にアクセスして更新する力を持って、拡張機能はユーザーが見たい方法でウェブを見るのを助けることができます。

![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/ublock_origin_add_on.png)

例: uBlock Origin, Reader, Toolbox for Google Play Store™

**ツールや新しいブラウズ機能を追加**: タスクボードに新しい機能を追加したり、URL やハイパーリンクやページのテキストから QR コード画像を生成したりします。WebExtensions APIs の柔軟な UI オプションや力を得て、ブラウザーに新機能を簡単に追加できます。そしてほぼあらゆるウェブサイトの機能を改良できて、それはあなたのウェブサイトだけとは限りません。

![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/QR_Code_Image_Generator_add_on.png)

例: Swimlanes for Trello and Tomato Clock

**ゲーム**: オフラインで遊べるような伝統的なコンピューターゲームや、新しいゲームの可能性を探検できます。例えば、日々のブラウジングにゲームを取り込むなど。

![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/Asteroids_in_Popup_add_on%20.png)

例: Asteroids in Popup, Solitaire Card Game New Tab, 2048 Prime.

**開発ツールを追加**: あなたのビジネスに沿った開発ツールを提供したり、共有しておきたい便利なテクニックやウェブ開発へのアプローチを提供できます。いずれの方法でも、開発者ツールバーに新規タブを追加することで、組み込みの Firefox 開発ツールを改良できます。
 ![](/ja/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions/aXe_Developer_Tools_add_on.png)

例: Web Developer, Web React Developer Tools, aXe Developer Tools

Firefox 用の拡張機能は WebExtensions APIs を使って作成され、この API はクロスブラウザーで動作可能な拡張機能を開発するための技術です。この API の大半は、Google Chrome や Opera でサポートされている extension API と互換性があります。これらのブラウザー向けに書かれた拡張機能のほとんどは、少し変更を加えるだけで Firefox や Microsoft Edge でも動かせるようになります。この API は完全にマルチプロセス Firefox にも対応しています。

何かアイデアがあったり、レガシーアドオンを WebExtensions API に移植する手助けが必要な場合、ご連絡は dev-addons メーリングリスト や Add-ons room や Matrix までお願いします。英語のサポートです。

次のステップ
------

* シンプルな拡張機能を一通り作成するには、初めての拡張機能を参照してください。
* 拡張機能の構成については 拡張機能の中身を参照してください。
* 拡張機能サンプルにある拡張機能のサンプルを動かしてみましょう。
web\_accessible\_resources
==========================

|  |  |
| --- | --- |
| 型 | `Array` |
| 必須 | いいえ |
| 例 | 
```json
"web\_accessible\_resources": [
  "images/my-image.png"
]
```
 |

説明
--

ときには、拡張機能に何らかのリソース - たとえば、画像や HTML、CSS、JavaScript - をパッケージして、ウェブページで使用できるようにしたい場合があります。

たとえば、2 つめの WebExtension で使われている "beastify" 例題エクステンションでは、`<img>` 要素の `src` 属性を設定することで、ウェブページの画像を動物に置き換えています。画像は拡張機能とともにパッケージ化されており、ウェブページがそれらをロードできるようにするには、ウェブアクセシブルにする必要があります。

`web_accessible_resources` キーは、この方法でウェブページで利用可能にしたいすべてのパッケージされたリソースをリストします。manifest.json ファイルを基準としたパスを指定します。

コンテンツスクリプトは、ウェブアクセシブルリソースとしてリストする必要がないことに注意してください。

しかし、拡張機能が `webRequest` API を使ってパブリックな (例 HTTPS) URL から拡張機能にパッケージされたページにリダイレクトする場合、拡張機能は`web_accessible_resources` キーにリストしておく必要があります。

### web\_accessible\_resources を使う

例えば、拡張機能に images/my-image.png にある画像ファイルを入れたい場合、このようにします:
```

my-extension-files/
    manifest.json
    my-background-script.js
    images/
        my-image.png
```


ウェブページに、この画像を指す `src` 属性のある `<img>` 要素を入れるには、 "web\_accessible\_resources" で次のように指定します:


```json
"web\_accessible\_resources": ["images/my-image.png"]
```


このファイルは次の URL で利用できます:


```url
moz-extension://<extension-UUID>/images/my-image.png
```


`<extension-UUID>` は拡張機能の ID \*\*ではありません。\*\*これは各ブラウザーインスタンス用にランダムに生成されます。これはウェブサイトがインストールしている拡張機能を調べることで指紋を取ることを防止します。

**メモ:** Chrome では、拡張機能の ID は固定です。リソースを `web_accessible_resouce` に指定すると、`chrome-extension://<your-extension-id>/<path/to/resouce>` でアクセス可能です。

この URL を取得する推奨される方法は、`browser.runtime.getURL` (en-US) API を使用して、 manifest.json の相対パスとして渡すことです:


```js
browser.runtime.getURL("images/my-image.png");
// something like:
// moz-extension://944cfddf-7a95-3c47-bd9a-663b3ce8d699/images/my-image.png
```


この方法は拡張機能が実行されているブラウザがなんであれ正しい URL を取得します。

### ワイルドカード

`web_accessible_resources`エントリーにはワイルドカードを含めることができます。たとえば下記のエントリーでも "images/my-image.png" のリソースを入れることができます:


```json
"web\_accessible\_resources": ["images/\*.png"]
```

### セキュリティ

ページを web-accessible にすると、あらゆるウェブサイトからそのページにリンクやリダイレクトができます。このページは、通常のウェブページと同様に、あらゆる入力 (例えば POST データ) を、信頼のないソースから取っときたかのように扱うべきです。

例
-


```json
"web\_accessible\_resources": ["images/my-image.png"]
```


"images/my-image.png" のファイルをウェブアクセス可能にしています。

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | いいえ |
| 例 | 
```json
"description": "Replaces pictures with pictures of cats."
```
 |

ブラウザーのユーザーインターフェースに表示するための、拡張機能の簡単な説明です。

これはローカライズ可能なプロパティです。

例
-


```json
"description": "Replaces pictures with pictures of cats."
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | いいえ |
| 例 | 
```json
"devtools\_page": "devtools/my-page.html"
```
 |

このキーを使って拡張機能にブラウザー組み込みの開発ツールを拡張することができます。

このキーは HTML ファイルの URL として定義されます。その HTML ファイルは拡張機能に同梱し、URL は拡張機能のルートからの相対パスである必要があります。

詳しくは 開発者ツールの拡張を見てください。

例
-


```json
"devtools\_page": "devtools/my-page.html"
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | はい |
| 例 | 
```json
"version": "0.1"
```
 |

ドットで区切られた数字と ASCII 文字でフォーマットされた拡張機能のバージョンです。バージョンのフォーマットの詳細は Version format ページを見てください。

Chrome の `version` 定義の構文は、Firefox のものよりも制限が厳しいことに注意してください。

* Chrome で有効な `version` の値は、常に Firefox でも有効です。
* Firefox で有効な `version` の値は Chrome でも有効とは限りません。

AMO キュー内でバージョンを "beta" にマークする特別ルールについては maintenance policy を見てください。

例
-


```json
"version": "0.1"
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | いいえ |
| 例 | 
```json
"version\_name": "0.1 beta"
```
 |

アップデート目的で使われる version 項目に加えて、version\_name はバージョン説明の文字列をセットできて、存在する場合は表示目的に使われます。

**version\_name** が存在しない場合、**version** 項目が同様な表示目的で使われます。

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

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

|  |  |
| --- | --- |
| 型 | `Array` |
| 必須 | いいえ |
| 例 | 
```json
"protocol\_handlers": [
  {
    "protocol": "ircs",
    "name": "IRC Mozilla Extension",
    "uriTemplate": "https://irccloud.mozilla.com/#!/%s"
  }
]
```
 |

このキーを使ってウェブベースのプロトコルハンドラーを登録します。

プロトコルハンドラーは特定の種類のリンクを扱う方法を知るアプリケーションです: 例えば、メールクライアントは "mailto:" リンクのプロトコルハンドラーです。ユーザーが "mailto:" リンクをクリックした時、ブラウザーは "mailto:" プロトコルのハンドラーが選んだアプリケーションを開きます (または設定によっては、ハンドラーの選択を与えます)。

このキーでは、特定プロトコルのハンドラーとしてウェブサイトを登録できます。このキーの文法と意味は `Navigator.registerProtocolHandler()` 関数によく似ていて、その違いは `registerProtocolHandler()` だけはウェブサイト自身をハンドラーに登録できることです。

プロトコルハンドラーは 3 つのプロパティを持ち、すべて必須です:

`protocol`

プロトコルを定義する文字列。次のいずれか:

* 次のどれか: "bitcoin", "dat", "dweb", "geo", "gopher", "im", "ipfs", "ipns", "irc", "ircs", "magnet", "mailto", "mms", "news", "nntp", "sip", "sms", "smsto", "ssb", "ssh", "tel", "urn", "webcal", "wtai", "xmpp".
* "web+" や "ext+"で始まるカスタム名からなる文字列。例えば: "web+foo" や "ext+foo"。カスタム名は小文字の ASCII 文字列でなければならない。拡張機能は "ext+" の形式を使うのが推奨です。

`name`

プロトコルハンドラーを表す文字列。これはユーザーがハンドラーにリンクを開くかどうか問い合わせた時に、ユーザーに表示されます。

`uriTemplate`

ハンドラーの URL を表す。この文字列はプレースホルダーとして "%s" を入れる必要があります: これは処理される文書の URL がエスケープされたもので置き換えられます。この URL は本当の URL や電話番号、電子メールアドレス、などです。これはローカライズ可能なプロパティです。

例
-


```json
"protocol\_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "https://example.com/#!/%s"
  }
]
```


ハンドラーは拡張機能ページのこともあります。


```json
"protocol\_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "/example.xhtml#!/%s"
  }
]
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | 
 条件次第: \_locales
 サブディレクトリがある場合は必要で、そうでない場合は不要。
  |
| 例 | 
```json
"default\_locale": "en"
```
 |

このキーは拡張機能が \_locales ディレクトリを含んでいる場合は必要で、そうでない場合は不要です。これは \_locales のサブディレクトリを識別し、このサブディレクトリは拡張機能の既定の文字列を探すために使用されます。

国際化を見てください。

例
-


```json
"default\_locale": "en"
```

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

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

|  |  |
| --- | --- |
| 型 | `Object` |
| 必須 | いいえ |
| 例 | 
```json
"omnibox": {
  "keyword": "mdn"
}
```
 |

`omnibox` を使って拡張機能のための omnibox キーワードを定義します。

ユーザーがブラウザーのアドレスバーにキーワードを入力する時、スペースに続いて、続きの文字が `omnibox` API を使って拡張機能に送られます。拡張機能は自身のサジェストを使ってアドレスバーのドロップダウンサジェストのリストを生成できます。

2 つ以上の拡張機能が同じキーワードを定義している場合、最後にインストールされた拡張機能がキーワードを管理します。以前にインストールされたあらゆる拡張機能はもう `omnibox` API を使えません。

例
-


```json
"omnibox": {
  "keyword": "mdn"
}
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | はい |
| 例 | 
```json
"name": "My Extension"
```
 |

拡張機能の名前です。これはブラウザーのユーザーインターフェースや addons.mozilla.org のようなサイトで拡張機能を識別するために使用されます。

名前が UI に表示されるよう長すぎないようにするのは良い習慣です。Google Chrome と Microsoft Edge は名前を 45 文字に制限しています。

これは国際化できるプロパティです。

例
-


```json
"name": "My Extension"
```

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
chrome\_url\_overrides
======================

|  |  |
| --- | --- |
| 型 | `Object` |
| 必須 | いいえ |
| 例 | 
```json
  "chrome\_url\_overrides" : {
    "newtab": "my-new-tab.html"
  }
```
 |

`chrome_url_overrides` キーを使って、通常はブラウザー自身が行っているいろいろなページへの文書の置き換えをカスタムすることができます。

構文
--

`chrome_url_overrides` キーは次のプロパティを持つオブジェクトです:

| 名前 | 型 | 説明 |
| --- | --- | --- |
| `bookmark` | `String` | ブックマークに出てくるページへの置き換えを提供します。 |
| `history` | `String` | 履歴に出てくるページへの置き換えを提供します。 |
| `newtab` | `String` | "新規タブ" ページに出てくる文書の置き換えを提供します。これはユーザーが新しいタブを開いてまだ文書を読み込んでない時のページです: 例えば、 `Ctrl`/`Command`+`T` のキーボードショートカットで。置き換えは HTML ファイルへの URL として与えられます。ファイルは拡張機能に同梱する必要があります: ここにはリモートの URL を指定できません。拡張機能のルートフォルダーから相対的に、次のように指定できます: "path/to/newtab.html".文書は通常のウェブページと同様に CSS と JavaScript をロードできます。 ページ内で実行する JavaScript はバックグラウンドスクリプトと同じように privileged "browser.\*" APIs のアクセスを得ます。ページに <title> を入れるのは良い習慣で、そうしないとタブのタイトルは "moz-extension://..." の URL になるでしょう。よくあるユースケースはユーザーに新しいタブページを定義できるようにすることです: これをするには、ユーザーが定義したページにナビゲートするカスタムの新規タブページを提供します。2 つ以上の拡張機能がいずれもカスタムの新規タブページを定義する場合、インストールや有効化された最後の分の値を使われます。ブラウザーのホームページを上書きするには、代わりに"chrome\_settings\_overrides" を使います。 |

すべてのプロパティはローカライズ可能です。

例
-


```json
"chrome\_url\_overrides" : {
  "newtab": "my-new-tab.html"
}
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | いいえ |
| 例 | 
```json
"homepage\_url": "https://example.org/my-addon"
```
 |

拡張機能のホームページの URL です。

developer キーが提供されていて、そこに "url" プロパティが含まれている場合、homepage\_url キーは上書きされます。

これは国際化できるプロパティです。

例
-


```json
"homepage\_url": "https://github.com/mdn/webextensions-examples/tree/master/beastify"
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | No |
| 例 | 
```json
"short\_name": "My Extension"
```
 |

拡張機能の短い名前。与えられた場合、これは name 項目が長過ぎるコンテキストで使われます。短い名前は 12 文字を超えないことが推奨されます。manifest.json に短い名前が入ってない場合、name が代わりに使われて切り捨てられることがあります。

これはローカライズ可能なプロパティです。

例
-


```json
"short\_name": "My Extension"
```

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

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

|  |  |
| --- | --- |
| 型 | `Number` |
| 必須 | はい |
| 例 | 
```json
"manifest\_version": 2
```
 |

このキーは、拡張機能で使用される manifest.json のバージョンを指定します。

現在、この値は常に 2 です。

例
-


```json
"manifest\_version": 2
```

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

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

|  |  |
| --- | --- |
| 型 | `String` |
| 必須 | いいえ |
| 例 | 
```json
"author": "Walt Whitman"
```
 |

拡張機能の作者で、ブラウザーの UI で表示されることを目的とするものです。developer キーが与えられてそこに "name" プロパティが含まれる場合、それは author キーを上書きします。複数の作者を指定する方法はありません。

これはローカライズ可能なプロパティです。

例
-


```json
"author": "Walt Whitman"
```

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

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

|  |  |
| --- | --- |
| 型 | `Object` |
| 必須 | いいえ |
| 例 | 
```json
"sidebar\_action": {
  "default\_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  },
  "default\_title": "My sidebar",
  "default\_panel": "sidebar/sidebar.html"
}
```
 |

サイドバー (en-US)はブラウザーウィンドウの左側の、ウェブページの横に表示されるペインです。ブラウザーはユーザーに現在利用できるサイドバーを表示して表示するサイドバーを選ぶ UI を提供します。

sidebar\_action キーによりサイドバーの既定のプロパティを定義できます。このプロパティは `sidebarAction` API.を使って変更できます。

構文
--

`sidebar_action` キーは下記に載っているプロパティを持つことのあるオブジェクトです。唯一の必須プロパティは `default_panel` です。

| 名前 | 型 | 説明 |
| --- | --- | --- |
| `browser_style` | `Boolean` | オプション、デフォルトでは `true`。

 Use this to include a stylesheet in your popup that will make it look
 consistent with the browser's UI and with other extensions that use
 the `browser_style` property.
  |
| `default_icon` | `Object` or `String` | これはサイドバーのアイコンを指定するのに使います。このアイコンはブラウザーのUI内でサイドバーを開いたり閉じたりするのに表示されます。
Icons are specified as URLs relative to the manifest.json file itself.
You can specify a single icon file by supplying a string here:

```json
"default\_icon": "path/to/geo.svg"
```

 To specify multiple icons in different sizes, specify an object here.
 The name of each property is the icon's height in pixels, and must be
 convertible to an integer. The value is the URL. For example:


```json
    "default\_icon": {
      "16": "path/to/geo-16.png",
      "32": "path/to/geo-32.png"
    }
```

 See
 Choosing icon sizes
 for more guidance on this.


 This property is optional: if it is omitted, the sidebar doesn't get
 an icon.
  |
| `default_panel` | `String` | サイドバーのコンテンツを指定する HTML ファイルのパス。

 HTML ファイルには、普通のウェブページと同様に CSS と JavaScript
 ファイルを
 `<link>`
 と
 `<script>`
 要素を使って入れることができます。


 普通のウェブページと異なり、パネル内で実行される JavaScript はすべての
 WebExtension APIs
 にアクセスできます(もちろん、拡張機能が持っている権限に従います)。

このプロパティは必須です。
これはローカライズ可能なプロパティです。 |
| `default_title` | `String` | サイドバーのタイトル。これはブラウザーのUIの中でサイドバーを一覧したり開くのに使われ、サイドバーが開いた時には上に表示されます。

 This property is optional: if it is omitted, the sidebar's title is
 the extension's
 `name`.


 This is a
 localizable property.
  |

例
-


```json
"sidebar\_action": {
  "default\_icon": "sidebar.svg",
  "default\_title": "My sidebar!",
  "default\_panel": "sidebar.html",
  "browser\_style": true
}
```


For a simple example of an extension that uses a sidebar, see annotate-page.

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

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

|  |  |
| --- | --- |
| 型 | `Object` |
| 必須 | いいえ |
| 例 | 
```json
"developer": {
  "name": "Walt Whitman",
  "url": "https://en.wikipedia.org/wiki/Walt\_Whitman"
}
```
 |

拡張機能の開発者の名前と、そのホームページ URL で、ブラウザーの UI に表示されるためのもの。

このオブジェクトと、そのプロパティの 2 つ共、オプションです。"name" と "url" プロパティは、存在する場合、author と homepage\_url キーをそれぞれ上書きします。このオブジェクトでは単独の開発者名と URL が指定できます。

これはローカライズ可能なプロパティです。

例
-


```json
"developer": {
  "name": "Walt Whitman",
  "url": "https://en.wikipedia.org/wiki/Walt\_Whitman"
}
```

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

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

|  |  |
| --- | --- |
| 型 | `Object` |
| 必須 | 通常は不要です (いつ Add-on ID が必要か？を参考に) 。Firefox 48 より前と Android版Firefox では必須です。 |
| 例 | 
```json
"browser\_specific\_settings": {
  "gecko": {
    "id": "addon@example.com",
    "strict\_min\_version": "42.0"
  }
}
```

 |

説明
--

`browser_specific_settings` キーは、特定のホストアプリケーションのキーを含みます。

### Firefox (Gecko) プロパティ

現在、4 つの文字列属性を含む `gecko` キーのみが存在します。

* `id` は 拡張機能 ID です。Firefox 48 からオプションですが、Firefox 48 より前では必須です。いつ特定の add-on ID が必要になるかについては、拡張機能と Add-on ID を見てください。
* `strict_min_version`: サポートする Gecko の最小バージョンです。"\*" を含むバージョンは、このフィールドでは無効です。既定は "42a1" です。
* `strict_max_version`: サポートする Gecko の最大バージョンです。拡張機能がこのバージョンを超えた Firefox のバージョンにインストールや実行された場合、拡張機能は無効または、インストールが許可されません。既定は "\*" で、最大バージョンのチェックは無効です。
* `update_url` は add-on update manifest へのリンクです。リンクは "https" で始まっている必要があることに注意してください。このキーは拡張機能が自分自身で更新を管理するためのものです(つまり AMO 以外で)。

有効な Gecko バージョンのリストを見てください。

### 拡張機能 ID フォーマット

拡張機能 ID は次のどれかでなければなりません:

* GUID
* メールアドレスのような文字列フォーマット: `extensionname@example.org`

後者のフォーマットは生成したり扱うのが簡単です。本当のメールアドレスをここで使うと SPAM を呼びかねないのに気を払ってください。

例えば：


```json
"id": "extensionname@example.org",

"id": "{daf44bf7-a45e-4450-979c-91cf07434c3d}"
```

例
-

使用可能なキーをすべて使用した例です。たいていの拡張機能では `strict_max_version` と `update_url` は省略するのに注意してください。


```json
"browser\_specific\_settings": {
  "gecko": {
    "id": "addon@example.com",
    "strict\_min\_version": "42.0",
    "strict\_max\_version": "50.\*",
    "update\_url": "https://example.com/updates.json"
  }
}
```

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

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