chrome.browsingData

תיאור

כדי להסיר נתוני גלישה מהפרופיל המקומי של המשתמש, יש להשתמש ב-chrome.browsingData API.

הרשאות

browsingData

כדי להשתמש ב-API הזה, עליך להצהיר על ההרשאה "browsingData" במניפסט התוסף.

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

מושגים ושימוש

מקרה השימוש הפשוט ביותר ל-API זה הוא מנגנון מבוסס-זמן לניקוי נתוני הגלישה של משתמש. הקוד צריך לספק חותמת זמן שמציינת את התאריך ההיסטורי שאחריו צריך להסיר את נתוני הגלישה של המשתמש. הפורמט של חותמת הזמן הזו הוא מספר אלפיות השנייה מאז תחילת התהליך של יוניקס (Unix epoch) (שניתן לאחזר מאובייקט Date של JavaScript באמצעות השיטה getTime()).

לדוגמה, כדי לנקות את כל נתוני הגלישה של משתמש מהשבוע האחרון, אפשר לכתוב קוד באופן הבא:

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.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);

סוגי מקורות

הוספה של מאפיין 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 הזה, התקינו את הדוגמה של BrowseData API מהמאגר chrome-extension-samples.

סוגים

DataTypeSet

קבוצה של סוגי נתונים. סוגי נתונים חסרים מפוענחים כ-false.

תכונות

  • מטמון האפליקציה

    בוליאני אופציונלי

    קובצי מטמון של אתרים.

  • קובץ שמור

    בוליאני אופציונלי

    במטמון הדפדפן.

  • 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

    אובייקט אופציונלי

    אובייקט שהמאפיינים שלו מציינים את סוגי המקורות שצריך לנקות. אם האובייקט הזה לא יצוין, כברירת מחדל המערכת תמחק רק מקורות 'לא מוגנים'. חשוב לוודא באמת להסיר את נתוני האפליקציה לפני שמוסיפים 'ProtectWeb' או 'extensions'.

    • תוסף

      בוליאני אופציונלי

      תוספים ואפליקציות ארוזות שהמשתמש התקין (זהירות!).

    • protectedWeb

      בוליאני אופציונלי

      אתרים שהותקנו כאפליקציות מתארחות (זהירות!).

    • unprotectedWeb

      בוליאני אופציונלי

      אתרים רגילים.

  • מקורות

    string[] אופציונלי

    Chrome 74 ומעלה

    אם הרשימה קיימת, רק הנתונים של המקורות שברשימה הזו נמחקים. נתמך רק עבור קובצי cookie, אחסון ומטמון. קובצי ה-cookie נמחקים מכל הדומיין שניתן לרשום.

  • מאז

    מספר אופציונלי

    הסר נתונים שהצטברו בתאריך זה או אחריו, המיוצגים באלפיות שנייה מאז תחילת התהליך (נגיש באמצעות שיטת getTime של אובייקט Date של JavaScript). אם השדה חסר, ברירת המחדל שלו היא 0 (פעולה זו תסיר את כל נתוני הגלישה).

שיטות

remove()

הבטחה
chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
  callback?: function,
)

ניקוי סוגים שונים של נתוני גלישה המאוחסנים בפרופיל המשתמש.

פרמטרים

  • אפשרויות
  • dataToRemove

    קבוצת סוגי הנתונים להסרה.

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeAppcache()

הבטחה
chrome.browsingData.removeAppcache(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני מטמון האפליקציה באתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeCache()

הבטחה
chrome.browsingData.removeCache(
  options: RemovalOptions,
  callback?: function,
)

ניקוי המטמון בדפדפן.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeCacheStorage()

Promise Chrome 72 ואילך
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני אחסון במטמון של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeCookies()

הבטחה
chrome.browsingData.removeCookies(
  options: RemovalOptions,
  callback?: function,
)

מנקה את קובצי ה-Cookie של הדפדפן ואת האישורים הקשורים לשרת שהשתנו במסגרת זמן מסוימת.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeDownloads()

הבטחה
chrome.browsingData.removeDownloads(
  options: RemovalOptions,
  callback?: function,
)

ניקוי רשימת הקבצים שהורדו בדפדפן (לא הקבצים שהורדו עצמם).

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeFileSystems()

הבטחה
chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני מערכת קבצים של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeFormData()

הבטחה
chrome.browsingData.removeFormData(
  options: RemovalOptions,
  callback?: function,
)

מנקה את נתוני הטופס המאוחסנים בדפדפן (מילוי אוטומטי).

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeHistory()

הבטחה
chrome.browsingData.removeHistory(
  options: RemovalOptions,
  callback?: function,
)

ניקוי של היסטוריית הדפדפן.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeIndexedDB()

הבטחה
chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני IndexedDB של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeLocalStorage()

הבטחה
chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני האחסון המקומי של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removePasswords()

הבטחה
chrome.browsingData.removePasswords(
  options: RemovalOptions,
  callback?: function,
)

ניקוי הסיסמאות המאוחסנות בדפדפן.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removePluginData()

הבטחה הוצא משימוש מאז Chrome 88
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

התמיכה ב-Flash הוסרה. לפונקציה הזו אין השפעה.

ניקוי הנתונים של יישומי הפלאגין.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeServiceWorkers()

Promise Chrome 72 ואילך
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
  callback?: function,
)

ניקוי קובצי שירות (service worker) של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

removeWebSQL()

הבטחה
chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
  callback?: function,
)

ניקוי נתוני WebSQL של אתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    ()=>void

החזרות

  • Promise<void>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

settings()

הבטחה
chrome.browsingData.settings(
  callback?: function,
)

דוחות על סוגי הנתונים שנבחרו בשלב זה בממשק המשתמש של ההגדרות 'ניקוי נתוני גלישה'. הערה: חלק מסוגי הנתונים הכלולים ב-API הזה לא זמינים בממשק המשתמש של ההגדרות, והגדרות מסוימות של ממשק המשתמש שולטות ביותר מסוג נתונים אחד שמפורט כאן.

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (result: object)=>void

    • תוצאה אחת

      אובייקט

      • dataRemovalPermitted

        כל הסוגים יופיעו בתוצאה, עם הערכים של true אם מותר להסיר אותם (למשל, בהתאם למדיניות הארגון) ו-false אם לא.

      • dataToRemove

        כל הסוגים יופיעו בתוצאה, עם הערכים true אם שניהם נבחרו להסרה ומותר להסיר אותם, אחרת false.

      • אפשרויות

החזרות

  • Promise<object>

    Chrome 96 ומעלה

    יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.