chrome.privacy (original) (raw)

توضیحات

از chrome.privacy API برای کنترل استفاده از ویژگی‌هایی در Chrome استفاده کنید که می‌تواند بر حریم خصوصی کاربر تأثیر بگذارد. این API برای دریافت و تنظیم پیکربندی Chrome به نمونه اولیه ChromeSetting از نوع API متکی است.

مجوزها

privacy

برای استفاده از API باید مجوز «حریم خصوصی» را در مانیفست برنامه افزودنی خود اعلام کنید. به عنوان مثال:

{
  "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_controlable" تنظیم می‌شود) یا اگر برنامه افزودنی دیگری این مقدار را کنترل کند ( 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، نمونه privacy API را از مخزن chrome-extension-samples نصب کنید.

انواع

IPHandlingPolicy

سیاست مدیریت IP WebRTC.

Enum

"پیش فرض"

"اینترفیس_پیش_فرض_عمومی_و_خصوصی"

"فقط_واسط_عمومی_پیش‌فرض"

"disable_non_proxied_udp"

خواص

network

تنظیماتی که به طور کلی بر مدیریت Chrome با اتصالات شبکه تأثیر می گذارد.

خواص

services

تنظیماتی که ویژگی‌هایی را فعال یا غیرفعال می‌کنند که به خدمات شبکه شخص ثالث ارائه شده توسط Google و ارائه‌دهنده جستجوی پیش‌فرض شما نیاز دارند.

خواص

websites

تنظیماتی که تعیین می‌کنند Chrome چه اطلاعاتی را در اختیار وب‌سایت‌ها قرار می‌دهد.

خواص