الوصف
استخدِم واجهة برمجة التطبيقات chrome.privacy للتحكّم في استخدام الميزات في Chrome التي يمكن أن تؤثر في خصوصية المستخدم. تعتمد واجهة برمجة التطبيقات هذه على النموذج الأولي ChromeSetting من واجهة برمجة التطبيقات من النوع API للحصول على إعدادات Chrome وضبطها.
الأذونات
privacyعليك الإعلان عن إذن "الخصوصية" في ملف بيان الإضافة لاستخدام واجهة برمجة التطبيقات. على سبيل المثال:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
المفاهيم والاستخدام
إنّ قراءة القيمة الحالية لإعداد في Chrome أمر بسيط. عليك أولاً العثور على السمة التي تهمّك، ثم استدعاء get() على هذا العنصر لاسترداد قيمته الحالية ومستوى التحكّم في الإضافة. على سبيل المثال، لتحديد ما إذا كانت ميزة الملء التلقائي لبطاقات الائتمان في Chrome مفعّلة، عليك كتابة ما يلي:
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.
}
);
أمثلة
لتجربة واجهة برمجة التطبيقات هذه، ثبِّت مثال واجهة برمجة التطبيقات privacy API من مستودع chrome-extension-samples.
الأنواع
AutofillBlockedType
فئات بيانات الملء التلقائي.
تعداد
"contact_info"
"payments"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
سياسة معالجة عنوان IP على WebRTC.
تعداد
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
الخصائص
network
الإعدادات التي تؤثر في طريقة تعامل Chrome مع اتصالات الشبكة بشكل عام.
النوع
عنصر
الخصائص
-
networkPredictionEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يحاول Chrome تسريع تجربة تصفّح الويب من خلال حلّ إدخالات نظام أسماء النطاقات مسبقًا، وفتح اتصالات بروتوكول التحكّم في الإرسال (TCP) وبروتوكول طبقة المقابس الآمنة (SSL) بشكل استباقي مع الخوادم، وتحميل الصفحات مسبقًا. يؤدي إيقاف هذا الإعداد إلى إلغاء قدرة مالكي المواقع الإلكترونية على تحميل المحتوى بشكل استباقي (مثل الجلب المسبق أو العرض المسبق من خلال Speculation Rules API). ولا يؤثر ذلك في عمليات الاتصال المسبق أو عمليات الجلب المسبق لنظام أسماء النطاقات التي تبدأها صفحة الويب. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
webRTCIPHandlingPolicyالإصدار Chrome 48 والإصدارات الأحدث
يسمح هذا الإعداد للمستخدمين بتحديد المقايضات بين أداء الوسائط والخصوصية، ما يؤثر في طريقة توجيه زيارات WebRTC ومقدار معلومات العنوان المحلي المعروضة. قيمة هذا الإعداد هي من النوع IPHandlingPolicy، والقيمة التلقائية هي
default.
services
الإعدادات التي تفعِّل أو توقف الميزات التي تتطلب خدمات شبكة خارجية مقدَّمة من Google ومزوّد البحث التلقائي.
النوع
عنصر
الخصائص
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يستخدم Chrome خدمة ويب للمساعدة في حلّ أخطاء التنقّل. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 70 والإصدارات الأحدثإذا كانت هذه الميزة مفعّلة، يقترح Chrome ملء العناوين وبيانات النماذج الأخرى تلقائيًا. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 70 والإصدارات الأحدثإذا كانت هذه الميزة مفعّلة، يقترح Chrome ملء نماذج بطاقات الائتمان تلقائيًا. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
autofillEnabled
types.ChromeSetting<boolean>
تم إيقاف هذه الميزة نهائيًا منذ الإصدار Chrome 70يُرجى استخدام privacy.services.autofillAddressEnabled وprivacy.services.autofillCreditCardEnabled. سيظل هذا الإعداد متاحًا لتحقيق التوافق مع الإصدارات السابقة في هذا الإصدار، وستتم إزالته في المستقبل.
إذا كانت هذه الميزة مفعّلة، يقترح Chrome ملء النماذج تلقائيًا. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، سيطلب منك مدير كلمات المرور حفظ كلمات المرور. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يبذل Chrome قصارى جهده لحمايتك من التصيّد الاحتيالي والبرامج الضارة. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، سيرسل Chrome معلومات إضافية إلى Google عندما تحظر ميزة "التصفّح الآمن" صفحة، مثل محتوى الصفحة المحظورة. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يرسل Chrome النص الذي تكتبه في المربّع المتعدد الاستخدامات إلى محرك البحث التلقائي، الذي يقدّم اقتراحات للمواقع الإلكترونية وعمليات البحث التي من المحتمل أن تكون عمليات إكمال لما كتبته حتى الآن. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يستخدم Chrome خدمة ويب للمساعدة في تصحيح الأخطاء الإملائية. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يقترح Chrome ترجمة الصفحات التي ليست بلغة تقرأها. قيمة هذا الإعداد هي قيمة منطقية، والقيمة التلقائية هي
true.
websites
الإعدادات التي تحدّد المعلومات التي يتيحها Chrome للمواقع الإلكترونية.
النوع
عنصر
الخصائص
-
adMeasurementEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 111 والإصدارات الأحدثإذا كانت هذه الميزة غير مفعّلة، يتم إيقاف Attribution Reporting API وPrivate Aggregation API. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. لا يمكن للإضافات إيقاف واجهات برمجة التطبيقات هذه إلا من خلال ضبط القيمة علىfalse. إذا حاولت ضبط واجهات برمجة التطبيقات هذه علىtrue، سيظهر خطأ. -
doNotTrackEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 65 والإصدارات الأحدثإذا كانت هذه الميزة مفعّلة، يرسل Chrome عنوان "عدم التتبّع" (
DNT: 1) مع طلباتك. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هيfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 111 والإصدارات الأحدثإذا كانت هذه الميزة غير مفعّلة، يتم إيقاف Fledge API. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. لا يمكن للإضافات إيقاف واجهة برمجة التطبيقات هذه إلا من خلال ضبط القيمة علىfalse. إذا حاولت ضبط واجهة برمجة التطبيقات هذه علىtrue، سيظهر خطأ. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يرسل Chrome إشعارات تدقيق عندما يطلبها موقع إلكتروني (
<a ping>). قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هيtrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
متاحة على نظامَي التشغيل Windows وChromeOS فقط: إذا كانت هذه الميزة مفعّلة، يوفّر Chrome رقم تعريف فريدًا للإضافات من أجل عرض المحتوى المحمي. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. -
referrersEnabled
types.ChromeSetting<boolean>
إذا كانت هذه الميزة مفعّلة، يرسل Chrome عناوين
refererمع طلباتك. نعم، لا يتطابق اسم هذا الإعداد مع العنوان الذي يحتوي على خطأ إملائي. لا، لن نغيّره. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هيtrue. -
types.ChromeSetting<boolean>
الإصدار Chrome 121 والإصدارات الأحدثإذا كانت هذه الميزة غير مفعّلة، يتم إيقاف ميزة "مجموعة المواقع الإلكترونية المرتبطة". قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. لا يمكن للإضافات إيقاف واجهة برمجة التطبيقات هذه إلا من خلال ضبط القيمة علىfalse. إذا حاولت ضبط واجهة برمجة التطبيقات هذه علىtrue، سيظهر خطأ. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
إذا كانت هذه الميزة غير مفعّلة، يمنع Chrome المواقع الإلكترونية الخارجية من ضبط ملفات تعريف الارتباط. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. لا يمكن للإضافات تفعيل واجهة برمجة التطبيقات هذه في وضع التصفّح المتخفي، حيث يتم حظر ملفات تعريف الارتباط الخارجية ولا يمكن السماح بها إلا على مستوى الموقع الإلكتروني. إذا حاولت ضبط واجهة برمجة التطبيقات هذه على "صحيح" في وضع التصفّح المتخفي، سيظهر خطأ.ملاحظة: قد تظل المواقع الإلكترونية الفردية قادرة على الوصول إلى ملفات تعريف الارتباط الخارجية عندما تعرض واجهة برمجة التطبيقات هذه القيمة
false، إذا كان لديها استثناء صالح أو إذا كانت تستخدم Storage Access API بدلاً من ذلك. -
topicsEnabled
types.ChromeSetting<boolean>
الإصدار Chrome 111 والإصدارات الأحدثإذا كانت هذه الميزة غير مفعّلة، يتم إيقاف Topics API. قيمة هذا الإعداد هي من النوع المنطقي، والقيمة التلقائية هي
true. لا يمكن للإضافات إيقاف واجهة برمجة التطبيقات هذه إلا من خلال ضبط القيمة علىfalse. إذا حاولت ضبط واجهة برمجة التطبيقات هذه علىtrue، سيظهر خطأ.