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