شرح
از chrome.browsingData API برای برداشتن دادههای مرور از نمایه محلی کاربر استفاده کنید.
اجازهها
browsingDataبرای استفاده از این میانای برنامهسازی کاربردی، باید اجازه "browsingData" را در مانیفست افزونه اعلام کنید.
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
مفاهیم و کاربرد
سادهترین مورد استفاده برای این میانای برنامهسازی کاربردی، سازوکاری مبتنی بر زمان برای پاک کردن دادههای مرور کاربر است.
کد شما باید مُهر زمانی ارائه دهد که تاریخ گذشتهای را نشان دهد که پساز آن دادههای مرور کاربر باید برداشته شود. این مُهر زمان بهصورت تعداد میلیثانیهها از تاریخ یونیکس قالببندی شده است (که میتوان آن را از شیء Date جاوا اسکریپت بااستفاده از روش 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;
browser.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);
روش browser.browsingData.remove() به شما امکان میدهد انواع مختلف دادههای مرور را با یک فراخوانی بردارید و بسیار سریعتر از فراخوانی چندین روش خاصتر خواهد بود. اما اگر
فقط میخواهید یک نوع خاص از دادههای مرور (مثلاً کوکیها) را پاک کنید، روشهای دقیقتر
جایگزین خوانایی برای فراخوانی پر از 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;
browser.browsingData.removeCookies({
"since": oneWeekAgo
}, callback);
اگر کاربر درحال همگامسازی دادههایش باشد، browser.browsingData.remove() ممکن است پساز پاک کردن کوکی،
آن را بهطور خودکار برای حساب «همگامسازی» بازسازی کند. این کار برای اطمینان از این است که «همگامسازی» بتواند به کار خود ادامه دهد تا
دادهها درنهایت از سرور حذف شوند. بااینحال، از
browser.browsingData.removeCookies() خاصتر میتوان برای پاک کردن کوکی حساب «همگامسازی» استفاده کرد و در این حالت، «همگامسازی»
موقتاً متوقف خواهد شد.
مبدأهای خاص
برای برداشتن دادههای مربوط به مبدأی خاص یا برای مستثنی کردن مجموعهای از مبدأها از حذف، میتوانید از پارامترهای
RemovalOptions.origins و RemovalOptions.excludeOrigins استفاده کنید. این تنظیمات فقط برای کوکیها، حافظه پنهان، و فضای ذخیرهسازی (CacheStorage، FileSystems، IndexedDB، LocalStorage، ServiceWorkers، و WebSQL) اعمال میشود.
browser.browsingData.remove({
"origins": ["https://www.example.com"]
}, {
"cacheStorage": true,
"cookies": true,
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"serviceWorkers": true,
"webSQL": true
}, callback);
انواع مبدأ
افزودن ویژگی originTypes به شیء گزینههای میاناهای برنامهسازی کاربردی به شما امکان میدهد مشخص کنید کدام نوع از
مبدأها باید تحتتأثیر قرار بگیرند. مبدأها به سه دسته تقسیم میشوند:
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;
browser.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);
مثالها
برای امتحان کردن این میانای برنامهسازی کاربردی، نمونه browsingData API را از مخزن chrome-extension-samples نصب کنید.
انواع
DataTypeSet
مجموعهای از انواع داده. انواع دادههای موجود نیست بهعنوان false تفسیر میشوند.
مشخصات
-
حافظه نهان برنامه
بولی اختیاری
از Chrome 152 منسوخ شده استپشتیبانی از appcache برداشته شده است. این نوع داده نادیده گرفته خواهد شد.
حافظه پنهان برنامه وبسایتها.
-
حفظ کردن
بولی اختیاری
حافظه نهان مرورگر.
-
cacheStorage
بولی اختیاری
Chrome 72+ browser.* از Chrome 148فضای ذخیرهسازی حافظه پنهان
-
کوکیها
بولی اختیاری
کوکیهای مرورگر.
-
بارگیریها
بولی اختیاری
فهرست بارگیری مرورگر.
-
fileSystems
بولی اختیاری
سیستمهای فایل وبسایتها.
-
formData
بولی اختیاری
دادههای فرم ذخیرهشده مرورگر.
-
سابقه
بولی اختیاری
سابقه مرورگر.
-
indexedDB
بولی اختیاری
دادههای IndexedDB وبسایتها.
-
localStorage
بولی اختیاری
دادههای فضای ذخیرهسازی محلی وبسایتها.
-
گذرواژهها
بولی اختیاری
از Chrome 144 منسوخ شده استپشتیبانی از حذف گذرواژه ازطریق افزونهها برداشته شده است. این نوع داده نادیده گرفته خواهد شد.
گذرواژههای ذخیرهشده.
-
pluginData
بولی اختیاری
از Chrome 88 منسوخ شده استپشتیبانی از Flash برداشته شده است. این نوع داده نادیده گرفته خواهد شد.
دادههای افزایهها.
-
serverBoundCertificates
بولی اختیاری
از Chrome 76 منسوخ شده استپشتیبانی از گواهینامههای محدود به سرور برداشته شده است. این نوع داده نادیده گرفته خواهد شد.
گواهینامههای محدود به سرور.
-
serviceWorkers
بولی اختیاری
عاملان خدماتی.
-
webSQL
بولی اختیاری
از Chrome 152 منسوخ شده استپشتیبانی از WebSQL برداشته شده است. این نوع داده نادیده گرفته خواهد شد.
دادههای WebSQL وبسایتها.
RemovalOptions
گزینههایی که دقیقاً تعیین میکنند چه دادههایی برداشته خواهد شد.
مشخصات
-
excludeOrigins
رشته[] اختیاری
Chrome نسخه ۷۴ به بالا browser.* از Chrome نسخه ۱۴۸ به بعدوقتی وجود داشته باشد، دادههای مربوط به مبدأهای موجود در این فهرست از حذف مستثنی میشود. نمیتوانید از آن همراه با
originsاستفاده کنید. فقط برای کوکیها، فضای ذخیرهسازی، و حافظه پنهان پشتیبانی میشود. کوکیها برای کل دامنه قابلثبت مستثنی میشوند. -
originTypes
شیء اختیاری
شیئی که ویژگیهای آن مشخص میکند کدام نوع مبدأ باید پاک شود. اگر این شیء مشخص نشده باشد، بهطور پیشفرض فقط مبدأهای «محافظتنشده» پاک میشود. لطفاً قبلاز افزودن «protectedWeb» یا «extensions»، مطمئن شوید که واقعاً میخواهید دادههای برنامه را بردارید.
-
برنامهٔ افزودنی
بولی اختیاری
افزونهها و برنامههای بستهبندیشدهای که کاربر نصب کرده است (باید _واقعاً_ مراقب باشید!).
-
protectedWeb
بولی اختیاری
وبسایتهایی که بهعنوان برنامههای میزبانیشده نصب شدهاند (مراقب باشید!).
-
unprotectedWeb
بولی اختیاری
وبسایتهای عادی.
-
-
مبدأها
[رشته، ...رشته[]] اختیاری
Chrome نسخه ۷۴ به بالا browser.* از Chrome نسخه ۱۴۸ به بعدوقتی وجود داشته باشد، فقط دادههای مربوط به مبدأهای موجود در این فهرست حذف میشود. فقط برای کوکیها، فضای ذخیرهسازی، و حافظه پنهان پشتیبانی میشود. کوکیها برای کل دامنه قابلثبت پاک میشوند.
-
از
شماره اختیاری
دادههای جمعآوریشده در این تاریخ یا پساز آن را بردارید، که برحسب میلیثانیه از مبدأ زمانی نشان داده میشود (ازطریق روش
getTimeشیءDateجاوا اسکریپت قابلدسترسی است). اگر وجود نداشته باشد، بهطور پیشفرض ۰ است (که همه دادههای مرور را حذف میکند).
روشها
remove()
browser.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
): Promise<void>
انواع مختلف دادههای مرور ذخیرهشده در نمایه کاربر را پاک میکند.
پارامترها
-
گزینهها
-
dataToRemove
مجموعه انواع داده برای حذف.
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی حذف تکمیل شد، حل میشود.
removeAppcache()
browser.browsingData.removeAppcache(
options: RemovalOptions,
): Promise<void>
پشتیبانی از appcache برداشته شده است. این عملکرد تأثیری ندارد.
دادههای حافظه پنهان برنامه وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی دادههای appcache وبسایتها پاک شود، حل میشود.
removeCache()
browser.browsingData.removeCache(
options: RemovalOptions,
): Promise<void>
حافظه پنهان مرورگر را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی حافظه نهان مرورگر پاک شود، حل میشود.
removeCacheStorage()
browser.browsingData.removeCacheStorage(
options: RemovalOptions,
): Promise<void>
دادههای فضای ذخیرهسازی حافظه نهان وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی فضای ذخیرهسازی حافظه نهان وبسایتها پاک شود، مشکل برطرف میشود.
removeCookies()
browser.browsingData.removeCookies(
options: RemovalOptions,
): Promise<void>
کوکیهای مرورگر و گواهیهای محدود به سرور را که در بازه زمانی خاصی اصلاح شدهاند پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی کوکیهای مرورگر و گواهیهای محدود به سرور پاک شوند، حل میشود.
removeDownloads()
browser.browsingData.removeDownloads(
options: RemovalOptions,
): Promise<void>
فهرست فایلهای بارگیریشده مرورگر را پاک میکند (خود فایلهای بارگیریشده را پاک نمیکند).
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی فهرست فایلهای بارگیریشده مرورگر پاک شود، حل میشود.
removeFileSystems()
browser.browsingData.removeFileSystems(
options: RemovalOptions,
): Promise<void>
دادههای سیستم فایل وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی سیستمهای فایل وبسایتها پاک شده باشد، حل میشود.
removeFormData()
browser.browsingData.removeFormData(
options: RemovalOptions,
): Promise<void>
دادههای فرم ذخیرهشده مرورگر (تکمیل خودکار) را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی دادههای فرم مرورگر پاک شود، حل میشود.
removeHistory()
browser.browsingData.removeHistory(
options: RemovalOptions,
): Promise<void>
سابقه مرورگر را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی سابقه مرورگر پاک شود، مشکل برطرف میشود.
removeIndexedDB()
browser.browsingData.removeIndexedDB(
options: RemovalOptions,
): Promise<void>
دادههای IndexedDB وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی دادههای IndexedDB وبسایتها پاک شود، حل میشود.
removeLocalStorage()
browser.browsingData.removeLocalStorage(
options: RemovalOptions,
): Promise<void>
دادههای فضای ذخیرهسازی محلی وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی فضای ذخیرهسازی محلی وبسایتها پاک شود، حل میشود.
removePasswords()
browser.browsingData.removePasswords(
options: RemovalOptions,
): Promise<void>
پشتیبانی از حذف گذرواژه ازطریق افزونهها برداشته شده است. این عملکرد تأثیری ندارد.
گذرواژههای ذخیرهشده مرورگر را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی گذرواژههای مرورگر پاک شده باشد، حل میشود.
removePluginData()
browser.browsingData.removePluginData(
options: RemovalOptions,
): Promise<void>
پشتیبانی از Flash برداشته شده است. این عملکرد تأثیری ندارد.
دادههای افزونهها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی دادههای افزونهها پاک شود، حل میشود.
removeServiceWorkers()
browser.browsingData.removeServiceWorkers(
options: RemovalOptions,
): Promise<void>
سرویسکاران وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی کارگران خدمات وبسایتها پاک شوند، حل میشود.
removeWebSQL()
browser.browsingData.removeWebSQL(
options: RemovalOptions,
): Promise<void>
پشتیبانی از WebSQL برداشته شده است. این عملکرد تأثیری ندارد.
دادههای WebSQL وبسایتها را پاک میکند.
پارامترها
-
گزینهها
بازگشتیها
-
Promise<void>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وقتی پایگاههای داده WebSQL وبسایتها پاک شده باشد، حل میشود.
settings()
browser.browsingData.settings(): Promise<object>
گزارش میدهد که کدام نوع دادهها درحالحاضر در واسط کاربر تنظیمات «پاک کردن دادههای مرور» انتخاب شدهاند. توجه: برخیاز انواع دادههای موجود در این میانای برنامهسازی کاربردی در واسط کاربر تنظیمات دردسترس نیستند و برخیاز تنظیمات واسط کاربر بیشاز یک نوع داده فهرستشده در اینجا را کنترل میکنند.
بازگشتیها
-
Promise<object>
Chrome نسخه ۹۶ و بالاتر browser.* از Chrome نسخه ۱۴۸