chrome.privacy

คำอธิบาย

ใช้ chrome.privacy API เพื่อควบคุมการใช้งานฟีเจอร์ใน Chrome ที่อาจส่งผลต่อความเป็นส่วนตัวของผู้ใช้ API นี้ใช้ ChromeSetting โปรโตไทป์ของประเภท API เพื่อรับและตั้งค่าการกําหนดค่าของ Chrome

สิทธิ์

privacy

คุณต้องประกาศสิทธิ์ "ความเป็นส่วนตัว" ใน Manifest ของส่วนขยายเพื่อใช้ 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_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 นี้ ให้ติดตั้งตัวอย่าง privacy API จากที่เก็บchrome-extension-samples

ประเภท

IPHandlingPolicy

Chrome 48 ขึ้นไป

นโยบายการจัดการ IP ของ WebRTC

ค่าแจกแจง

"default"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

พร็อพเพอร์ตี้

network

การตั้งค่าที่ส่งผลต่อการจัดการการเชื่อมต่อเครือข่ายของ Chrome โดยทั่วไป

ประเภท

ออบเจ็กต์

พร็อพเพอร์ตี้

  • networkPredictionEnabled

    หากเปิดใช้ Chrome จะพยายามเร่งประสบการณ์การท่องเว็บของคุณโดยแก้ไขรายการ DNS ล่วงหน้าและเปิดการเชื่อมต่อ TCP และ SSL กับเซิร์ฟเวอร์ล่วงหน้า ค่ากำหนดนี้จะส่งผลต่อการดำเนินการที่บริการคาดการณ์ภายในของ Chrome ดำเนินการเท่านั้น แต่จะไม่ได้ส่งผลต่อการเตรียมล่วงหน้าหรือการเชื่อมต่อล่วงหน้าที่หน้าเว็บเริ่ม ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • webRTCIPHandlingPolicy
    Chrome 48 ขึ้นไป

    อนุญาตให้ผู้ใช้ระบุการแลกเปลี่ยนประสิทธิภาพสื่อ/ความเป็นส่วนตัว ซึ่งส่งผลต่อการกำหนดเส้นทางการรับส่งข้อมูล WebRTC และปริมาณข้อมูลที่อยู่ภายในที่เปิดเผย ค่าของค่ากําหนดนี้เป็นประเภท IPHandlingPolicy โดยค่าเริ่มต้นคือ default

services

การตั้งค่าที่เปิดหรือปิดใช้ฟีเจอร์ที่ต้องใช้บริการเครือข่ายของบุคคลที่สามซึ่ง Google และผู้ให้บริการการค้นหาเริ่มต้นของคุณเป็นผู้จัดหา

ประเภท

ออบเจ็กต์

พร็อพเพอร์ตี้

  • alternateErrorPagesEnabled

    หากเปิดใช้ Chrome จะใช้เว็บเซอร์วิสเพื่อช่วยแก้ไขข้อผิดพลาดในการนําทาง ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • autofillAddressEnabled
    Chrome 70 ขึ้นไป

    หากเปิดใช้ Chrome จะเสนอให้กรอกที่อยู่และข้อมูลแบบฟอร์มอื่นๆ โดยอัตโนมัติ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • autofillCreditCardEnabled
    Chrome 70 ขึ้นไป

    หากเปิดใช้ Chrome จะเสนอให้กรอกแบบฟอร์มบัตรเครดิตโดยอัตโนมัติ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • autofillEnabled
    เลิกใช้งานแล้วตั้งแต่ Chrome 70

    โปรดใช้ privacy.services.autofillAddressEnabled และ privacy.services.autofillCreditCardEnabled ตัวเลือกนี้จะยังคงอยู่เพื่อใช้งานย้อนหลังได้ในรุ่นนี้และจะถูกนําออกในอนาคต

    หากเปิดใช้ Chrome จะเสนอให้กรอกแบบฟอร์มโดยอัตโนมัติ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • passwordSavingEnabled

    หากเปิดใช้ เครื่องมือจัดการรหัสผ่านจะถามว่าคุณต้องการบันทึกรหัสผ่านหรือไม่ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • safeBrowsingEnabled

    หากเปิดใช้ Chrome จะปกป้องคุณจากฟิชชิงและมัลแวร์อย่างสุดความสามารถ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • safeBrowsingExtendedReportingEnabled

    หากเปิดใช้ Chrome จะส่งข้อมูลเพิ่มเติมไปยัง Google เมื่อ SafeBrowsing บล็อกหน้าเว็บ เช่น เนื้อหาของหน้าที่ถูกบล็อก ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น false

  • searchSuggestEnabled

    หากเปิดใช้อยู่ Chrome จะส่งข้อความที่คุณพิมพ์ในแถบอเนกประสงค์ไปยังเครื่องมือค้นหาเริ่มต้น ซึ่งจะแสดงการคาดคะเนเว็บไซต์และการค้นหาที่น่าจะเป็นไปได้ซึ่งเติมต่อจากสิ่งที่คุณพิมพ์มาจนถึงตอนนี้ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

  • spellingServiceEnabled

    หากเปิดใช้ Chrome จะใช้บริการเว็บเพื่อช่วยแก้ไขข้อผิดพลาดในการสะกดคำ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น false

  • translationServiceEnabled

    หากเปิดใช้ Chrome จะเสนอการแปลหน้าเว็บที่ไม่ได้อยู่ในภาษาที่คุณอ่านได้ ค่าของค่ากําหนดนี้คือบูลีน โดยค่าเริ่มต้นจะเป็น true

websites

การตั้งค่าที่กำหนดข้อมูลซึ่ง Chrome จะให้เว็บไซต์เข้าถึงได้

ประเภท

ออบเจ็กต์

พร็อพเพอร์ตี้

  • adMeasurementEnabled
    Chrome 111 ขึ้นไป

    หากปิดใช้ ระบบจะปิดใช้งาน Attribution Reporting API และ Private Aggregation API ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true ส่วนขยายจะปิดใช้ API เหล่านี้ได้โดยการตั้งค่าเป็น false เท่านั้น หากคุณพยายามตั้งค่า API เหล่านี้เป็น true ระบบจะแสดงข้อผิดพลาด

  • doNotTrackEnabled
    Chrome 65 ขึ้นไป

    หากเปิดใช้ Chrome จะส่งส่วนหัว "Do Not Track" (DNT: 1) ไปพร้อมกับคำขอ ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ false

  • fledgeEnabled
    Chrome 111 ขึ้นไป

    หากปิดใช้ ระบบจะปิดใช้งาน Fledge API ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true ส่วนขยายจะปิดใช้ API นี้ได้โดยการกําหนดค่าเป็น false เท่านั้น หากคุณพยายามตั้งค่า API นี้เป็น true ระบบจะแสดงข้อผิดพลาด

  • hyperlinkAuditingEnabled

    หากเปิดใช้ Chrome จะส่งคําสั่ง ping การตรวจสอบเมื่อเว็บไซต์ขอ (<a ping>) ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true

  • protectedContentEnabled

    ใช้ได้ใน Windows และ ChromeOS เท่านั้น: หากเปิดใช้ Chrome จะกำหนดรหัสที่ไม่ซ้ำกันให้กับปลั๊กอินเพื่อเรียกใช้เนื้อหาที่ได้รับการคุ้มครอง ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true

  • referrersEnabled

    หากเปิดใช้ Chrome จะส่งส่วนหัว referer ไปพร้อมกับคำขอ ใช่ ชื่อของค่ากําหนดนี้ไม่ตรงกับส่วนหัวที่สะกดผิด ไม่ เราจะไม่เปลี่ยนแปลง ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true

  • relatedWebsiteSetsEnabled
    Chrome 121 ขึ้นไป

    หากปิดใช้ ระบบจะปิดใช้งานชุดเว็บไซต์ที่เกี่ยวข้อง ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true ส่วนขยายจะปิดใช้ API นี้ได้โดยการกําหนดค่าเป็น false เท่านั้น หากคุณพยายามตั้งค่า API นี้เป็น true ระบบจะแสดงข้อผิดพลาด

  • thirdPartyCookiesAllowed

    หากปิดใช้ Chrome จะบล็อกเว็บไซต์ของบุคคลที่สามไม่ให้ตั้งค่าคุกกี้ ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true

    **หมายเหตุ:**เว็บไซต์แต่ละแห่งอาจยังคงเข้าถึงคุกกี้ของบุคคลที่สามได้เมื่อ API นี้แสดงผลเป็น false หากมีข้อยกเว้นที่ถูกต้องหรือใช้ Storage Access API แทน

  • topicsEnabled
    Chrome 111 ขึ้นไป

    หากปิดใช้ Topics API จะปิดใช้งาน ค่าของค่ากําหนดนี้เป็นประเภทบูลีน และค่าเริ่มต้นคือ true ส่วนขยายจะปิดใช้ API นี้ได้โดยการกําหนดค่าเป็น false เท่านั้น หากคุณพยายามตั้งค่า API นี้เป็น true ระบบจะแสดงข้อผิดพลาด