chrome.browsingData

說明

使用 chrome.browsingData API 從使用者本機設定檔移除瀏覽資料。

權限

browsingData

您必須在擴充功能資訊清單中宣告 "browsingData" 權限,才能使用這個 API。

{
  "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 。以確保同步處理能夠繼續運作, 這些資料最終可能會在伺服器上刪除不過,越具體的 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);
敬上

來源類型

originTypes 屬性新增至 API 選項物件,即可指定 最有效率的部分來源可分為三個類別:

  • 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 範例 Cloud Storage 也提供目錄同步處理功能

類型

DataTypeSet

一組資料類型。缺少的資料類型會解譯為 false

屬性

  • 應用程式快取

    布林值 選填

    網站應用程式快取。

  • 快取

    布林值 選填

    瀏覽器的快取。

  • cacheStorage

    布林值 選填

    Chrome 72 以上版本

    快取儲存空間

  • Cookie

    布林值 選填

    瀏覽器的 Cookie。

  • 下載內容

    布林值 選填

    瀏覽器的下載清單。

  • fileSystems

    布林值 選填

    網站以及檔案系統

  • formData

    布林值 選填

    瀏覽器的表單資料。

  • 歷史

    布林值 選填

    瀏覽器的歷史記錄。

  • indexedDB

    布林值 選填

    網站索引資料庫資料。

  • localStorage

    布林值 選填

    網站本機儲存資料

  • 密碼

    布林值 選填

    已儲存密碼。

  • pluginData

    布林值 選填

    自 Chrome 88 版起已淘汰

    已停止支援 Flash。系統會忽略這個資料類型。

    外掛程式資料。

  • serverBoundCertificates

    布林值 選填

    自 Chrome 76 版起已淘汰

    已停止支援伺服器繫結憑證。系統會忽略這個資料類型。

    伺服器繫結憑證。

  • serviceWorkers

    布林值 選填

    Service Worker。

  • webSQL

    布林值 選填

    網站WebSQL 資料。

RemovalOptions

用於決定要移除哪些資料的選項。

屬性

  • excludeOrigins

    string[] 選填

    Chrome 74 以上版本

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

  • originTypes

    物件 optional

    該物件的屬性會指定要清除哪些來源類型。如未指定這個物件,則預設為僅清除「未受保護的」請確定你「確實」想移除應用程式資料,再新增「ProtectWeb」或「extensions」。

    • 擴充功能

      布林值 選填

      使用者安裝的擴充功能和封裝應用程式 (請「謹慎」!)

    • protectedWeb

      布林值 選填

      以代管應用程式形式安裝的網站 (請小心!)。

    • unprotectedWeb

      布林值 選填

      一般網站。

  • 起源

    [string, ...string[]] 選填

    Chrome 74 以上版本

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

  • 開始於

    編號 選填

    移除這個日期當天或之後累積的資料,以自紀元以來的毫秒數表示 (透過 JavaScript Date 物件的 getTime 方法存取)。如果沒有,則預設為 0 (會移除所有瀏覽資料)。

方法

remove()

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

清除使用者設定檔中儲存的各種瀏覽資料類型。

參數

  • dataToRemove

    要移除的資料類型組合。

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeAppcache()

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

清除網站appcache 資料。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeCache()

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

清除瀏覽器的快取。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeCacheStorage()

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

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

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeCookies()

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

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

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeDownloads()

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

清除瀏覽器的下載檔案清單 (「而非」下載的檔案)。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeFileSystems()

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

清除網站檔案系統資料

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeFormData()

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

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

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeHistory()

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

清除瀏覽器的紀錄。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeIndexedDB()

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

清除網站索引資料庫資料。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeLocalStorage()

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

清除網站本機儲存資料

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removePasswords()

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

清除瀏覽器儲存的密碼。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removePluginData()

Promise 自 Chrome 88 版起已淘汰
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

已停止支援 Flash。這個函式不會產生任何作用。

清除外掛程式資料。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeServiceWorkers()

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

清除網站Service Worker。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

removeWebSQL()

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

清除網站WebSQL 資料。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

settings()

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

目前在「清除瀏覽資料」中選取的資料類型設定使用者介面。注意:設定使用者介面不提供這個 API 中包含的某些資料類型。部分 UI 設定可控管這裡列出的多種資料類型。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    (result: object) => void

    • 結果

      物件

      • dataRemovalPermitted

        所有型別都會在結果中顯示,如果允許移除 (例如根據企業政策),則值為 true;如果不允許,則值為 false

      • dataToRemove

        如果同時選取移除且允許移除,所有類型都會出現在結果中,如果同時選取 true,則會顯示 false

傳回

  • Promise&lt;object&gt;

    Chrome 96 以上版本

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。