chrome.types

คำอธิบาย

chrome.types API มีการประกาศประเภทสำหรับ Chrome

การตั้งค่า Chrome

ประเภท ChromeSetting มีชุดฟังก์ชันทั่วไป (get(), set() และ clear()) รวมถึงผู้เผยแพร่เหตุการณ์ (onChange) สำหรับการตั้งค่าของเบราว์เซอร์ Chrome ตัวอย่างการตั้งค่าพร็อกซีสาธิตวิธีการใช้งานฟังก์ชันเหล่านี้

ขอบเขตและวงจร

Chrome จะแยกความแตกต่างระหว่างขอบเขตของการตั้งค่าเบราว์เซอร์ที่แตกต่างกัน 3 แบบ ดังนี้

regular
การตั้งค่าที่กำหนดไว้ในขอบเขต regular จะมีผลกับหน้าต่างเบราว์เซอร์ปกติและจะรับค่าจากหน้าต่างที่ไม่ระบุตัวตนหากไม่มีการเขียนทับ การตั้งค่าเหล่านี้จะจัดเก็บลงในดิสก์และจะยังคงอยู่จนกว่าส่วนขยายที่ควบคุมจะล้างการตั้งค่าเหล่านี้ หรือส่วนขยายที่ควบคุมถูกปิดใช้หรือถอนการติดตั้ง
incognito_persistent
การตั้งค่าที่กำหนดไว้ในขอบเขต incognito_persistent จะมีผลกับหน้าต่างที่ไม่ระบุตัวตนเท่านั้น โดยจะลบล้างการตั้งค่าของ regular การตั้งค่าเหล่านี้จะจัดเก็บลงในดิสก์และจะยังคงอยู่จนกว่าส่วนขยายที่ควบคุมจะล้างการตั้งค่าเหล่านี้ หรือส่วนขยายที่ควบคุมถูกปิดใช้หรือถอนการติดตั้ง
incognito_session_only
การตั้งค่าที่กำหนดไว้ในขอบเขต incognito_session_only จะมีผลกับหน้าต่างที่ไม่ระบุตัวตนเท่านั้น โดยจะลบล้างการตั้งค่าของ regular และ incognito_persistent การตั้งค่าเหล่านี้จะไม่จัดเก็บไว้ในดิสก์และจะถูกล้างเมื่อปิดหน้าต่างที่ไม่ระบุตัวตนสุดท้าย โดยจะตั้งค่าได้ก็ต่อเมื่อ มีหน้าต่างที่ไม่ระบุตัวตนเปิดอยู่อย่างน้อย 1 หน้าต่าง

ลำดับความสำคัญ

Chrome จะจัดการการตั้งค่าในเลเยอร์ต่างๆ รายการต่อไปนี้อธิบายเลเยอร์ที่อาจมีอิทธิพลต่อการตั้งค่าที่มีประสิทธิภาพ โดยเรียงลำดับตามลำดับความสำคัญ

  1. การตั้งค่าระบบจากระบบปฏิบัติการ
  2. พารามิเตอร์บรรทัดคำสั่ง
  3. การตั้งค่าจากส่วนขยาย
  4. นโยบาย

จากรายการที่บอกเป็นนัย นโยบายอาจมีผลเหนือกว่าการเปลี่ยนแปลงใดๆ ที่คุณระบุไว้กับส่วนขยายของคุณ คุณสามารถใช้ฟังก์ชัน get() เพื่อระบุว่าส่วนขยายจะกำหนดค่าได้หรือไม่หรือตั้งค่าให้ลบล้างการตั้งค่านี้

ตามที่ได้กล่าวไว้ก่อนหน้านี้ Chrome อนุญาตให้ใช้การตั้งค่าที่ต่างกันสำหรับหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน ตัวอย่างต่อไปนี้แสดงลักษณะการทำงาน สมมติว่าไม่มีนโยบายใดที่ลบล้างการตั้งค่า และส่วนขยายสามารถตั้งค่าสำหรับหน้าต่างปกติ (R) และการตั้งค่าสำหรับหน้าต่างที่ไม่ระบุตัวตน (I) ได้

  • หากตั้งค่าไว้เพียง (R) การตั้งค่าเหล่านี้จะมีผลทั้งสำหรับหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน
  • หากมีการตั้งค่าเพียง (I) การตั้งค่าเหล่านี้จะมีผลกับหน้าต่างที่ไม่ระบุตัวตนเท่านั้น หน้าต่างปกติใช้การตั้งค่าที่กำหนดโดยเลเยอร์ที่ต่ำกว่า (ตัวเลือกบรรทัดคำสั่งและการตั้งค่าระบบ)
  • หากตั้งค่าทั้ง (R) และ (I) ระบบจะใช้การตั้งค่าที่เกี่ยวข้องสำหรับหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน

หากมีส่วนขยายตั้งแต่ 2 รายการขึ้นไปต้องการกำหนดการตั้งค่าเดียวกันเป็นค่าที่ต่างกัน ส่วนขยายที่ติดตั้งล่าสุดจะมีความสำคัญเหนือกว่าส่วนขยายอื่นๆ หากส่วนขยายที่ติดตั้งล่าสุดตั้งค่าเฉพาะ (I) การตั้งค่าของหน้าต่างปกติจะกำหนดโดยส่วนขยายที่ติดตั้งไว้ก่อนหน้านี้

ค่าที่มีผลของการตั้งค่าคือค่าที่เกิดจากการพิจารณากฎลำดับความสำคัญ ที่ Chrome ใช้

ประเภท

ChromeSetting

อินเทอร์เฟซที่อนุญาตการเข้าถึงการตั้งค่าเบราว์เซอร์ Chrome ดูตัวอย่างได้ที่ accessibilityFeatures

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

  • onChange

    เหตุการณ์<functionvoid>

    เริ่มทำงานหลังจากการเปลี่ยนแปลงการตั้งค่า

    ฟังก์ชัน onChange.addListener มีลักษณะดังนี้

    (callback: function)=> {...}

    • Callback

      ฟังก์ชัน

      พารามิเตอร์ callback มีลักษณะดังนี้

      (details: object)=>void

      • รายละเอียด

        ออบเจ็กต์

        • incognitoSpecific

          บูลีน ไม่บังคับ

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

        • levelOfControl

          ระดับการควบคุมการตั้งค่า

        • value

          T

          ค่าของการตั้งค่าหลังการเปลี่ยนแปลง

  • ล้าง

    void

    สัญญา

    ล้างการตั้งค่าและคืนค่าเริ่มต้น

    ฟังก์ชัน clear มีลักษณะดังนี้

    (details: object,callback?: function)=> {...}

    • รายละเอียด

      ออบเจ็กต์

      การตั้งค่าที่ต้องการล้าง

      • ขอบเขต

        ChromeSettingScope ไม่บังคับ

        ตำแหน่งสำหรับล้างการตั้งค่า (ค่าเริ่มต้น: ปกติ)

    • Callback

      ฟังก์ชัน ไม่บังคับ

      พารามิเตอร์ callback มีลักษณะดังนี้

      ()=>void

    • returns

      Promise<void>

      Chrome 96 ขึ้นไป

      Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

  • รับ

    void

    สัญญา

    รับค่าของการตั้งค่า

    ฟังก์ชัน get มีลักษณะดังนี้

    (details: object,callback?: function)=> {...}

    • รายละเอียด

      ออบเจ็กต์

      การตั้งค่าที่ควรพิจารณา

      • ไม่ระบุตัวตน

        บูลีน ไม่บังคับ

        ต้องการส่งคืนค่าที่ใช้กับเซสชันไม่ระบุตัวตนหรือไม่ (ค่าเริ่มต้นเท็จ)

    • Callback

      ฟังก์ชัน ไม่บังคับ

      พารามิเตอร์ callback มีลักษณะดังนี้

      (details: object)=>void

      • รายละเอียด

        ออบเจ็กต์

        รายละเอียดของค่าที่มีผลในปัจจุบัน

        • incognitoSpecific

          บูลีน ไม่บังคับ

          ค่าที่มีผลมีไว้สำหรับเซสชันไม่ระบุตัวตนหรือไม่ พร็อพเพอร์ตี้นี้จะปรากฏเฉพาะเมื่อพร็อพเพอร์ตี้ incognito ในพารามิเตอร์ details ของ get() เป็นจริง

        • levelOfControl

          ระดับการควบคุมการตั้งค่า

        • value

          T

          ค่าของการตั้งค่า

    • returns

      Promise<object>

      Chrome 96 ขึ้นไป

      Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

  • ตั้งค่า

    void

    สัญญา

    กำหนดมูลค่าของการตั้งค่า

    ฟังก์ชัน set มีลักษณะดังนี้

    (details: object,callback?: function)=> {...}

    • รายละเอียด

      ออบเจ็กต์

      การตั้งค่าที่จะเปลี่ยน

      • ขอบเขต

        ChromeSettingScope ไม่บังคับ

        ตำแหน่งที่จะตั้งค่า (ค่าเริ่มต้น: ปกติ)

      • value

        T

        ค่าของการตั้งค่า โปรดทราบว่าการตั้งค่าทุกรายการจะมีประเภทค่าที่เฉพาะเจาะจง ซึ่งอธิบายไว้ร่วมกับการตั้งค่า ส่วนขยายควรไม่กำหนดค่าประเภทอื่น

    • Callback

      ฟังก์ชัน ไม่บังคับ

      พารามิเตอร์ callback มีลักษณะดังนี้

      ()=>void

    • returns

      Promise<void>

      Chrome 96 ขึ้นไป

      Manifest V3 ขึ้นไปรองรับคำสัญญา แต่จะใช้โค้ดเรียกกลับเพื่อความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 ฟีเจอร์ในการเรียกใช้ฟังก์ชันเดียวกันได้ คำสัญญาจะยุติด้วยประเภทเดียวกันกับที่ส่งไปยังโค้ดเรียกกลับ

ChromeSettingScope

Chrome 44 ขึ้นไป

ขอบเขตของ ChromeSetting หนึ่งใน

  • regular: การตั้งค่าสำหรับโปรไฟล์ปกติ (ซึ่งโปรไฟล์ที่ไม่ระบุตัวตนจะรับค่ามาหากไม่มีการลบล้างจากที่อื่น)
  • regular\_only: การตั้งค่าสำหรับโปรไฟล์ปกติเท่านั้น (ไม่รับค่าโดยโปรไฟล์ที่ไม่ระบุตัวตน)
  • incognito\_persistent: การตั้งค่าสำหรับโปรไฟล์ที่ไม่ระบุตัวตนซึ่งคงอยู่หลังการรีสตาร์ทเบราว์เซอร์ (ลบล้างค่ากำหนดปกติ)
  • incognito\_session\_only: การตั้งค่าสำหรับโปรไฟล์ที่ไม่ระบุตัวตนที่ตั้งค่าได้ในระหว่างเซสชันไม่ระบุตัวตนเท่านั้น และจะถูกลบเมื่อเซสชันไม่ระบุตัวตนสิ้นสุดลง (ลบล้างค่ากำหนดปกติและโหมดไม่ระบุตัวตน)

ค่าแจกแจง

"regular_only"

LevelOfControl

Chrome 44 ขึ้นไป

หนึ่งใน

  • not\_controllable: ควบคุมโดยส่วนขยายใดๆ ไม่ได้
  • controlled\_by\_other\_extensions: ควบคุมโดยส่วนขยายที่มีลำดับความสำคัญสูงกว่า
  • controllable\_by\_this\_extension: ควบคุมได้ด้วยส่วนขยายนี้
  • controlled\_by\_this\_extension: ควบคุมโดยส่วนขยายนี้

ค่าแจกแจง

"not_controllable"

"controlled_by_other_extensions"

"controllable_by_this_extension"

"controlled_by_this_extension"