拡張機能はブラウザーの能力を拡張・修正するものです。Firefox の拡張機能は WebExtensions API を使ってビルドされ、この API は拡張機能をクロスブラウザーで開発するシステムです。このシステムの大半は Google Chrome と Opera と W3C Draft Community Group でサポートされている extension API と互換性があります。
これらのブラウザー用に書かれた拡張機能は大抵の場合、ほんの少し変更を加えるだけで Firefox や Microsoft Edge でも動かすことができます。この API は マルチプロセス Firefox にも完全互換です。
お持ちのアイデアや質問があったり、レガシーアドオンを WebExtensions API を使うように移行するのに助けが要る場合、dev-addons のメーリングリスト (英語) や Add-ons room (英語) や Matrix (英語) にてご連絡ください。
日本語情報としては Mozilla Japan コミュニティの Slack の #extdev チャンネルで情報交換が行われています。
始めましょう
概念
- コンテンツスクリプト
- マッチパターン
- ファイルの操作
- 多言語対応
- セキュリティのベストプラクティス
- Content Security Policy
- Native messaging
- devtools APIs を使用する
- ネイティブマニフェスト
- manifests ファイル
ユーザーインターフェイス
- 導入
- ブラウザーツールバーボタン
- ポップアップ付きブラウザーツールバーボタン
- アドレスバーボタン
- ポップアップ付きアドレスバーボタン
- コンテキストメニューの項目
- サイドバー
- オプションページ
- Extension pages
- 通知
- アドレスバーの入力候補
- 開発ツールパネル
- ブラウザースタイル
逆引きリファレンス
- HTTP リクエストへの介入
- web ページの変更
- ツールバーボタンの追加
- 設定画面の実装
- クリップボードとのやりとり
- Tabs API を使用する
- Bookmarks API を使用する
- Cookies API を使用する
- Contextual Identity を使用する
- userScripts を使用する
- 外部コンテンツの挿入
移行
- Google Chrome extension からの移行
- 古い Firefox アドオンの移行
- Android 向け Firefox 拡張機能の開発
- Thunderbird における WebExtensions によるアドイン開発
- Add-on SDK との比較
- XUL/XPCOM 拡張との比較
- Chrome との非互換性
- デスクトップ版と Android 版の拡張機能の違い
Firefox でのワークフロー
リファレンス
JavaScript API 群
- alarms
- bookmarks
- browserAction
- browserSettings
- browsingData
- clipboard
- commands
- contentScripts
- contextualIdentities
- cookies
- devtools.inspectedWindow
- devtools.network
- devtools.panels
- downloads
- events
- extension
- extensionTypes
- find
- history
- i18n
- identity
- idle
- management
- menus
- notifications
- omnibox
- pageAction
- permissions
- pkcs11
- privacy
- proxy
- runtime
- sessions
- sidebarAction
- storage
- tabs
- theme
- topSites
- types
- webNavigation
- webRequest
- windows
Manifest keys
- 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
- icons
- incognito
- manifest_version
- name
- omnibox
- optional_permissions
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- theme
- version
- version_name
- web_accessible_resources