คำอธิบาย
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 จะจัดการการตั้งค่าในเลเยอร์ต่างๆ รายการต่อไปนี้อธิบายถึงเลเยอร์ที่อาจมีผลต่อการตั้งค่าที่มีผลบังคับใช้ โดยเรียงตามลำดับความสำคัญจากน้อยไปมาก
- การตั้งค่าระบบที่ระบบปฏิบัติการมีให้
- พารามิเตอร์บรรทัดคำสั่ง
- การตั้งค่าที่ได้จากส่วนขยาย
- นโยบาย
ตามที่ระบุไว้ในรายการ นโยบายอาจลบล้างการเปลี่ยนแปลงที่คุณระบุไว้ในส่วนขยาย คุณสามารถใช้ฟังก์ชัน get() เพื่อระบุว่าส่วนขยายสามารถให้การตั้งค่าได้หรือไม่ หรือการตั้งค่านี้จะถูกลบล้างหรือไม่
ตามที่ได้กล่าวไว้ก่อนหน้านี้ Chrome อนุญาตให้ใช้การตั้งค่าที่แตกต่างกันสำหรับหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน ตัวอย่างต่อไปนี้แสดงลักษณะการทำงานดังกล่าว สมมติว่าไม่มีนโยบายใดลบล้างการตั้งค่า และส่วนขยายสามารถตั้งค่าสำหรับหน้าต่างปกติ (R) และการตั้งค่าสำหรับหน้าต่างที่ไม่ระบุตัวตน (I) ได้
- หากตั้งค่าเฉพาะ (R) การตั้งค่าเหล่านี้จะมีผลกับทั้งหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน
- หากตั้งค่าเฉพาะ (I) การตั้งค่าเหล่านี้จะมีผลกับหน้าต่างที่ไม่ระบุตัวตนเท่านั้น หน้าต่างปกติจะใช้การตั้งค่าที่กำหนดโดยเลเยอร์ที่ต่ำกว่า (ตัวเลือกบรรทัดคำสั่งและการตั้งค่าระบบ)
- หากตั้งค่าทั้ง (R) และ (I) ระบบจะใช้การตั้งค่าที่เกี่ยวข้องสำหรับหน้าต่างปกติและหน้าต่างที่ไม่ระบุตัวตน
หากส่วนขยาย 2 รายการขึ้นไปต้องการตั้งค่าเดียวกันเป็นค่าที่ต่างกัน ส่วนขยายที่ติดตั้งล่าสุดจะมีลำดับความสำคัญเหนือกว่าส่วนขยายอื่นๆ หากส่วนขยายที่ติดตั้งล่าสุดตั้งค่าเฉพาะ (I) ส่วนขยายที่ติดตั้งก่อนหน้านี้จะกำหนดการตั้งค่าของหน้าต่างปกติได้
ค่าที่มีผลของการตั้งค่าคือค่าที่ได้จากการพิจารณากฎลำดับความสำคัญ Chrome จะใช้คีย์นี้
ประเภท
ChromeSetting
อินเทอร์เฟซที่อนุญาตให้เข้าถึงการตั้งค่าเบราว์เซอร์ Chrome ดูตัวอย่างได้ที่ accessibilityFeatures
พร็อพเพอร์ตี้
-
onChange
Event<functionvoidvoid>
เริ่มทำงานหลังจากเปลี่ยนการตั้งค่า
ฟังก์ชัน
onChange.addListenerจะมีลักษณะดังนี้(callback: function) => {...}
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
incognitoSpecific
บูลีน ไม่บังคับ
ค่าที่เปลี่ยนแปลงเป็นค่าเฉพาะสำหรับเซสชันไม่ระบุตัวตนหรือไม่ พร็อพเพอร์ตี้นี้จะแสดงเฉพาะเมื่อผู้ใช้เปิดใช้ส่วนขยายในโหมดไม่ระบุตัวตน
-
levelOfControl
ระดับการควบคุมของการตั้งค่า
-
value
T
ค่าของการตั้งค่าหลังการเปลี่ยนแปลง
-
-
-
-
ล้าง
void
ล้างการตั้งค่าและคืนค่าเริ่มต้น
ฟังก์ชัน
clearจะมีลักษณะดังนี้(details: object) => {...}
-
รายละเอียด
ออบเจ็กต์
การตั้งค่าที่ต้องการล้าง
-
ขอบเขต
ChromeSettingScope ไม่บังคับ
ตำแหน่งที่จะล้างการตั้งค่า (ค่าเริ่มต้น: ปกติ)
-
-
returns
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148เรียกใช้เมื่อการดำเนินการล้างเสร็จสมบูรณ์
-
-
รับ
void
รับค่าของการตั้งค่า
ฟังก์ชัน
getจะมีลักษณะดังนี้(details: object) => {...}
-
รายละเอียด
ออบเจ็กต์
การตั้งค่าที่ควรพิจารณา
-
ไม่ระบุตัวตน
บูลีน ไม่บังคับ
เลือกว่าจะแสดงผลค่าที่ใช้กับเซสชันไม่ระบุตัวตนหรือไม่ (ค่าเริ่มต้นคือเท็จ)
-
-
returns
Promise<object>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148
-
-
ตั้งค่า
void
ตั้งค่าของการตั้งค่า
ฟังก์ชัน
setจะมีลักษณะดังนี้(details: object) => {...}
-
รายละเอียด
ออบเจ็กต์
การตั้งค่าที่ต้องการเปลี่ยนแปลง
-
ขอบเขต
ChromeSettingScope ไม่บังคับ
ตำแหน่งที่จะตั้งค่า (ค่าเริ่มต้น: ปกติ)
-
value
T
ค่าของการตั้งค่า โปรดทราบว่าการตั้งค่าแต่ละรายการมีประเภทค่าที่เฉพาะเจาะจง ซึ่งอธิบายไว้พร้อมกับการตั้งค่า ส่วนขยายไม่ควรตั้งค่าเป็นประเภทอื่น
-
-
returns
Promise<void>
Chrome 96 ขึ้นไป browser.* ตั้งแต่ Chrome 148เรียกใช้เมื่อการดำเนินการชุดเสร็จสมบูรณ์
-
ChromeSettingScope
ขอบเขตของ ChromeSetting หนึ่งใน
regular: การตั้งค่าสำหรับโปรไฟล์ปกติ (ซึ่งโปรไฟล์ที่ไม่ระบุตัวตนจะรับค่ามาหากไม่มีการลบล้างที่อื่น)regular\_only: การตั้งค่าสำหรับโปรไฟล์ปกติเท่านั้น (โปรไฟล์ที่ไม่ระบุตัวตนจะไม่รับค่านี้)incognito\_persistent: การตั้งค่าสำหรับโปรไฟล์ที่ไม่ระบุตัวตนซึ่งจะยังคงอยู่แม้จะรีสตาร์ทเบราว์เซอร์ (ลบล้างค่ากำหนดปกติ)incognito\_session\_only: การตั้งค่าสำหรับโปรไฟล์ไม่ระบุตัวตนที่ตั้งค่าได้เฉพาะในระหว่างเซสชันไม่ระบุตัวตน และจะถูกลบเมื่อเซสชันไม่ระบุตัวตนสิ้นสุดลง (ลบล้างค่ากำหนดปกติและ incognito_persistent)
ค่าแจกแจง
"regular"
"regular_only"
"incognito_persistent"
"incognito_session_only"
LevelOfControl
หนึ่งใน
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"