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() 方法可讓您透過單一呼叫移除各種瀏覽資料,速度比呼叫多個更具體的方法快得多。不過,如果您只想清除特定類型的瀏覽資料 (例如 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.originsRemovalOptions.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 屬性,即可指定應受影響的來源類型。來源分為三類:

  • unprotectedWeb涵蓋使用者造訪網站的一般情況,不需採取任何特殊動作。如果未指定 originTypes,API 預設會從未受保護的網頁來源移除資料。
  • protectedWeb 涵蓋已安裝為代管應用程式的網頁來源。 舉例來說,安裝「憤怒鳥」可保護來源 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

    布林值 選填

    網站的應用程式快取。

  • 快取

    布林值 選填

    瀏覽器的快取。

  • cacheStorage

    布林值 選填

    Chrome 72 以上版本

    快取儲存空間

  • Cookie

    布林值 選填

    瀏覽器的 Cookie。

  • 下載內容

    布林值 選填

    瀏覽器的下載清單。

  • fileSystems

    布林值 選填

    網站的檔案系統。

  • formData

    布林值 選填

    瀏覽器儲存的表單資料。

  • 記錄

    布林值 選填

    瀏覽器的記錄。

  • indexedDB

    布林值 選填

    網站的 IndexedDB 資料。

  • localStorage

    布林值 選填

    網站的本機儲存空間資料。

  • 密碼

    布林值 選填

    已儲存的密碼。

  • pluginData

    布林值 選填

    Chrome 88 版起已淘汰

    我們已移除 Flash 支援。系統會忽略這類資料類型。

    外掛程式的資料。

  • serverBoundCertificates

    布林值 選填

    Chrome 76 版起已淘汰

    已移除伺服器繫結憑證的支援。系統會忽略這類資料類型。

    繫結至伺服器的憑證。

  • serviceWorkers

    布林值 選填

    Service Worker。

  • webSQL

    布林值 選填

    網站的 WebSQL 資料。

RemovalOptions

可選擇要移除哪些資料。

屬性

  • excludeOrigins

    字串陣列 選用

    Chrome 74 以上版本

    如果存在,系統就不會刪除這份清單中來源的資料。無法與 origins 搭配使用。僅支援 Cookie、儲存空間和快取。系統會排除整個可註冊網域的 Cookie。

  • originTypes

    object 選填

    這個物件的屬性會指定應清除哪些來源類型。如未指定這個物件,系統預設只會清除「未受保護」的來源。新增「protectedWeb」或「extensions」前,請務必確實要移除應用程式資料。

    • 擴充功能

      布林值 選填

      使用者安裝的擴充功能和封裝應用程式 (請_非常_小心!)。

    • protectedWeb

      布林值 選填

      已安裝為託管應用程式的網站 (請小心!)。

    • unprotectedWeb

      布林值 選填

      一般網站。

  • 來源

    [string, ...string[]] 選用

    Chrome 74 以上版本

    如果提供這份清單,系統只會刪除清單中來源的資料。僅支援 Cookie、儲存空間和快取。系統會清除整個可註冊網域的 Cookie。

  • 開始於

    號碼 選填

    移除自這個日期起累積的資料,以自 Epoch 紀元起算的毫秒數表示 (可透過 JavaScript Date 物件的 getTime 方法存取)。如果未指定,預設值為 0 (會移除所有瀏覽資料)。

方法

remove()

chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
)
: Promise<void>

清除使用者個人資料中儲存的各種瀏覽資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeAppcache()

chrome.browsingData.removeAppcache(
  options: RemovalOptions,
)
: Promise<void>

清除網站的應用程式快取資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeCache()

chrome.browsingData.removeCache(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器的快取。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeCacheStorage()

Chrome 72 以上版本
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
)
: Promise<void>

清除網站的快取儲存空間資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeCookies()

chrome.browsingData.removeCookies(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器在特定時間範圍內修改的 Cookie 和伺服器繫結憑證。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeDownloads()

chrome.browsingData.removeDownloads(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器中的已下載檔案清單 (不是已下載的檔案本身)。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeFileSystems()

chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
)
: Promise<void>

清除網站的檔案系統資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeFormData()

chrome.browsingData.removeFormData(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器儲存的表單資料 (自動填入)。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeHistory()

chrome.browsingData.removeHistory(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器的記錄。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeIndexedDB()

chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
)
: Promise<void>

清除網站的 IndexedDB 資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeLocalStorage()

chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
)
: Promise<void>

清除網站的本機儲存空間資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removePasswords()

chrome.browsingData.removePasswords(
  options: RemovalOptions,
)
: Promise<void>

清除瀏覽器儲存的密碼。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removePluginData()

Chrome 88 版起已淘汰
chrome.browsingData.removePluginData(
  options: RemovalOptions,
)
: Promise<void>

我們已移除 Flash 支援。這項函式不會有任何作用。

清除外掛程式的資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeServiceWorkers()

Chrome 72 以上版本
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
)
: Promise<void>

清除網站的 Service Worker。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

removeWebSQL()

chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
)
: Promise<void>

清除網站的 WebSQL 資料。

參數

傳回

  • Promise<void>

    Chrome 96 以上版本

settings()

chrome.browsingData.settings(): Promise<object>

報告目前在「清除瀏覽資料」設定使用者介面中選取的資料類型。注意:這個 API 包含的部分資料類型無法在設定使用者介面中使用,且部分使用者介面設定會控管這裡列出的多種資料類型。

傳回

  • Promise<object>

    Chrome 96 以上版本