תיאור
ה-API של chrome.types מכיל הצהרות על סוגים ל-Chrome.
הגדרות Chrome
הסוג ChromeSetting מספק קבוצה משותפת של פונקציות (get(), set() ו-clear()) וגם מפרסם אירועים (onChange) להגדרות של דפדפן Chrome. בדוגמאות להגדרות לשרת proxy מוסבר איך להשתמש בפונקציות האלה.
היקף ומחזור חיים
ב-Chrome יש הבחנה בין שלושה היקפים שונים של הגדרות הדפדפן:
regular- הגדרות שנקבעו בהיקף
regularחלות על חלונות רגילים של הדפדפן, ומועברות בירושה לחלונות פרטיים אם לא מחליפים אותן. ההגדרות האלה נשמרות בדיסק עד שהתוסף שמנהל אותן מוחק אותן, או עד שמשביתים או מסירים אותו. incognito_persistent- הגדרות שנקבעו בהיקף
incognito_persistentחלות רק על חלונות פרטיים. במקרים כאלה, הן מבטלות את ההגדרות שלregular. ההגדרות האלה נשמרות בדיסק ונשארות במקומן עד שהתוסף המנהל מוחק אותן, או עד שהתוסף המנהל מושבת או מוסר. incognito_session_only- הגדרות שנקבעו בהיקף
incognito_session_onlyחלות רק על חלונות פרטיים. ההגדרות האלה מבטלות את ההגדרות שלregularו-incognito_persistent. ההגדרות האלה לא נשמרות בדיסק, והן נמחקות כשסוגרים את החלון הפרטי האחרון. אפשר להגדיר אותן רק כשחלון פרטי אחד לפחות פתוח.
קדימות
ב-Chrome, ההגדרות מנוהלות בשכבות שונות. ברשימה הבאה מתוארות השכבות שעשויות להשפיע על ההגדרות בפועל, בסדר קדימות עולה.
- הגדרות המערכת שסופקו על ידי מערכת ההפעלה
- פרמטרים של שורת הפקודה
- הגדרות שסופקו על ידי תוספים
- מדיניות
כפי שמשתמע מהרשימה, כללי המדיניות עשויים לבטל כל שינוי שאתם מציינים באמצעות התוסף. אפשר להשתמש בפונקציה get() כדי לקבוע אם התוסף יכול לספק הגדרה או אם ההגדרה הזו תוחלף.
כמו שצוין קודם, ב-Chrome אפשר להשתמש בהגדרות שונות לחלונות רגילים ולחלונות פרטיים. הדוגמה הבאה ממחישה את ההתנהגות הזו. נניח שאין מדיניות שמבטלת את ההגדרות, ושתוסף יכול לקבוע הגדרות לחלונות רגילים (R) והגדרות לחלונות פרטיים (I).
- אם רק (R) מוגדר, ההגדרות האלה תקפות גם לחלונות רגילים וגם לחלונות פרטיים.
- אם רק (I) מוגדר, ההגדרות האלה תקפות רק לחלונות פרטיים. בחלונות רגילים, ההגדרות נקבעות לפי השכבות הנמוכות יותר (אפשרויות בשורת הפקודה והגדרות המערכת).
- אם גם (R) וגם (I) מוגדרות, ההגדרות המתאימות משמשות לחלונות רגילים ולחלונות פרטיים.
אם שני תוספים או יותר מנסים להגדיר את אותה הגדרה לערכים שונים, התוסף שהותקן אחרון מקבל קדימות על פני התוספים האחרים. אם התוסף שהותקן לאחרונה מגדיר רק את (I), ההגדרות של חלונות רגילים יכולות להיקבע על ידי תוספים שהותקנו קודם.
הערך בפועל של הגדרה הוא הערך שמתקבל אחרי שמתחשבים בכללי הקדימות. Chrome משתמש בו.
סוגים
ChromeSetting
ממשק שמאפשר גישה להגדרה של דפדפן Chrome. דוגמה מופיעה בקטע accessibilityFeatures.
מאפיינים
-
onChange
Event<functionvoidvoid>
מופעל אחרי שההגדרה משתנה.
הפונקציה
onChange.addListenerנראית כך:(callback: function) => {...}
-
callback
פונקציה
הפרמטר
callbackנראה כך:(details: object) => void
-
פרטים
אובייקט
-
incognitoSpecific
בוליאני אופציונלי
אם הערך שהשתנה ספציפי לגלישה הפרטית. המאפיין הזה יהיה קיים רק אם המשתמש הפעיל את התוסף במצב פרטי.
-
levelOfControl
רמת השליטה בהגדרה.
-
ערך
T
הערך של ההגדרה אחרי השינוי.
-
-
-
-
נקה
void
מנקה את ההגדרה ומשחזרת את ערך ברירת המחדל.
הפונקציה
clearנראית כך:(details: object) => {...}
-
פרטים
אובייקט
איזו הגדרה למחוק.
-
היקף
ChromeSettingScope אופציונלי
איפה למחוק את ההגדרה (ברירת המחדל: רגיל).
-
-
החזרות
Promise<void>
Chrome 96 ואילך browser.* מגרסה 148 של Chromeמופעלת בסיום פעולת הניקוי.
-
-
get
void
מקבל את הערך של הגדרה.
הפונקציה
getנראית כך:(details: object) => {...}
-
פרטים
אובייקט
איזו הגדרה כדאי לבחור.
-
גלישה בסתר
בוליאני אופציונלי
אם להחזיר את הערך שחל על הגלישה הפרטית (ברירת המחדל היא false).
-
-
החזרות
Promise<object>
Chrome 96 ואילך browser.* מגרסה 148 של Chrome
-
-
הוגדר
void
מגדירה את הערך של הגדרה.
הפונקציה
setנראית כך:(details: object) => {...}
-
פרטים
אובייקט
איזו הגדרה לשנות.
-
היקף
ChromeSettingScope אופציונלי
איפה להגדיר את ההגדרה (ברירת המחדל: רגיל).
-
ערך
T
הערך של ההגדרה. שימו לב שלכל הגדרה יש סוג ערך ספציפי, שמתואר יחד עם ההגדרה. תוסף לא צריך להגדיר ערך מסוג אחר.
-
-
החזרות
Promise<void>
Chrome 96 ואילך browser.* מגרסה 148 של Chromeמופעלת בסיום פעולת ההגדרה.
-
ChromeSettingScope
ההיקף של ChromeSetting. אחת
regular: הגדרה לפרופיל הרגיל (שעוברת בירושה לפרופיל הפרטי אם לא מחליפים אותה במקום אחר),regular\_only: הגדרה לפרופיל הרגיל בלבד (לא עוברת בירושה לפרופיל הפרטי),-
incognito\_persistent: הגדרה לפרופיל הפרטי שנשמרת גם אחרי הפעלה מחדש של הדפדפן (מבטלת את ההעדפות הרגילות), -
incognito\_session\_only: הגדרה לפרופיל הפרטי שאפשר להגדיר רק במהלך שימוש פרטי, והיא נמחקת כשהשימוש הפרטי מסתיים (מבטלת את ההעדפות הרגילות ואת ההעדפות של incognito_persistent).
טיפוסים בני מנייה (enum)
"regular"
"regular_only"
"incognito_persistent"
"incognito_session_only"
LevelOfControl
אחת
-
not\_controllable: אי אפשר לשלוט בהגדרה הזו באמצעות תוספים -
controlled\_by\_other\_extensions: נשלט על ידי תוספים עם קדימות גבוהה יותר controllable\_by\_this\_extension: התוסף הזה יכול לשלוט בהגדרה הזוcontrolled\_by\_this\_extension: נשלט על ידי התוסף הזה
טיפוסים בני מנייה (enum)
"not_controllable"
"controlled_by_other_extensions"
"controllable_by_this_extension"
thought
"controlled_by_this_extension"