chrome.runtime

説明

chrome.runtime API を使用して、Service Worker を取得し、マニフェストの詳細を返して、拡張機能のライフサイクルのイベントをリッスンして応答します。この API を使用して、URL の相対パスを完全修飾 URL に変換することもできます。

この API のほとんどのメンバーに権限は必要ありません。この権限は、connectNative()sendNativeMessage()onNativeConnect に必要です。

次の例は、マニフェストで "nativeMessaging" 権限を宣言する方法を示しています。

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

コンセプトと使用方法

Runtime API は、拡張機能が処理する多くの領域をサポートするメソッドを提供します。 以下を使用できます。

メッセージの受け渡し
拡張機能は、次のメソッドとイベントを使用して、拡張機能内のさまざまなコンテキストと通信したり、他の拡張機能と通信したりできます。 connect(), onConnect, onConnectExternal, sendMessage(), onMessageonMessageExternal さらに、拡張機能は、次のコマンドを使用して、ユーザーのデバイス上のネイティブ アプリにメッセージを渡すことができます。 connectNative()sendNativeMessage()
で確認できます。
拡張機能とプラットフォームのメタデータへのアクセス
これらのメソッドを使用すると、拡張機能と拡張機能に関する特定のメタデータを取得できます。 説明します。このカテゴリのメソッドには、次のものがあります。 getManifest()getPlatformInfo()
拡張機能のライフサイクルとオプションの管理
これらのプロパティを使用すると、拡張機能に対してメタオペレーションを実行したり、オプション ページを表示したりできます。 このカテゴリのメソッドとイベントには、次のものがあります。 onInstalled onStartup, openOptionsPage(), reload() requestUpdateCheck() setUninstallURL()
ヘルパー ユーティリティ
これらのメソッドは、内部リソース表現を 使用できます。このカテゴリのメソッドには、次のものがあります。 getURL()
キオスクモードのユーティリティ
これらのメソッドは ChromeOS でのみ利用でき、主にキオスクの実装をサポートするために存在します。 このカテゴリのメソッドには、次のものがあります。 restart()restartAfterDelay()

パッケージ化されていない拡張機能の動作

パッケージ化されていない拡張機能がリロードされると、更新として扱われます。つまり、 chrome.runtime.onInstalled イベントは "update" の理由で発生します。この chrome.runtime.reload() で拡張機能が再読み込みされた場合を含みます。

ユースケース

ウェブページに画像を追加する

ウェブページが別のドメインでホストされているアセットにアクセスするには、リソースの完全な URL を指定する必要があります。 (例: <img src="https://example.com/logo.png">)。同じことが ウェブページです2 つの違いは、広告表示オプションのアセットはウェブ リソースへのアクセスが可能であり、通常コンテンツスクリプトが 追加できます

この例では、拡張機能により、コンテンツが掲載されているページに logo.png が追加されます。 スクリプトが、runtime.getURL() を使用して作成することにより挿入されています 指定します。その前に、ウェブアクセス可能なリソースとしてマニフェストでアセットを宣言する必要があります。

manifest.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

content.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}

コンテンツ スクリプトから Service Worker にデータを送信する

拡張機能のコンテンツ スクリプトには、拡張機能の別の部分によって管理されているデータが必要になることがよくあります。 使用できます。同じウェブページを開く 2 つのブラウザ ウィンドウと 2 つのコンテキストが互いの値に直接アクセスすることはできません。代わりに、拡張機能はメッセージ 渡してコンテキスト間で調整します。

この例では、コンテンツ スクリプトが拡張機能の Service Worker からデータを取得するために UI を初期化しますこのデータを取得するために、デベロッパーが定義した get-user-data メッセージが渡されます。 Service Worker に渡され、Service Worker はユーザーの情報のコピーで応答します。

content.js:

// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

service-worker.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

アンインストールに関するフィードバックを集める

多くの拡張機能では、アンインストール後のアンケートを使用して、拡張機能がもたらすメリットを把握しています。 定着率を改善できます次の例は、この機能を追加する方法を示しています。

background.js:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

Runtime API のその他の例については、Manifest V3 - ウェブでアクセス可能なリソースのデモをご覧ください。

ContextFilter

Chrome 114 以降

特定の拡張機能のコンテキストと照合するフィルタ。一致するコンテキストは、指定されたすべてのフィルタに一致する必要があります。指定されていないフィルタは、使用可能なすべてのコンテキストに一致します。したがって、`{}` のフィルタは利用可能なすべてのコンテキストに一致します。

プロパティ

  • contextIds

    文字列 [] 省略可

  • contextTypes

    ContextType[] 省略可

  • documentIds

    文字列 [] 省略可

  • documentOrigins

    文字列 [] 省略可

  • documentUrls

    文字列 [] 省略可

  • frameIds

    数値 [] 省略可

  • シークレット モード

    ブール値(省略可)

  • tabIds

    数値 [] 省略可

  • windowIds

    数値 [] 省略可

ContextType

Chrome 114 以降

列挙型

TAB
コンテキスト タイプをタブとして指定します

"POPUP"
コンテキスト タイプを拡張機能のポップアップ ウィンドウとして指定します

"BACKGROUND"
コンテキスト タイプを Service Worker として指定します。

"OFFSCREEN_DOCUMENT"
コンテキスト タイプをオフスクリーン ドキュメントとして指定します。

"SIDE_PANEL"
サイドパネルとしてコンテキスト タイプを指定します。

ExtensionContext

Chrome 114 以降

拡張機能のコンテンツをホストするコンテキスト。

プロパティ

  • contextId

    文字列

    このコンテキストの一意の識別子

  • contextType

    対応するコンテキストのタイプ。

  • documentId

    文字列(省略可)

    このコンテキストに関連付けられているドキュメントの UUID。このコンテキストがドキュメント内でホストされていない場合は未定義。

  • documentOrigin

    文字列(省略可)

    このコンテキストに関連付けられているドキュメントのオリジン。コンテキストがドキュメントでホストされていない場合は未定義。

  • documentUrl

    文字列(省略可)

    このコンテキストに関連付けられているドキュメントの URL。コンテキストがドキュメントでホストされていない場合は未定義。

  • frameId

    数値

    このコンテキストのフレームの ID。このコンテキストがフレームでホストされていない場合は -1。

  • シークレット モード

    ブール値

    コンテキストがシークレット モードのプロファイルに関連付けられているかどうか。

  • tabId

    数値

    このコンテキストのタブの ID。このコンテキストがタブでホストされていない場合は -1。

  • windowId

    数値

    このコンテキストのウィンドウの ID。このコンテキストがウィンドウでホストされていない場合は -1。

MessageSender

メッセージまたはリクエストを送信したスクリプトのコンテキストに関する情報を含むオブジェクト。

プロパティ

  • documentId

    文字列(省略可)

    Chrome 106 以降

    接続を開いたドキュメントの UUID。

  • documentLifecycle

    文字列(省略可)

    Chrome 106 以降

    接続を開いたドキュメントのライフサイクルは、ポートが作成された時点です。ポートの作成後に、ドキュメントのライフサイクルの状態が変更された可能性があります。

  • frameId

    数値(省略可)

    接続を開いたフレーム。最上位フレームの場合は 0、子フレームの場合は正です。tab が設定されている場合にのみ設定されます。

  • id

    文字列(省略可)

    接続を開いた拡張機能の ID(存在する場合)。

  • nativeApplication

    文字列(省略可)

    Chrome 74 以降

    接続を開いたネイティブ アプリケーションの名前(存在する場合)。

  • オリジン

    文字列(省略可)

    Chrome 80 以降

    接続を開始したページまたはフレームのオリジン。URL プロパティとは異なる値(例: about:blank)、不透明値(例: サンドボックス化された iframe)にできます。これは、URL からすぐに判断できない場合に、オリジンが信頼できるかどうかを確認するのに役立ちます。

  • タブ

    タブ (省略可)

    接続を開いた tabs.Tab(存在する場合)。このプロパティは、接続がタブ(コンテンツ スクリプトを含む)から開かれた場合のみ、また受信側がアプリではなく拡張機能の場合のみ存在します。

  • tlsChannelId

    文字列(省略可)

    接続をオープンしたページまたはフレームの TLS チャネル ID(拡張機能からリクエストされ、存在する場合)。

  • URL

    文字列(省略可)

    接続を開始したページまたはフレームの URL。送信者が iframe 内にいる場合、送信者をホストするページの URL ではなく、iframe の URL になります。

OnInstalledReason

Chrome 44 以降

このイベントがディスパッチされている理由。

列挙型

"install"
イベントの理由をインストールとして指定します。

"update"
イベントの理由を拡張機能の更新として指定します。

&quot;chrome_update&quot;
イベントの理由を Chrome の更新として指定します。

"shared_module_update"
イベントの理由を共有モジュールの更新として指定します。

OnRestartRequiredReason

Chrome 44 以降

イベントがディスパッチされている理由。「app_update」は、アプリケーションが新しいバージョンに更新されたために再起動が必要な場合に使用されます。「os_update」は、ブラウザ/OS が新しいバージョンに更新されたために再起動が必要な場合に使用されます。'定期的'は、エンタープライズ ポリシーで設定された許容時間を超えてシステムが実行されている場合に使用されます。

列挙型

"app_update"
イベントの理由をアプリのアップデートとして指定します。

&quot;os_update&quot;
イベントの理由をオペレーティング システムのアップデートとして指定します。

"periodic"
アプリの定期的な再起動としてイベントの理由を指定します。

PlatformArch

Chrome 44 以降

マシンのプロセッサ アーキテクチャ。

列挙型

"arm"
プロセッサ アーキテクチャを arm として指定します。

"arm64"
プロセッサ アーキテクチャを arm64 として指定します。

"x86-32"
プロセッサのアーキテクチャを x86-32 として指定します。

"x86-64"
プロセッサのアーキテクチャを x86-64 として指定します。

"mips"
プロセッサのアーキテクチャを mips として指定します。

"mips64"
プロセッサのアーキテクチャを mips64 として指定します。

PlatformInfo

現在のプラットフォームに関する情報を含むオブジェクト。

プロパティ

  • マシンのプロセッサ アーキテクチャ。

  • nacl_arch

    ネイティブ クライアントのアーキテクチャ。一部のプラットフォームの arch とは異なる場合があります。

  • Chrome が実行されているオペレーティング システム。

PlatformNaclArch

Chrome 44 以降

ネイティブ クライアントのアーキテクチャ。一部のプラットフォームの arch とは異なる場合があります。

列挙型

"arm"
ネイティブ クライアント アーキテクチャを arm として指定します。

"x86-32"
ネイティブ クライアント アーキテクチャを x86-32 として指定します。

"x86-64"
ネイティブ クライアント アーキテクチャを x86-64 として指定します。

"mips"
ネイティブ クライアント アーキテクチャを mips として指定します。

"mips64"
ネイティブ クライアント アーキテクチャを mips64 として指定します。

PlatformOs

Chrome 44 以降

Chrome が実行されているオペレーティング システム。

列挙型

"mac"
macOS オペレーティング システムを指定します。

"win"
Windows オペレーティング システムを指定します。

"android"
Android オペレーティング システムを指定します。

"cros"
Chrome オペレーティング システムを指定します。

"linux"
Linux オペレーティング システムを指定します。

&quot;openbsd&quot;
OpenBSD オペレーティング システムを指定します。

"fuchsia"
Fuchsia オペレーティング システムを指定します。

Port

他のページとの双方向通信を可能にするオブジェクト。詳細については、長時間継続する接続をご覧ください。

プロパティ

  • name

    文字列

    runtime.connect の呼び出しで指定されたポートの名前。

  • onDisconnect

    Event<functionvoidvoid>

    ポートがもう一方の端から切断されたときに呼び出されます。エラーによってポートが切断された場合、runtime.lastError が設定されていることがあります。disconnect でポートが閉じられた場合、このイベントはもう一方の端でのみ発生します。このイベントは一度に 1 回だけ発生します(ポートの存続期間もご覧ください)。

    onDisconnect.addListener 関数は次のようになります。

    (callback: function) => {...}

    • callback

      関数

      callback パラメータは次のようになります。

      (port: Port) => void

  • onMessage

    Event<functionvoidvoid>

    このイベントは、ポートの相手から postMessage が呼び出されると発生します。

    onMessage.addListener 関数は次のようになります。

    (callback: function) => {...}

    • callback

      関数

      callback パラメータは次のようになります。

      (message: any, port: Port) => void

  • sender

    MessageSender (省略可)

    このプロパティは、onConnect / onConnectExternal / onConnectNative リスナーに渡されたポートにのみ存在します。

  • 接続を解除

    void

    直ちにポートを外します。すでに切断されたポートで disconnect() を呼び出しても、効果はありません。ポートが切断されると、このポートに新しいイベントはディスパッチされなくなります。

    disconnect 関数は次のようになります。

    () => {...}

  • postMessage

    void

    ポートのもう一方の端にメッセージを送信します。ポートが切断されると、エラーがスローされます。

    postMessage 関数は次のようになります。

    (message: any) => {...}

    • メッセージ

      任意

      Chrome 52 以降

      送信するメッセージ。このオブジェクトは JSON 対応である必要があります。

RequestUpdateCheckStatus

Chrome 44 以降

アップデート チェックの結果。

列挙型

"throttled"
ステータス チェックが抑制されたことを指定します。これは、短期間にチェックを繰り返し行った後に発生する場合があります。

"no_update"
インストールできるアップデートがないことを示します。

"update_available"
インストール可能なアップデートがあることを示します。

プロパティ

id

拡張機能またはアプリの ID。

タイプ

文字列

lastError

API 関数の呼び出しが失敗した場合にエラー メッセージが入力されます。それ以外の場合は定義されません。これは、その関数のコールバックのスコープ内でのみ定義されます。エラーが発生したものの、コールバック内で runtime.lastError にアクセスしなかった場合、エラーが発生した API 関数を示すメッセージがコンソールに記録されます。Promise を返す API 関数では、このプロパティは設定されません。

タイプ

オブジェクト

プロパティ

  • メッセージ

    文字列(省略可)

    発生したエラーの詳細。

メソッド

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)

拡張機能(バックグラウンド ページなど)または他の拡張機能やアプリ内でリスナーの接続を試みます。これは、拡張機能プロセスに接続するコンテンツ スクリプト、アプリ間/拡張機能間の通信、ウェブ メッセージングに役立ちます。コンテンツ スクリプト内のリスナーには接続されないことに注意してください。拡張機能は、tabs.connect を介してタブに埋め込まれたコンテンツ スクリプトに接続できます。

パラメータ

  • extensionId

    文字列(省略可)

    接続する拡張機能の ID。省略すると、使用している拡張機能を使用して接続が試行されます。ウェブ メッセージ用にウェブページからメッセージを送信する場合は必須。

  • connectInfo

    オブジェクト(省略可)

    • includeTlsChannelId

      ブール値(省略可)

      接続イベントをリッスンしているプロセスの TLS チャネル ID が onConnectExternal に渡されるかどうか。

    • name

      文字列(省略可)

      接続イベントをリッスンしているプロセスの onConnect に渡されます。

戻り値

  • メッセージを送受信できるポート。拡張機能が存在しない場合は、ポートの onDisconnect イベントが発生します。

connectNative()

chrome.runtime.connectNative(
  application: string,
)

ホストマシン内のネイティブ アプリケーションに接続します。このメソッドを使用するには、"nativeMessaging" 権限が必要です。詳しくは、ネイティブ メッセージングをご覧ください。

パラメータ

  • アプリケーション

    文字列

    接続先の登録済みアプリケーションの名前。

戻り値

  • アプリケーションでメッセージを送受信するためのポート

getBackgroundPage()

<ph type="x-smartling-placeholder"></ph> 約束 フォアグラウンドのみ をご覧ください。
chrome.runtime.getBackgroundPage(
  callback?: function,
)

JavaScript の「window」を取得する現在の拡張機能/アプリで実行されているバックグラウンド ページのオブジェクト。バックグラウンド ページがイベントページの場合、コールバックを呼び出す前にページが必ず読み込まれます。バックグラウンド ページがない場合、エラーが設定されます。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (backgroundPage?: Window) => void

    • backgroundPage

      期間(省略可

      JavaScript の「ウィンドウ」オブジェクトを宣言します。

戻り値

  • Promise&lt;Window |未定義>

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getContexts()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 116 以降 MV3 以降
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

この拡張機能に関連付けられているアクティブなコンテキストに関する情報を取得します

パラメータ

  • フィルタ

    一致するコンテキストを見つけるフィルタ。コンテキストは、フィルタで指定されたすべてのフィールドと一致する場合に一致します。フィルタに指定されていないフィールドは、すべてのコンテキストと一致します。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (contexts: ExtensionContext[]) => void

    • コンテキスト

      一致するコンテキスト(存在する場合)。

戻り値

  • Promise&lt;ExtensionContext[]&gt;

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getManifest()

chrome.runtime.getManifest()

マニフェストからアプリや拡張機能の詳細を返します。マニフェスト ファイル全体がシリアル化されて返されます。

戻り値

  • オブジェクト

    マニフェストの詳細。

getPackageDirectoryEntry()

<ph type="x-smartling-placeholder"></ph> 約束 フォアグラウンドのみ をご覧ください。
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

パッケージ ディレクトリの DirectoryEntry を返します。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      DirectoryEntry

戻り値

  • Promise&lt;DirectoryEntry&gt;

    Chrome 122 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getPlatformInfo()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.getPlatformInfo(
  callback?: function,
)

現在のプラットフォームに関する情報を返します。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (platformInfo: PlatformInfo) => void

戻り値

  • Promise&lt;PlatformInfo&gt;

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

getURL()

chrome.runtime.getURL(
  path: string,
)

アプリや拡張機能のインストール ディレクトリ内の相対パスを完全修飾 URL に変換します。

パラメータ

  • パス

    文字列

    アプリ/拡張機能内のリソースへのパス(インストール ディレクトリを基準とする相対パス)。

戻り値

  • 文字列

    リソースの完全修飾 URL。

openOptionsPage()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.openOptionsPage(
  callback?: function,
)

可能であれば、拡張機能のオプション ページを開きます。

正確な動作は、マニフェストの [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) キーまたは [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) キー、またはその時点で Chrome がサポートする機能によって異なります。たとえば、新しいタブ、chrome://extensions、アプリ内、あるいは、開いているオプション ページがフォーカスされている場合があります。呼び出し元のページが再読み込みされることはありません。

拡張機能でオプション ページを宣言しない場合や、Chrome がなんらかの理由でオプション ページの作成に失敗した場合は、コールバックで lastError が設定されます。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • 約束 <void>

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

reload()

chrome.runtime.reload()

アプリまたは拡張機能を再読み込みする。キオスクモードでは、この方法はサポートされていません。キオスクモードの場合は、chrome.runtime.restart() メソッドを使用します。

requestUpdateCheck()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

このアプリ/拡張機能のアップデートの即時チェックをリクエストします。

重要: Chrome ではすでに数時間ごとに自動チェックを実行しているため、ほとんどの拡張機能やアプリではこのメソッドを使用しないでください。また、requestUpdateCheck を呼び出すことなく runtime.onUpdateAvailable イベントをリッスンできます。

この方法は、拡張機能がバックエンド サービスと通信し、クライアント拡張機能のバージョンが非常に古く、ユーザーに更新を求める必要があるとバックエンド サービスが判断した場合など、非常に限られた状況でのみ呼び出すのに適しています。タイマーの繰り返しに基づいて無条件に呼び出すなど、requestUpdateCheck のその他の使用方法のほとんどは、おそらくクライアント、ネットワーク、サーバーのリソースを浪費するだけの役割を果たします。

注: コールバックで呼び出した場合、この関数はオブジェクトを返すのではなく、コールバックに渡される個別の引数として 2 つのプロパティを返します。

パラメータ

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (result: object) => void

    • 件の結果

      オブジェクト

      Chrome 109 以降

      更新チェックのステータスと、利用可能な更新がある場合の結果の詳細を保持する RequestUpdateCheckResult オブジェクト。

      • アップデート チェックの結果。

      • version

        文字列(省略可)

        適用できるアップデートがある場合、利用可能なアップデートのバージョンが表示されます。

戻り値

  • Promise&lt;object&gt;

    Chrome 109 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

restart()

chrome.runtime.restart()

アプリをキオスクモードで実行している場合は、ChromeOS デバイスを再起動します。それ以外の場合は何も行いません。

restartAfterDelay()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 53 以降 をご覧ください。
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)

指定した秒数後にアプリがキオスクモードで実行されたら、ChromeOS デバイスを再起動します。時間が終了する前にもう一度呼び出されると、再起動が遅延します。-1 の値を指定して呼び出すと、再起動はキャンセルされます。キオスク以外のモードでは何も行われません。この API を呼び出すために、最初の拡張機能によって繰り返し呼び出すことが許可されます。

パラメータ

  • 数値

    デバイスを再起動するまでの時間(秒)。スケジュール設定された再起動をキャンセルする場合は -1 になります。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • 約束 <void>

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

sendMessage()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

拡張機能または別の拡張機能/アプリ内のイベント リスナーに単一のメッセージを送信します。runtime.connect に似ていますが、メッセージを 1 つだけ送信するだけです。レスポンスは任意です。拡張機能に送信すると、拡張機能のすべてのフレーム(送信者のフレームを除く)で runtime.onMessage イベントが発生します。別の拡張機能の場合は runtime.onMessageExternal が発生します。拡張機能は、このメソッドを使用してコンテンツ スクリプトにメッセージを送信できないことに注意してください。コンテンツ スクリプトにメッセージを送信するには、tabs.sendMessage を使用します。

パラメータ

  • extensionId

    文字列(省略可)

    メッセージの送信先となる拡張機能の ID。省略すると、メッセージは拡張機能またはアプリに送信されます。ウェブ メッセージ用にウェブページからメッセージを送信する場合は必須。

  • メッセージ

    任意

    送信するメッセージ。このメッセージは JSON 可能なオブジェクトである必要があります。

  • オプション

    オブジェクト(省略可)

    • includeTlsChannelId

      ブール値(省略可)

      接続イベントをリッスンしているプロセスの TLS チャネル ID が onMessageExternal に渡されるかどうか。

  • callback

    関数(省略可)

    Chrome 99 以降

    callback パラメータは次のようになります。

    (response: any) => void

    • レスポンス

      任意

      メッセージのハンドラによって送信された JSON レスポンス オブジェクト。拡張機能への接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、runtime.lastError がエラー メッセージに設定されます。

戻り値

  • <任意> を約束する

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

sendNativeMessage()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)

ネイティブ アプリケーションに単一のメッセージを送信します。このメソッドを使用するには、"nativeMessaging" 権限が必要です。

パラメータ

  • アプリケーション

    文字列

    ネイティブ メッセージング ホストの名前。

  • メッセージ

    オブジェクト

    ネイティブ メッセージング ホストに渡されるメッセージ。

  • callback

    関数(省略可)

    Chrome 99 以降

    callback パラメータは次のようになります。

    (response: any) => void

    • レスポンス

      任意

      ネイティブ メッセージング ホストから送信されたレスポンス メッセージ。ネイティブ メッセージング ホストへの接続中にエラーが発生した場合、コールバックは引数なしで呼び出され、runtime.lastError がエラー メッセージに設定されます。

戻り値

  • <任意> を約束する

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

setUninstallURL()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

アンインストール時にアクセスする URL を設定します。この情報は、サーバーサイド データのクリーンアップ、分析、アンケートの実施に使用されます。最大 1,023 文字。

パラメータ

  • URL

    文字列

    拡張機能のアンインストール後に開く URL。この URL は、http: または https: のスキームを使用している必要があります。アンインストール時に新しいタブを開かないようにするには、空の文字列を設定します。

  • callback

    関数(省略可)

    Chrome 45 以降

    callback パラメータは次のようになります。

    () => void

戻り値

  • 約束 <void>

    Chrome 99 以降

    Promise は Manifest V3 以降でサポートされていますが、 下位互換性が確保されます同じ関数呼び出しで両方を使用することはできません。「 Promise はコールバックに渡された型と同じ型で解決されます。

イベント

onBrowserUpdateAvailable

<ph type="x-smartling-placeholder"></ph> 非推奨
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

runtime.onRestartRequired を使用してください。

Chrome の更新が利用可能になったときに呼び出されますが、ブラウザの再起動が必要なためすぐにインストールされません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

拡張機能プロセスまたはコンテンツ スクリプト(runtime.connect によって)から接続が確立されたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (port: Port) => void

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

別の拡張機能から(runtime.connect によって)、または外部に接続可能なウェブサイトから接続が確立されたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (port: Port) => void

onConnectNative

Chrome 76 以降
chrome.runtime.onConnectNative.addListener(
  callback: function,
)

ネイティブ アプリから接続が確立されたときに呼び出されます。このイベントには "nativeMessaging" 権限が必要です。この機能は ChromeOS でのみサポートされています。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (port: Port) => void

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

拡張機能が最初にインストールされたとき、拡張機能が新しいバージョンに更新したとき、Chrome が新しいバージョンに更新されたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (details: object) => void

    • 詳細

      オブジェクト

      • id

        文字列(省略可)

        インポートされた、更新された共有モジュール拡張機能の ID を示します。「reason」が指定された場合のみ「shared_module_update」に設定します。

      • previousVersion

        文字列(省略可)

        更新された拡張機能の以前のバージョンを示します。「reason」が指定された場合のみ「update」です。

      • このイベントがディスパッチされている理由。

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

拡張機能プロセス(runtime.sendMessage)またはコンテンツ スクリプト(tabs.sendMessage)のいずれかからメッセージが送信されると呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • メッセージ

      任意

    • sender
    • sendResponse

      関数

      sendResponse パラメータは次のようになります。

      () => void

    • 戻り値

      boolean |未定義

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

別の拡張機能から(runtime.sendMessage によって)メッセージが送信されると呼び出されます。コンテンツ スクリプトでは使用できません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • メッセージ

      任意

    • sender
    • sendResponse

      関数

      sendResponse パラメータは次のようになります。

      () => void

    • 戻り値

      boolean |未定義

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

アプリまたはアプリを実行するデバイスの再起動が必要となったときに呼び出されます。アプリは、再起動が行われるように、最も都合の良いタイミングですべてのウィンドウを閉じる必要があります。アプリが何も実行しない場合は、24 時間の猶予期間が経過した後に再起動が適用されます。現在、このイベントは ChromeOS キオスクアプリでのみ発生します。

パラメータ

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

この拡張機能がインストールされているプロファイルが最初に起動したときに呼び出されます。この拡張機能が「分割」で動作している場合でも、シークレット プロファイルの開始時にこのイベントは発生しません。使用できます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

取り出しの直前にイベントページに送信されます。これにより、拡張機能をクリーンアップできます。ページはアンロードされるため、このイベントの処理中に開始された非同期処理は、必ずしも完了するとは限りません。アンロードされる前にイベントページのアクティビティが増えると、onSuspendCanceled イベントが送信され、ページはアンロードされません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

アプリが結局アンロードされないことを示すために、onSuspend の後に送信されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

更新が利用可能になったときに呼び出されますが、アプリが現在実行中であるためすぐにインストールされません。何もしない場合、次にバックグラウンド ページがアンロードされたときにアップデートがインストールされます。それより早くインストールしたい場合は、chrome.runtime.reload() を明示的に呼び出すことができます。拡張機能で永続的なバックグラウンド ページを使用している場合、バックグラウンド ページはもちろんアンロードされないため、このイベントに応答して chrome.runtime.reload() を手動で呼び出しない限り、更新は Chrome が次に再起動されるまでインストールされません。このイベントをリッスンしているハンドラがなく、拡張機能に永続的なバックグラウンド ページがある場合は、このイベントに応答して chrome.runtime.reload() が呼び出された場合と同じように動作します。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (details: object) => void

    • 詳細

      オブジェクト

      • version

        文字列

        利用可能なアップデートのバージョン番号。

onUserScriptConnect

Chrome 115 以降 MV3 以降 をご覧ください。
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

この拡張機能のユーザー スクリプトから接続が確立されたときに呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (port: Port) => void

onUserScriptMessage

Chrome 115 以降 MV3 以降 をご覧ください。
chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

同じ拡張機能に関連付けられているユーザー スクリプトからメッセージが送信されると呼び出されます。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • メッセージ

      任意

    • sender
    • sendResponse

      関数

      sendResponse パラメータは次のようになります。

      () => void

    • 戻り値

      boolean |未定義