توضیحات
از API chrome.privacy برای کنترل استفاده از ویژگیهایی در کروم که میتوانند بر حریم خصوصی کاربر تأثیر بگذارند، استفاده کنید. این API برای دریافت و تنظیم پیکربندی کروم، به نمونه اولیه ChromeSetting از نوع API متکی است.
مجوزها
privacyبرای استفاده از API، باید مجوز "privacy" را در فایل manifest افزونه خود اعلام کنید. برای مثال:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
مفاهیم و کاربردها
خواندن مقدار فعلی یک تنظیم کروم ساده است. ابتدا باید ویژگی مورد نظر خود را پیدا کنید، سپس تابع get() را روی آن شیء فراخوانی کنید تا مقدار فعلی و سطح کنترل افزونه خود را بازیابی کنید. به عنوان مثال، برای تعیین اینکه آیا ویژگی تکمیل خودکار فرم کارت اعتباری کروم فعال است یا خیر، باید بنویسید:
chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
تغییر مقدار یک تنظیم کمی پیچیدهتر است، زیرا ابتدا باید تأیید کنید که افزونه شما میتواند آن تنظیم را کنترل کند. اگر افزونه شما تنظیمی را تغییر دهد که یا توسط سیاستهای سازمانی به مقدار خاصی قفل شده باشد ( levelOfControl روی "not_controllable" تنظیم میشود)، یا اگر افزونه دیگری مقدار را کنترل کند ( levelOfControl روی "controlled_by_other_extensions" تنظیم میشود)، کاربر هیچ تغییری در تنظیمات خود نخواهد دید. فراخوانی set() موفقیتآمیز خواهد بود، اما تنظیم بلافاصله لغو میشود. از آنجایی که این ممکن است گیجکننده باشد، توصیه میشود وقتی تنظیماتی که کاربر انتخاب کرده است عملاً اعمال نمیشوند، به او هشدار دهید.
این یعنی شما باید از متد get() برای تعیین سطح دسترسی خود استفاده کنید، و سپس فقط در صورتی که افزونه شما بتواند کنترل تنظیمات را در دست بگیرد، set() را فراخوانی کنید (در واقع اگر افزونه شما نمیتواند تنظیمات را کنترل کند، احتمالاً ایده خوبی است که این ویژگی را به صورت بصری غیرفعال کنید تا از سردرگمی کاربر جلوگیری شود):
chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (chrome.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", chrome.runtime.lastError);
}
});
}
});
اگر به تغییرات در مقدار یک تنظیم علاقهمند هستید، یک شنونده به رویداد onChange آن اضافه کنید. در میان کاربردهای دیگر، این به شما امکان میدهد در صورتی که افزونهای که اخیراً نصب شده است کنترل یک تنظیم را در دست بگیرد، یا اگر سیاست سازمانی کنترل شما را نادیده بگیرد، به کاربر هشدار دهید. به عنوان مثال، برای گوش دادن به تغییرات در وضعیت تکمیل خودکار کارت اعتباری، کد زیر کافی است:
chrome.privacy.services.autofillCreditCardEnabled.onChange.addListener(
function (details) {
// The new value is stored in `details.value`, the new level of control
// in `details.levelOfControl`, and `details.incognitoSpecific` will be
// `true` if the value is specific to Incognito mode.
}
);
مثالها
برای امتحان کردن این API، نمونهی رابط برنامهنویسی کاربردی حریم خصوصی را از مخزن chrome-extension-samples نصب کنید.
انواع
IPHandlingPolicy
سیاست مدیریت IP در WebRTC
شمارشی
"پیشفرض" "رابطهای_عمومی_و_خصوصی_پیشفرض" "فقط رابط_عمومی_پیشفرض" "غیرفعال کردن_udp_بدون_پروکسی"
خواص
network
تنظیماتی که به طور کلی بر نحوه مدیریت اتصالات شبکه توسط کروم تأثیر میگذارند.
نوع
شیء
خواص
- پیشبینی شبکه فعال شد
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم تلاش میکند با پیشپردازش ورودیهای DNS و باز کردن پیشگیرانه اتصالات TCP و SSL به سرورها، سرعت مرور وب شما را افزایش دهد. این ترجیح فقط بر اقدامات انجام شده توسط سرویس پیشبینی داخلی کروم تأثیر میگذارد. این ترجیح بر پیشپردازشها یا پیشاتصالهای آغاز شده توسط صفحه وب تأثیری ندارد. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - سیاست مدیریت وبRTCIPHکروم ۴۸+
به کاربران اجازه دهید تا بدهبستانهای عملکرد/حریم خصوصی رسانه را که بر نحوه مسیریابی ترافیک WebRTC و میزان افشای اطلاعات آدرس محلی تأثیر میگذارد، مشخص کنند. مقدار این ترجیح از نوع IPHandlingPolicy است و به طور پیشفرض روی
defaultتنظیم شده است.
services
تنظیماتی که ویژگیهایی را فعال یا غیرفعال میکنند که به سرویسهای شبکه شخص ثالث ارائه شده توسط گوگل و ارائه دهنده جستجوی پیشفرض شما نیاز دارند.
نوع
شیء
خواص
- alternateErrorPagesEnabled
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم از یک سرویس وب برای کمک به رفع خطاهای ناوبری استفاده میکند. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - تکمیل خودکارآدرسفعال
types.ChromeSetting <boolean>
کروم ۷۰+در صورت فعال بودن، کروم پیشنهاد میدهد که آدرسها و سایر دادههای فرم را به طور خودکار پر کند. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - تکمیل خودکارکارت اعتباریفعال
types.ChromeSetting <boolean>
کروم ۷۰+در صورت فعال بودن، کروم پیشنهاد میدهد که فرمهای کارت اعتباری را به طور خودکار پر کند. مقدار این تنظیمات یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - تکمیل خودکار فعال
types.ChromeSetting <boolean>
از کروم ۷۰ منسوخ شده استلطفاً از privacy.services.autofillAddressEnabled و privacy.services.autofillCreditCardEnabled استفاده کنید. این موارد برای سازگاری با نسخههای قبلی در این نسخه باقی مانده و در آینده حذف خواهند شد.
در صورت فعال بودن، کروم پیشنهاد میدهد که فرمها را به صورت خودکار پر کند. مقدار این تنظیمات یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - autofillOtherDatatypesEnabled
types.ChromeSetting <boolean>
در حال بررسیدر صورت فعال بودن، کروم پیشنهاد میدهد که سایر انواع دادهها را به طور خودکار پر کند. این شامل اسناد سفر و هویت میشود. مقدار این تنظیمات یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - ذخیره رمز عبور فعال شد
types.ChromeSetting <boolean>
در صورت فعال بودن، مدیر رمز عبور از شما میپرسد که آیا میخواهید رمزهای عبور را ذخیره کنید یا خیر. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - مرور ایمن فعال شد
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم تمام تلاش خود را میکند تا از شما در برابر فیشینگ و بدافزار محافظت کند. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - مرور ایمنگسترشگزارشدهیفعال
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم هنگام مسدود کردن یک صفحه توسط SafeBrowsing، اطلاعات اضافی مانند محتوای صفحه مسدود شده را به گوگل ارسال میکند. مقدار این تنظیمات یک مقدار بولی است و به طور پیشفرض روی
falseتنظیم شده است. - جستجوپیشنهادفعال
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم متنی را که در Omnibox تایپ میکنید به موتور جستجوی پیشفرض شما ارسال میکند، که پیشبینیهایی از وبسایتها و جستجوهایی را ارائه میدهد که احتمالاً تکمیلکنندهی آنچه تاکنون تایپ کردهاید هستند. مقدار این تنظیمات یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است. - spellingServiceEnabled
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم از یک سرویس وب برای کمک به اصلاح خطاهای املایی استفاده میکند. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
falseتنظیم شده است. - translationServiceEnabled
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم پیشنهاد میدهد صفحاتی را که به زبانی که شما میخوانید نیستند ترجمه کند. مقدار این ترجیح یک مقدار بولی است و به طور پیشفرض روی
trueتنظیم شده است.
websites
تنظیماتی که تعیین میکنند کروم چه اطلاعاتی را در اختیار وبسایتها قرار دهد.
نوع
شیء
خواص
- اندازهگیری فعال شده توسط adMeasurement
types.ChromeSetting <boolean>
کروم ۱۱۱+در صورت غیرفعال بودن، API گزارشدهی نسبتدهی و API تجمیع خصوصی غیرفعال میشوند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. افزونهها فقط میتوانند با تنظیم مقدارfalseاین APIها را غیرفعال کنند. اگر سعی کنید این APIها را رویtrueتنظیم کنید، خطایی رخ میدهد. - doNotTrackEnabled
types.ChromeSetting <boolean>
کروم ۶۵+در صورت فعال بودن، کروم هدر «ردیابی نشود» (
DNT: 1) را به همراه درخواستهای شما ارسال میکند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آنfalseاست. - fleegeEnabled
types.ChromeSetting <boolean>
کروم ۱۱۱+در صورت غیرفعال بودن، Fledge API غیرفعال میشود. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. افزونهها فقط میتوانند با تنظیم مقدارfalseاین API را غیرفعال کنند. اگر سعی کنید این API را رویtrueتنظیم کنید، خطایی رخ میدهد. - hyperlinkAuditingEnabled
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم پینگهای حسابرسی را در صورت درخواست یک وبسایت (
<a ping>) ارسال میکند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آنtrueاست. - محتوای محافظتشدهفعال
types.ChromeSetting <boolean>
فقط در ویندوز و ChromeOS موجود است : در صورت فعال بودن، Chrome یک شناسه منحصر به فرد به افزونهها ارائه میدهد تا محتوای محافظتشده را اجرا کنند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. - ارجاعدهندگانفعال
types.ChromeSetting <boolean>
در صورت فعال بودن، کروم هدرهای
refererرا به همراه درخواستهای شما ارسال میکند. بله، نام این تنظیمات با هدر اشتباه تایپی مطابقت ندارد. خیر، ما آن را تغییر نخواهیم داد. مقدار این تنظیمات از نوع بولی است و مقدار پیشفرض آنtrueاست. types.ChromeSetting <boolean>
کروم ۱۲۱+اگر غیرفعال باشد، مجموعههای وبسایت مرتبط غیرفعال میشوند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. افزونهها فقط میتوانند با تنظیم مقدار رویfalse، این API را غیرفعال کنند. اگر سعی کنید این API را رویtrueتنظیم کنید، خطایی رخ میدهد.- کوکیهای شخص ثالث مجاز
types.ChromeSetting <boolean>
اگر غیرفعال باشد، کروم سایتهای شخص ثالث را از تنظیم کوکیها منع میکند. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. افزونهها ممکن است این API را در حالت ناشناس فعال نکنند، جایی که کوکیهای شخص ثالث مسدود شدهاند و فقط در سطح سایت مجاز هستند. اگر سعی کنید این API را در حالت ناشناس روی درست تنظیم کنید، خطایی رخ میدهد.توجه: سایتهای شخصی ممکن است همچنان بتوانند به کوکیهای شخص ثالث دسترسی داشته باشند، حتی زمانی که این API مقدار
falseبرمیگرداند، اگر معافیت معتبری داشته باشند یا از API دسترسی به فضای ذخیرهسازی استفاده کنند. - موضوعاتفعال
types.ChromeSetting <boolean>
کروم ۱۱۱+اگر غیرفعال باشد، API موضوعات غیرفعال میشود. مقدار این ترجیح از نوع بولی است و مقدار پیشفرض آن
trueاست. افزونهها فقط میتوانند با تنظیم مقدار رویfalse، این API را غیرفعال کنند. اگر سعی کنید این API را رویtrueتنظیم کنید، خطایی رخ میدهد.