ほとんどの拡張機能は、動作するために 1 つ以上の Chrome 拡張機能 API へのアクセス権を必要とします。この API リファレンスでは、拡張機能で使用できる API について説明し、ユースケースの例を紹介します。
Common Extensions API の機能
Extensions API は、拡張機能の処理を行うメソッドとプロパティを含む名前空間と、通常は manifest.json ファイルのマニフェスト フィールドで構成されます。たとえば、chrome.action 名前空間には、マニフェストに "action" オブジェクトが必要です。多くの API では、マニフェストで権限も必要です。
特に明記されていない限り、拡張 API のメソッドは非同期です。非同期メソッドは、呼び出し元のオペレーションの終了を待たずにすぐに戻ります。プロミスを使用して、これらの非同期メソッドの結果を取得します。
Chrome 拡張機能 API
- accessibilityFeatures
- 
    
    chrome.accessibilityFeaturesAPI を使用すると、Chrome のユーザー補助機能を管理できます。この API は、個々のユーザー補助機能の取得と設定に ChromeSetting プロトタイプの型 API を使用します。機能の状態を取得するには、拡張機能がaccessibilityFeatures.read権限をリクエストする必要があります。拡張機能が機能の状態を変更するには、accessibilityFeatures.modify権限が必要です。accessibilityFeatures.modifyはaccessibilityFeatures.read権限を意味しないことに注意してください。
- 操作
- 
    Chrome 88 以降 MV3 以降chrome.actionAPI を使用して、Google Chrome ツールバーの拡張機能のアイコンを制御します。
- alarms
- 
    
    chrome.alarmsAPI を使用して、コードを定期的に実行するか、将来の指定した時間に実行するようにスケジュールします。
- audio
- 
    Chrome 59 以降 ChromeOS のみchrome.audioAPI は、システムに接続されたオーディオ デバイスに関する情報を取得し、制御できるようにするために提供されています。この API は現在、ChromeOS のキオスクモードでのみ利用できます。
- ブックマーク
- 
    
    chrome.bookmarksAPI を使用すると、ブックマークの作成、整理、その他の操作ができます。カスタムのブックマーク マネージャー ページを作成するために使用できるオーバーライド ページもご覧ください。
- browsingData
- 
    
    chrome.browsingDataAPI を使用して、ユーザーのローカル プロファイルから閲覧データを削除します。
- certificateProvider
- 
    Chrome 46 以降 ChromeOS のみこの API を使用して証明書をプラットフォームに公開すると、そのプラットフォームはこの証明書を TLS 認証に使用できます。 
- コマンド
- 
    
    Commands API を使用して、拡張機能でアクションをトリガーするキーボード ショートカットを追加します。たとえば、ブラウザ アクションを開くアクションや、拡張機能にコマンドを送信するアクションなどです。 
- contentSettings
- 
    
    chrome.contentSettingsAPI を使用して、ウェブサイトが Cookie、JavaScript、プラグインなどの機能を使用できるかどうかを制御する設定を変更します。一般的に、コンテンツの設定では、Chrome の動作をグローバルではなくサイトごとにカスタマイズできます。
- contextMenus
- 
    
    chrome.contextMenusAPI を使用して、Google Chrome のコンテキスト メニューに項目を追加します。コンテキスト メニューに追加するオブジェクトのタイプ(画像、ハイパーリンク、ページなど)を選択できます。
- Cookie
- 
    
    chrome.cookiesAPI を使用して、Cookie のクエリと変更を行い、Cookie が変更されたときに通知を受け取ります。
- デバッガ
- 
    
    chrome.debuggerAPI は、Chrome のリモート デバッグ プロトコルの代替トランスポートとして機能します。chrome.debuggerを使用して 1 つ以上のタブに接続し、ネットワーク インタラクションの計測、JavaScript のデバッグ、DOM と CSS の変更などを行います。DebuggeeプロパティtabIdを使用して、sendCommandでタブをターゲットにし、onEventコールバックからtabIdでイベントをルーティングします。
- declarativeContent
- 
    
    chrome.declarativeContentAPI を使用すると、ページのコンテンツの読み取り権限を必要とせず、ページのコンテンツに応じた操作ができます。
- declarativeNetRequest
- 
    Chrome 84 以降chrome.declarativeNetRequestAPI を使用してルールを宣言することで、ネットワーク リクエストをブロックまたは変更できます。これにより、拡張機能はネットワーク リクエストをインターセプトしてコンテンツを表示することなく変更できるため、プライバシーが強化されます。
- desktopCapture
- 
    
    Desktop Capture API は、画面、個々のウィンドウ、個々のタブのコンテンツをキャプチャします。 
- devtools.inspectedWindow
- 
    
    chrome.devtools.inspectedWindowAPI を使用して、検査対象のウィンドウを操作します。検査対象のページのタブ ID を取得したり、検査対象のウィンドウのコンテキストでコードを評価したり、ページを再読み込みしたり、ページ内のリソースのリストを取得したりできます。
- devtools.network
- 
    
    chrome.devtools.networkAPI を使用して、デベロッパー ツールの [ネットワーク] パネルに表示されるネットワーク リクエストに関する情報を取得します。
- devtools.panels
- 
    
    chrome.devtools.panelsAPI を使用して、拡張機能をデベロッパー ツールのウィンドウ UI に統合します。独自のパネルを作成したり、既存のパネルにアクセスしたり、サイドバーを追加したりできます。
- devtools.performance
- 
    Chrome 129 以降chrome.devtools.performanceAPI を使用して、DevTools の [パフォーマンス] パネルで録画ステータスの更新をリッスンします。
- devtools.recorder
- 
    Chrome 105 以降chrome.devtools.recorderAPI を使用して、DevTools のレコーダー パネルをカスタマイズします。
- dns
- 
    Dev チャンネルDNS 解決には chrome.dnsAPI を使用します。
- documentScan
- 
    Chrome 44 以降 ChromeOS のみchrome.documentScanAPI を使用すると、接続されたドキュメント スキャナから画像を検出、取得できます。
- dom
- 
    Chrome 88 以降chrome.domAPI を使用して拡張機能の特別な DOM API にアクセスする
- ダウンロード
- 
    
    chrome.downloadsAPI を使用すると、プログラムでダウンロードの開始、監視、操作、検索ができます。
- enterprise.deviceAttributes
- 
    chrome.enterprise.deviceAttributesAPI を使用すると、デバイスの属性を読み取ることができます。注: この API は、企業ポリシーによって自動インストールされた拡張機能からのみ利用できます。
- enterprise.hardwarePlatform
- 
    Chrome 71 以降 ポリシーが必要chrome.enterprise.hardwarePlatformAPI を使用すると、ブラウザが動作しているハードウェア プラットフォームのメーカーと機種を取得できます。注: この API は、企業ポリシーによってインストールされた拡張機能でのみ利用できます。
- enterprise.login
- 
    chrome.enterprise.loginAPI を使用して、管理対象ゲスト セッションを終了します。注: この API は、ChromeOS の管理対象ゲスト セッションでエンタープライズ ポリシーによってインストールされた拡張機能でのみ利用できます。
- enterprise.networkingAttributes
- 
    chrome.enterprise.networkingAttributesAPI を使用して、現在のネットワークに関する情報を読み取ります。注: この API は、企業ポリシーによって自動インストールされた拡張機能からのみ利用できます。
- enterprise.platformKeys
- 
    ChromeOS のみ ポリシーが必要chrome.enterprise.platformKeysAPI を使用して鍵を生成し、その鍵の証明書をインストールします。この証明書はプラットフォームで管理され、TLS 認証やネットワーク アクセスに、または chrome.platformKeys を介して他の拡張機能で使用できます。
- イベント
- 
    
    chrome.events名前空間には、イベントをディスパッチする API が使用する共通の型が含まれています。これは、興味深いことが発生したときに通知するために使用されます。
- extension
- 
    
    chrome.extensionAPI には、任意の拡張機能ページで使用できるユーティリティがあります。これには、メッセージ パッシングで詳しく説明されているように、拡張機能とそのコンテンツ スクリプト間、または拡張機能間のメッセージ交換のサポートが含まれます。
- extensionTypes
- 
    
    chrome.extensionTypesAPI には、Chrome 拡張機能の型宣言が含まれています。
- fileBrowserHandler
- 
    ChromeOS のみ フォアグラウンドのみchrome.fileBrowserHandlerAPI を使用すると、Chrome OS ファイル ブラウザを拡張できます。たとえば、ウェブサイトにユーザーがファイルをアップロードできるようにする場合にこの API を使用できます。
- fileSystemProvider
- 
    ChromeOS のみchrome.fileSystemProviderAPI を使用すると、ファイル システムを作成し、そのファイル システムに Chrome OS のファイル マネージャからアクセスできます。
- fontSettings
- 
    
    chrome.fontSettingsAPI を使用して、Chrome のフォント設定を管理します。
- gcm
- 
    
    chrome.gcmを使用すると、アプリや拡張機能が Firebase Cloud Messaging(FCM)を介してメッセージを送受信できるようになります。
- 履歴
- 
    
    chrome.historyAPI を使用して、ブラウザのアクセス済みページの記録を操作します。ブラウザの履歴で URL の追加、削除、クエリを行うことができます。履歴ページを独自のバージョンでオーバーライドするには、ページのオーバーライドをご覧ください。
- i18n
- 
    
    chrome.i18nインフラストラクチャを使用して、アプリまたは拡張機能全体で国際化を実装します。
- identity
- 
    
    chrome.identityAPI を使用して OAuth2 アクセス トークンを取得します。
- idle
- 
    
    chrome.idleAPI を使用して、マシンのアイドル状態が変化したタイミングを検出します。
- input.ime
- 
    ChromeOS のみchrome.input.imeAPI を使用して、Chrome OS 用のカスタム IME を実装します。これにより、拡張機能でキー操作の処理、構成の設定、候補ウィンドウの管理が可能になります。
- instanceID
- 
    Chrome 44 以降chrome.instanceIDを使用して Instance ID サービスにアクセスします。
- loginState
- 
    Chrome 78 以降 ChromeOS のみchrome.loginStateAPI を使用して、ログイン状態を読み取ってモニタリングします。
- 管理
- 
    
    chrome.managementAPI は、インストールされたアプリと拡張機能を管理する方法を提供します。
- 通知
- 
    
    chrome.notificationsAPI を使用して、テンプレートを使用してリッチ通知を作成し、システムトレイでユーザーに表示します。
- offscreen
- 
    Chrome 109 以降 MV3 以降offscreenAPI を使用して、オフスクリーン ドキュメントを作成、管理します。
- アドレスバー
- 
    
    アドレスバー API を使用すると、Google Chrome のアドレスバー(アドレスバー)にキーワードを登録できます。 
- pageCapture
- 
    
    chrome.pageCaptureAPI を使用してタブを MHTML として保存します。
- 権限
- 
    
    chrome.permissionsAPI を使用して、インストール時ではなく実行時に宣言されたオプションの権限をリクエストします。これにより、ユーザーは権限が必要な理由を理解し、必要な権限のみを付与できます。
- platformKeys
- 
    Chrome 45 以降 ChromeOS のみchrome.platformKeysAPI を使用すると、プラットフォームで管理されるクライアント証明書にアクセスできます。ユーザーまたはポリシーが許可した場合、拡張機能はカスタム認証プロトコルでこのような証明書を使用できます。たとえば、プラットフォームで管理される証明書をサードパーティの VPN で使用できるようになります(chrome.vpnProvider を参照)。
- power
- 
    
    chrome.powerAPI を使用して、システムの電源管理機能をオーバーライドします。
- printerProvider
- 
    Chrome 44 以降chrome.printerProviderAPI でプリント マネージャーのイベントを使用して、拡張機能の制御下にあるプリンタとその機能を問い合わせたり、それらのプリンタに印刷ジョブを送信したりできます。
- 印刷
- 
    Chrome 81 以降 ChromeOS のみchrome.printingAPI を使用して、Chromebook にインストールされているプリンタに印刷ジョブを送信します。
- printingMetrics
- 
    chrome.printingMetricsAPI を使用して、印刷の使用状況に関するデータを取得します。
- プライバシー
- 
    
    chrome.privacyAPI を使用すると、ユーザーのプライバシーに影響する可能性のある Chrome の機能の使用を制御できます。この API は、Chrome の構成の取得と設定に type API の ChromeSetting プロトタイプを使用します。
- プロセス
- 
    Dev チャンネルchrome.processesAPI を使用すると、ブラウザのプロセスを操作できます。
- プロキシ
- 
    
    chrome.proxyAPI を使用して、Chrome のプロキシ設定を管理します。この API は、プロキシ構成の取得と設定に ChromeSetting プロトタイプ(タイプ API)を使用します。
- readingList
- 
    Chrome 120+ MV3+chrome.readingListAPI を使用して、リーディング リストのアイテムの読み取りと変更を行います。
- runtime
- 
    
    chrome.runtimeAPI を使用すると、サービス ワーカーを取得し、マニフェストの詳細を返し、拡張機能のライフサイクル内のイベントをリッスンして応答できます。この API を使用して、URL の相対パスを完全修飾 URL に変換することもできます。
- スクリプト
- 
    Chrome 88 以降 MV3 以降chrome.scriptingAPI を使用して、さまざまなコンテキストでスクリプトを実行します。
- search
- 
    Chrome 87 以降chrome.searchAPI を使用して、デフォルトのプロバイダで検索します。
- セッション
- 
    
    chrome.sessionsAPI を使用すると、閲覧中のセッションからタブとウィンドウの問い合わせや復元を行うことができます。
- sidePanel
- 
    Chrome 114+ MV3+chrome.sidePanelAPI を使用して、ウェブページのメイン コンテンツの横にあるブラウザのサイドパネルにコンテンツをホストします。
- ストレージ
- 
    
    chrome.storageAPI を使用して、ユーザーデータの保存、取得、変更の追跡を行います。
- system.cpu
- 
    
    system.cpuAPI を使用して CPU メタデータをクエリします。
- system.display
- 
    
    system.displayAPI を使用して、表示メタデータをクエリします。
- system.memory
- 
    
    chrome.system.memoryAPI。
- system.storage
- 
    
    chrome.system.storageAPI を使用して、ストレージ デバイス情報をクエリし、リムーバブル ストレージ デバイスの接続と取り外し時に通知を受け取ります。
- systemLog
- 
    chrome.systemLogAPI を使用して、拡張機能から Chrome システムログを記録します。
- tabCapture
- 
    
    chrome.tabCaptureAPI を使用してタブのメディア ストリームを操作します。
- tabGroups
- 
    Chrome 89+ MV3+chrome.tabGroupsAPI を使用して、ブラウザのタブ グループ化システムを操作します。この API を使用すると、ブラウザのタブグループを変更したり、並べ替えたりできます。タブをグループ化またはグループ解除したり、グループ内のタブをクエリしたりするには、chrome.tabsAPI を使用します。
- タブ
- 
    
    chrome.tabsAPI を使用して、ブラウザのタブシステムを操作します。この API を使用すると、ブラウザのタブを作成、変更、並べ替えることができます。
- topSites
- 
    
    chrome.topSitesAPI を使用して、新しいタブページに表示される上位サイト(よくアクセスするサイト)にアクセスします。ユーザーがカスタマイズしたショートカットは含まれません。
- tts
- 
    
    chrome.ttsAPI を使用して、合成されたテキスト読み上げ(TTS)を再生します。拡張機能で音声エンジンを実装できる関連のttsEngineAPI もご覧ください。
- ttsEngine
- 
    
    chrome.ttsEngineAPI を使用して、拡張機能でテキスト読み上げ(TTS)エンジンを実装します。拡張機能がこの API を使用して登録すると、拡張機能または Chrome アプリがttsAPI を使用して音声生成を行うたびに、発話内容を含むイベントとその他のパラメータを受け取ります。拡張機能は、利用可能なウェブ テクノロジーを使用して音声を合成して出力し、ステータスをレポートするイベントを呼び出し関数に送り返します。
- types
- 
    
    chrome.typesAPI には、Chrome の型宣言が含まれています。
- userScripts
- 
    Chrome 120+ MV3+userScriptsAPI を使用して、ユーザー スクリプトをユーザー スクリプトのコンテキストで実行します。
- vpnProvider
- 
    Chrome 43 以降 ChromeOS のみchrome.vpnProviderAPI を使用して VPN クライアントを実装します。
- 壁紙
- 
    Chrome 43 以降 ChromeOS のみchrome.wallpaperAPI を使用して ChromeOS の壁紙を変更します。
- webAuthenticationProxy
- 
    Chrome 115+ MV3+chrome.webAuthenticationProxyAPI を使用すると、リモートホストで実行されているリモート デスクトップ ソフトウェアが Web Authentication API(WebAuthn)リクエストをインターセプトして、ローカル クライアントで処理できます。
- webNavigation
- 
    
    chrome.webNavigationAPI を使用して、進行中のナビゲーション リクエストのステータスに関する通知を受け取ります。
- webRequest
- 
    
    chrome.webRequestAPI を使用して、トラフィックをモニタリングして分析し、送信中のリクエストを傍受、ブロック、変更します。
- windows
- 
    
    chrome.windowsAPI を使用してブラウザ ウィンドウを操作します。この API を使用すると、ブラウザでウィンドウを作成、変更、再配置できます。