chrome.types

תיאור

ה-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 מנהל את ההגדרות בשכבות שונות. ברשימה הבאה מתוארות השכבות שעשויות להשפיע על ההגדרות האפקטיביות, לפי סדר קדימות גבוה יותר.

  1. הגדרות המערכת שנקבעו על ידי מערכת ההפעלה
  2. פרמטרים של שורת הפקודה
  3. הגדרות שמסופקות על ידי תוספים
  4. כללי מדיניות

כפי שאפשר להבין מהרשימה, המדיניות עשויה לבטל כל שינוי שציינת בתוסף. אפשר להשתמש בפונקציה get() כדי לקבוע אם התוסף יכול לספק הגדרה או אם ההגדרה הזו תבוטל.

כפי שצוין קודם, Chrome מאפשר להשתמש בהגדרות שונות לחלונות רגילים ולחלונות פרטיים. הדוגמה הבאה ממחישה את ההתנהגות. נניח שאין מדיניות שמבטלת את ההגדרות, ושתוסף יכול לקבוע הגדרות לחלונות רגילים (R) והגדרות לחלונות פרטיים (I).

  • אם רק (R) מוגדרת, ההגדרות האלה חלות גם על חלונות רגילים וגם על חלונות פרטיים.
  • אם רק (I) מוגדרת, ההגדרות האלה חלות רק על חלונות פרטיים. חלונות רגילים משתמשים בהגדרות שנקבעו על ידי השכבות התחתונות (אפשרויות שורת הפקודה והגדרות המערכת).
  • אם גם (R) וגם (I) מוגדרות, ההגדרות המתאימות משמשות בחלונות רגילים ובחלונות פרטיים.

אם שני תוספים או יותר רוצים לקבוע את אותה הגדרה לערכים שונים, התוסף שהותקן לאחרונה יקבל עדיפות על פני התוספים האחרים. אם התוסף האחרון שהותקן מגדיר רק (I), אפשר לקבוע את ההגדרות של החלונות הרגילים באמצעות התוספים שהותקנו קודם.

הערך האפקטיבי של הגדרה הוא זה שמתקבל מהשיקולים של כללי הקדימות. Chrome משתמש בה.

סוגים

ChromeSetting

ממשק שמאפשר גישה להגדרה של דפדפן Chrome. כדי לראות דוגמה, אפשר לעיין ב-accessibilityFeatures.

תכונות

  • onChange

    אירוע<functionvoidvoid>

    מופעל אחרי שינוי ההגדרה.

    הפונקציה onChange.addListener נראית כך:

    (callback: function)=> {...}

    • קריאה חוזרת (callback)

      פונקציה

      הפרמטר callback נראה כך:

      (details: object)=>void

      • פרטים

        אובייקט

        • incognitoSpecific

          בוליאני אופציונלי

          האם הערך שהשתנה הוא ספציפי לסשן פרטי. הנכס הזה יוצג רק אם המשתמש הפעיל את התוסף במצב פרטי.

        • levelOfControl

          רמת השליטה על ההגדרה.

        • value

          T

          ערך ההגדרה לאחר השינוי.

  • מחיקה

    void

    הבטחה

    ניקוי ההגדרה ושחזור של ערכי ברירת מחדל כלשהם.

    הפונקציה clear נראית כך:

    (details: object,callback?: function)=> {...}

    • פרטים

      אובייקט

      איזו הגדרה לנקות.

      • היקף

        ChromeSettingScope אופציונלי

        איפה לנקות את ההגדרה (ברירת מחדל: רגיל).

    • קריאה חוזרת (callback)

      פונקציה אופציונלי

      הפרמטר callback נראה כך:

      ()=>void

    • החזרות

      Promise<void>

      Chrome 96 ומעלה

      יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

  • get

    void

    הבטחה

    הפונקציה מקבלת את הערך של הגדרה.

    הפונקציה get נראית כך:

    (details: object,callback?: function)=> {...}

    • פרטים

      אובייקט

      איזו הגדרה כדאי לשקול.

      • גלישה פרטית

        בוליאני אופציונלי

        האם להחזיר את הערך שחל על הסשן הפרטי (ברירת המחדל היא false).

    • קריאה חוזרת (callback)

      פונקציה אופציונלי

      הפרמטר callback נראה כך:

      (details: object)=>void

      • פרטים

        אובייקט

        פרטים על הערך האפקטיבי הנוכחי.

        • incognitoSpecific

          בוליאני אופציונלי

          האם הערך האפקטיבי הוא ספציפי לסשן פרטי. המאפיין הזה יופיע רק אם המאפיין incognito בפרמטר details של get() היה True.

        • levelOfControl

          רמת השליטה על ההגדרה.

        • value

          T

          הערך של ההגדרה.

    • החזרות

      Promise<object>

      Chrome 96 ומעלה

      יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

  • הוגדר

    void

    הבטחה

    קביעת הערך של הגדרה.

    הפונקציה set נראית כך:

    (details: object,callback?: function)=> {...}

    • פרטים

      אובייקט

      איזו הגדרה לשנות.

      • היקף

        ChromeSettingScope אופציונלי

        איפה לקבוע את ההגדרה (ברירת מחדל: רגילה).

      • value

        T

        הערך של ההגדרה. שימו לב שלכל הגדרה יש סוג מסוים של ערך, שמתואר יחד עם ההגדרה. תוסף לא יכול להגדיר ערך מסוג אחר.

    • קריאה חוזרת (callback)

      פונקציה אופציונלי

      הפרמטר callback נראה כך:

      ()=>void

    • החזרות

      Promise<void>

      Chrome 96 ומעלה

      יש תמיכה בהבטחות במניפסט מגרסה V3 ואילך, אבל אפשר לבצע קריאה חוזרת (callback) לצורך תאימות לאחור. אי אפשר להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה מסתיימת עם אותו הסוג שמועבר לקריאה החוזרת.

ChromeSettingScope

Chrome 44 ואילך

ההיקף של ChromeSetting. אחד מ-

  • regular: הגדרה לפרופיל הרגיל (שמעברו בירושה לפרופיל הפרטי אם לא מבטלים אותו במקום אחר),
  • regular\_only: הגדרה לפרופיל הרגיל בלבד (לא עובר בירושה לפרופיל הפרטי),
  • incognito\_persistent: הגדרה של הפרופיל במצב פרטי שעדיין לא מצליח להפעיל מחדש את הדפדפן (מבטלת את ההעדפות הרגילות),
  • incognito\_session\_only: הגדרה של פרופיל פרטי שניתן להגדיר רק במהלך סשן אנונימי, והוא נמחק בסיום הסשן הפרטי (מבטלת את ההעדפות הרגילות וההעדפות של מצב פרטי).

טיפוסים בני מנייה (enum)

"regular_only"

LevelOfControl

Chrome 44 ואילך

אחד מ-

  • 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"