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 を消去した後に、その Cookie を自動的に再構築する場合があります。これは、同期が引き続き機能し、最終的にサーバー上のデータを削除できるようにするためです。ただし、より具体的な chrome.browsingData.removeCookies() を使用して同期アカウントの Cookie を消去すると、同期は一時停止されます。

特定のオリジン

特定のオリジンのデータを削除したり、オリジンのセットを削除対象から除外したりするには、RemovalOptions.origins パラメータと RemovalOptions.excludeOrigins パラメータを使用します。Cookie、キャッシュ、ストレージ(CacheStorage、FileSystems、IndexedDB、LocalStorage、ServiceWorker、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

    ブール値(省略可)

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

  • 履歴

    ブール値(省略可)

    ブラウザの履歴。

  • indexedDB

    ブール値(省略可)

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

  • localStorage

    ブール値(省略可)

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

  • 含まれていた

    ブール値(省略可)

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

  • pluginData

    ブール値(省略可)

    Chrome 88 以降でサポートが終了

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

    プラグインのデータ。

  • serverBoundCertificates

    ブール値(省略可)

    Chrome 76 以降でサポートが終了

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

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

  • serviceWorkers

    ブール値(省略可)

    Service Worker

  • webSQL

    ブール値(省略可)

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

RemovalOptions

削除するデータを正確に指定するオプション。

プロパティ

  • excludeOrigins

    string[] 省略可

    Chrome 74 以降

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

  • originTypes

    オブジェクト 省略可

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

    • 拡張機能

      ブール値(省略可)

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

    • protectedWeb

      ブール値(省略可)

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

    • unprotectedWeb

      ブール値(省略可)

      通常のウェブサイト。

  • オリジン

    string[] 省略可

    Chrome 74 以降

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

  • 開始:

    number(省略可)

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

Methods

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 は、コールバックに渡されたのと同じ型で解決されます。