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