คำอธิบาย
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
ค่าของการตั้งค่าหลังการเปลี่ยนแปลง
-
-
-
-
ล้าง
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
ขอบเขตของ ChromeSetting หนึ่งใน
regular
: การตั้งค่าสำหรับโปรไฟล์ปกติ (ซึ่งโปรไฟล์ที่ไม่ระบุตัวตนจะรับค่ามาหากไม่มีการลบล้างจากที่อื่น)regular\_only
: การตั้งค่าสำหรับโปรไฟล์ปกติเท่านั้น (ไม่รับค่าโดยโปรไฟล์ที่ไม่ระบุตัวตน)incognito\_persistent
: การตั้งค่าสำหรับโปรไฟล์ที่ไม่ระบุตัวตนซึ่งคงอยู่หลังการรีสตาร์ทเบราว์เซอร์ (ลบล้างค่ากำหนดปกติ)incognito\_session\_only
: การตั้งค่าสำหรับโปรไฟล์ที่ไม่ระบุตัวตนที่ตั้งค่าได้ในระหว่างเซสชันไม่ระบุตัวตนเท่านั้น และจะถูกลบเมื่อเซสชันไม่ระบุตัวตนสิ้นสุดลง (ลบล้างค่ากำหนดปกติและโหมดไม่ระบุตัวตน)
ค่าแจกแจง
"regular_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"