chrome.browsingData

תיאור

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

הרשאות

browsingData

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

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

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

התרחיש לדוגמה הפשוט ביותר ל-API הזה הוא מנגנון מבוסס-זמן לניקוי נתוני הגלישה של המשתמש. הקוד צריך לספק חותמת זמן שמציינת את התאריך ההיסטורי שאחריו צריך להסיר את נתוני הגלישה של המשתמש. חותמת הזמן הזו מופיעה בפורמט של מספר אלפיות השנייה שעברו מאז תחילת יוניקס (Unix epoch) (שאפשר לאחזר מאובייקט Date של JavaScript באמצעות method 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);

אם המשתמש מסנכרן את הנתונים, יכול להיות שאחרי מחיקת קובץ ה-cookie של חשבון הסנכרון ייווצר מחדש באופן אוטומטי קובץ ה-cookie של chrome.browsingData.remove(). המטרה היא לוודא שהסנכרון יוכל להמשיך לפעול כך שהנתונים יימחקו בסופו של דבר בשרת. עם זאת, במקרה הזה אפשר להשתמש ב-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 הזה, מתקינים את הדוגמה שלbrowsingData API מהמאגר chrome-extension-Sample.

סוגים

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' או 'תוספים'.

    • תוסף

      ערך בוליאני אופציונלי

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

    • protectedWeb

      ערך בוליאני אופציונלי

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

    • unprotectedWeb

      ערך בוליאני אופציונלי

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

  • מקורות

    [string, ...string[]] optional

    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()

מבטיח 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()

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

ניקוי קובצי השירות של האתרים.

פרמטרים

  • אפשרויות
  • קריאה חוזרת (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) לצורך תאימות לאחור. לא ניתן להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה ניתנת לפתרון באותו הסוג שמועבר לקריאה החוזרת.