chrome.browsingData

説明

chrome.browsingData API を使用して、ユーザーのローカル プロフィールから閲覧データを削除します。

権限

browsingData

この API を使用するには、拡張機能のマニフェスト"browsingData" 権限を宣言する必要があります。

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

コンセプトと使用方法

この API の最も簡単なユースケースは、ユーザーの閲覧データをクリアする時間ベースのメカニズムです。コードでは、ユーザーの閲覧データを削除する必要がある過去の日付を示すタイムスタンプを提供する必要があります。このタイムスタンプは、Unix エポックからの経過ミリ秒数として示されます(getTime() メソッドを使用して JavaScript Date オブジェクトから取得できます)。

たとえば、先週のユーザーの閲覧データをすべて消去するには、次のようなコードを作成します。

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.remove({
  "since": oneWeekAgo
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

chrome.browsingData.remove() メソッドを使用すると、1 回の呼び出しでさまざまな種類の閲覧データを削除できます。また、より具体的な複数のメソッドを呼び出すよりもはるかに高速です。一方、特定の 1 種類の閲覧データ(Cookie など)のみを消去したい場合は、JSON が入力された呼び出しの代わりに、より詳細なメソッドを使用します。

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.removeCookies({
  "since": oneWeekAgo
}, callback);

ユーザーがデータを同期している場合、chrome.browsingData.remove() は同期アカウントの Cookie を消去後に自動的に再構築することがあります。これは、同期の処理を継続し、最終的にサーバー上のデータを削除できるようにするためです。ただし、より具体的な chrome.browsingData.removeCookies() を使用して同期アカウントの Cookie を消去することは可能です。その場合、同期は一時停止します。

特定のオリジン

特定のオリジンのデータを削除したり、一連のオリジンを削除対象から除外するには、RemovalOptions.origins パラメータと RemovalOptions.excludeOrigins パラメータを使用します。Cookie、キャッシュ、ストレージ(CacheStorage、FileSystems、IndexedDB、LocalStorage、ServiceWorkers、WebSQL)にのみ適用できます。

chrome.browsingData.remove({
  "origins": ["https://www.example.com"]
}, {
  "cacheStorage": true,
  "cookies": true,
  "fileSystems": true,
  "indexedDB": true,
  "localStorage": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

送信元の種類

API オプション オブジェクトに originTypes プロパティを追加すると、適用するオリジンのタイプを指定できます。オリジンは 3 つのカテゴリに分類されます。

  • unprotectedWeb は、ユーザーが特別な操作を行わずにアクセスする一般的なウェブサイトを対象としています。originTypes を指定しない場合、API はデフォルトで保護されていないウェブオリジンからデータを削除します。
  • protectedWeb は、ホスト型アプリケーションとしてインストールされているウェブオリジンに対応しています。たとえば、Angry Birds をインストールすると、オリジンの https://chrome.angrybirds.com が保護され、unprotectedWeb カテゴリから削除されます。これらのオリジンのデータ削除をトリガーする際は、ゲームデータが不可逆的に削除されるため、何を得るかをユーザーに知らせるようにしてください。小さなブタの家を必要以上に頻繁にたたきたがる人はいません。
  • extension は、chrome-extensions: スキームのオリジンに対応します。拡張機能データの削除についても、細心の注意を払う必要があります。

上記の例を変更して、保護されたウェブサイトからデータのみを削除できます。

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
chrome.browsingData.remove({
  "since": oneWeekAgo,
  "originTypes": {
    "protectedWeb": true
  }
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

この API を試すには、chrome-extension-samples リポジトリから browsingData API の例をインストールします。

DataTypeSet

データ型のセット。欠落しているデータ型は false として解釈されます。

プロパティ

  • appcache

    ブール値(省略可)

    ウェブサイトのアプリキャッシュ。

  • cache

    ブール値(省略可)

    ブラウザのキャッシュ。

  • cacheStorage

    ブール値(省略可)

    Chrome 72 以降

    キャッシュ ストレージ

  • Cookie

    ブール値(省略可)

    ブラウザの Cookie。

  • ダウンロード

    ブール値(省略可)

    ブラウザのダウンロード リスト。

  • fileSystems

    ブール値(省略可)

    ウェブサイトのファイル システム。

  • formData

    ブール値(省略可)

    ブラウザに保存されているフォームデータ。

  • history

    ブール値(省略可)

    ブラウザの履歴。

  • indexedDB

    ブール値(省略可)

    ウェブサイトの IndexedDB データ。

  • localStorage

    ブール値(省略可)

    ウェブサイトのローカル ストレージ データ。

  • 含まれていた

    ブール値(省略可)

    保存されているパスワード。

  • pluginData

    ブール値(省略可)

    Chrome 88 以降非推奨

    Flash のサポートは終了しました。このデータ型は無視されます。

    プラグインのデータ。

  • serverBoundCertificates

    ブール値(省略可)

    Chrome 76 以降、サポートが終了している

    サーバーにバインドされた証明書のサポートは終了しました。このデータ型は無視されます。

    サーバーにバインドされた証明書。

  • serviceWorkers

    ブール値(省略可)

    Service Worker

  • webSQL

    ブール値(省略可)

    ウェブサイトの WebSQL データ。

RemovalOptions

削除するデータを正確に決定するためのオプション。

プロパティ

  • excludeOrigins

    文字列 [] 省略可

    Chrome 74 以降

    指定した場合、このリストに含まれるオリジンのデータは削除から除外されます。origins と併用することはできません。Cookie、ストレージ、キャッシュについてのみサポートされます。登録可能なドメイン全体で Cookie が除外されます。

  • originTypes

    オブジェクト(省略可)

    クリアするオリジンのタイプをプロパティに指定しているオブジェクト。このオブジェクトが指定されていない場合は、デフォルトで「保護されていない」オリジンのみがクリアされます。「ProtectedWeb」や「extensions」を追加する前に、本当にアプリケーション データを削除することを確認してください。

    • 拡張機能

      ブール値(省略可)

      ユーザーがインストールした拡張機能とパッケージ化アプリケーションです(ご注意ください)。

    • protectedWeb

      ブール値(省略可)

      ホスト型アプリケーションとしてインストールされているウェブサイトです(ご注意ください)。

    • unprotectedWeb

      ブール値(省略可)

      通常のウェブサイト。

  • オリジン

    [string, ...string[]] optional

    Chrome 74 以降

    存在する場合は、このリストにあるオリジンのデータのみが削除されます。Cookie、ストレージ、キャッシュについてのみサポートされます。登録可能なドメイン全体の Cookie が消去されます。

  • 開始:

    数値(省略可)

    エポックからのミリ秒単位で表される、この日付以降に蓄積されたデータを削除します(JavaScript の Date オブジェクトの getTime メソッドでアクセスできます)。指定されていない場合、デフォルトの 0 が使用されます(すべての閲覧データが削除されます)。

メソッド

remove()

Promise
chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
  callback?: function,
)

ユーザーのプロフィールに保存されている各種の閲覧データを消去します。

パラメータ

  • オプション
  • dataToRemove

    削除するデータ型のセット。

  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeAppcache()

Promise
chrome.browsingData.removeAppcache(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトのアプリキャッシュ データを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeCache()

Promise
chrome.browsingData.removeCache(
  options: RemovalOptions,
  callback?: function,
)

ブラウザのキャッシュをクリアします。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeCacheStorage()

Promise Chrome 72 以降
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトのキャッシュ ストレージ データを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeCookies()

Promise
chrome.browsingData.removeCookies(
  options: RemovalOptions,
  callback?: function,
)

特定の期間内に変更されたブラウザの Cookie とサーバーバインド証明書を消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeDownloads()

Promise
chrome.browsingData.removeDownloads(
  options: RemovalOptions,
  callback?: function,
)

ブラウザのダウンロード ファイルのリストを消去します(ダウンロードされたファイル自体は消去されます)。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeFileSystems()

Promise
chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトのファイル システム データを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeFormData()

Promise
chrome.browsingData.removeFormData(
  options: RemovalOptions,
  callback?: function,
)

ブラウザに保存されているフォームデータ(自動入力)を消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeHistory()

Promise
chrome.browsingData.removeHistory(
  options: RemovalOptions,
  callback?: function,
)

ブラウザの履歴を消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeIndexedDB()

Promise
chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトの IndexedDB データを削除します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeLocalStorage()

Promise
chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトのローカル ストレージ データを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removePasswords()

Promise
chrome.browsingData.removePasswords(
  options: RemovalOptions,
  callback?: function,
)

ブラウザに保存されているパスワードを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removePluginData()

Promise Chrome 88 以降非推奨
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

Flash のサポートは終了しました。この関数は効果がありません。

プラグインのデータをクリアします。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeServiceWorkers()

Promise Chrome 72 以降
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトの Service Worker を消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

removeWebSQL()

Promise
chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
  callback?: function,
)

ウェブサイトの WebSQL データを消去します。

パラメータ

  • オプション
  • callback

    関数(省略可)

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

    () => void

戻り値

  • Promise<void>

    Chrome 96 以降

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

settings()

Promise
chrome.browsingData.settings(
  callback?: function,
)

[閲覧履歴データの消去] 設定 UI で現在選択されているデータの種類をレポートします。注: この API に含まれるデータ型の一部は、設定 UI では利用できません。また、一部の UI 設定では、ここに示す複数のデータ型が制御されます。

パラメータ

  • callback

    関数(省略可)

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

    (result: object) => void

    • 件の結果

      オブジェクト

      • dataRemovalPermitted

        結果にはすべてのタイプが含まれ、削除が許可されている場合(エンタープライズ ポリシーなどで)は true、そうでない場合は false の値が設定されます。

      • dataToRemove

        結果にはすべての型が含まれ、両方を選択して削除を許可している場合は true、それ以外の場合は false になります。

      • オプション

戻り値

  • Promise<object>

    Chrome 96 以降

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