מה קורה בתוספים ל-Chrome?

איימי סטים
איימי סטים

עד עכשיו, 2023 הייתה שנה עמוסה בעולם התוספים ל-Chrome. המשוב החשוב שלך מאפשר לנו לשפר את פלטפורמת התוסף ואת המסמכים שלנו. כמו כן, אנחנו ממשיכים לשתף פעולה עם ספקי דפדפנים אחרים בקבוצת הקהילה של Webתוספות כדי שממשקי API של תוספים יפעלו בצורה עקבית יותר בכל הדפדפנים.

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

ממשקי API ופיצ'רים חדשים לתוספים

בקטע הזה ברצוני להדגיש השקות משמעותיות של ממשקי API, לסקור בקצרה שיפורים אחרים ב-API, ולשתף גרסאות עתידיות של ממשק API.

תוצאות נבחרות

מסמכים שלא מופיעים במסך

offscreen API הושק ב-Chrome 109. היא מאפשרת לתוספי Manifest V3 לטפל בתרחישים לדוגמה שנדרשת להם אינטראקציה עם ה-DOM או החלון, שלא ניתן לבצע ב-Service Worker של התוסף. נוסף לכך, בגרסה 114 של Chrome נוספו שתי סיבות נוספות מחוץ למסך: 'WORKERS' למקרים שבהם המסמך צריך להצמיח עובד ו-'LOCAL_STORAGE' כדי לעזור בהעברת נתונים מ-window.localStorage ל-chrome.storage API.

החל מגרסה 115 של Chrome, יש מספר סיבות כשיוצרים מסמך שלא מוצג במסך. כך אפשר לבצע שתי משימות קשורות באותו מסמך.

ממשק API חדש לחלונית צדדית 🎉

בעבר, הדרך היחידה ליצור סרגלי צד בתוספים הייתה על ידי החדרת רכיב חדש עם סקריפטים של תוכן לכל דף. בגרסת Chrome 114 הושק Side Panel API. כעת ניתן לפתח חוויה של סרגל צד נלווה עבור המשתמשים, בדרך פשוטה יותר. מידע נוסף על האופן שבו Side Panel API מאפשר לעצב חוויית משתמש מעולה.

תוסף למילון שמציג את ההגדרה של מילה שנבחרה
תוסף מילון בחלונית צדדית. למידע נוסף, ניתן לעיין בקוד במאגר הדוגמאות של chrome-extensions-samples.

קובצי שירות (service worker) חזקים יותר

כל אירועי התוסף מפעילים עכשיו מחדש את הטיימר ללא פעילות ב-Service Worker של התוסף. בגרסה 110 של Chrome, משך החיים המקסימלי של חמש דקות הוסרו לעובדי שירות של תוספים. כמו כן, הודעות לאפליקציות מותאמות והודעות בתוסף מפעילים מחדש את הטיימר ללא פעילות. מידע נוסף בנושא זמין במאמר מחזור החיים של קובץ השירות המורחב.

השקות נוספות של ממשק API

  • Action API: החל מגרסה 110 של Chrome, ניתן להתאים אישית את הטקסט של התג באמצעות setBadgeTextColor() ו-getBadgeTextColor(). בנוסף, ב-isEnabled() אפשר לבדוק אם הפעולה מופעלת בכרטיסייה הנוכחית.
  • Commands API: הבאג שבו קיצורי דרך לתוספים, שהוצהרו במניפסט במסגרת "commands._execute_action", לא יופיעו במהלך ההמרה ל-MV3, תוקן ב-Chrome 111.
  • Downloads API: ממשק המשתמש להורדות שמוגדר כברירת מחדל ב-Chrome הועבר מהמדף בחלק התחתון לצד ימין של סרגל הכתובות. כדי להשבית את ההתנהגות הזו, אפשר להשתמש ב-downloads.setUiOptions() שמחליף את setShelfEnabled().
  • History API: chrome.history.getVisits() ו-chrome.history.search() מחזירים גם נתונים ממכשירים אחרים שסונכרנו למסד הנתונים של ההיסטוריה המקומית. כתוצאה מכך, ייתכן שיתקבלו יותר רשומות היסטוריה ומספרי ביקורים גבוהים יותר. הוספנו את isLocal אל VisitItem ב-Chrome 115 (צפוי להיות יציב בהמשך החודש) כדי לאפשר לו לסנן לפי ביקורים מקומיים בלבד.
  • Identity API: חלון האימות מופיע עכשיו כחלון קופץ, במקום לתפוס חלון אפליקציה מלא. כדי להעניק יותר שליטה בתהליך של הפניות אוטומטיות ב-JavaScript, הוספנו שתי אפשרויות חדשות: abortOnLoadForNonInteractive ו-timeoutMsForNonInteractive.
  • Storage API: בגרסה 112 של Chrome, נפח האחסון ב-chrome.session הוגדל ל-10MB. לאחר מכן, גודל האחסון של chrome.local השתנה כך שיתאים ב-Chrome 114.

בקרוב…

בגרסאות הבאות של Chrome נשיק תכונות רבות שיקלו על המעבר של תוספים למניפסט מגרסה V3. בדף הבעיות המוכרות שלנו אפשר למצוא רשימה של שינויים קרובים שקשורים להעברה של MV3. בנוסף, אנחנו מתכננים להוסיף את התכונות הבאות:

  • DeclarativeNetRequest API: ערך ברירת המחדל של המאפיין isUrlFilterCaseSensitive ישתנה ל-false. יש לעיין בשרשור של WECG.
  • File Treatment API יאפשר לתוספים של ChromeOS לפתוח קבצים עם סוגי MIME וסיומות קובץ ספציפיים. התכונה הזו נמצאת כרגע מאחורי דגל.
  • Runtime API: אנחנו משיקים את runtime.getContexts() שיחליף את extension.getViews(), שהוצא משימוש. כך תוספים יוכלו לקבוע אם דף תוסף, כמו החלונית הצדדית או המסמך שאינו במסך, פתוח. יש לעיין בהצעה של WECG.
  • Service Workers: אנחנו מוסיפים לממשקי ה-API של Chrome הודעות מסוג 'Keeps' מתקדמים ומציגות בקשה מהמשתמש: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() וגם management.uninstall().
  • Side Panel API: אנחנו משיקים את sidepanel.open(), שהחלונית הצדדית של התוסף תיפתח באופן פרוגרמטי בתגובה לתנועת משתמש, כמו לחיצה על תפריט ההקשר.
  • TabCapture API: אנחנו מוסיפים את היכולת לקרוא ל-getMediaStreamId() מה-API של התוסף ולקבלת MediaStream ממזהה מקור נתונים במסמך שאינו מוצג במסך. דוגמאות לכך זמינות במאמר הקלטת אודיו וצילום מסך.

ההודעות האלה יושקו בדף מה חדש בתוספים, מיד כשהן יהיו זמינות בChrome בטא.

שדרוגי מסמכים והנחיות נוספות במניפסט מגרסה V3

כמו כן, עבדנו קשה כדי לשפר את חוויית הלמידה של המפתח. תודה רבה לכל האנשים שהקדישו מזמנם כדי לשאול שאלות בנושא chromium-group ולדווח על בעיות בתיעוד בכתובת developer.chrome.com.

תוצאות נבחרות

  • בקטע החדש מעבר ל-MV3 יש דרכים מעשיות להמיר תוספי Manifest V2 למניפסט מגרסה V3.
  • במדריך ספקי שירות (service worker) ניתן למצוא מידע מפורט על נושאים הקשורים ל-service worker של תוספים. המידע הזה יכול לכלול את אופן הרישום והעדכון של הקבצים, איך נראה מחזור החיים שלהם, אופן הפעולה של תהליכי הייבוא ועוד.
  • במדריך טיפול באירועים עם קובצי שירות (service worker) לומדים את העקרונות הבסיסיים של קובצי שירות (service worker) בהרחבה. הוא בונה תוסף לסרגל הכתובות שנותן לך גישה מהירה לדפי התייחסות של ממשק API של תוסף.

עדכונים נוספים

בקרוב…

  • איך להעביר קוד באירוח מרוחק למניפסט מגרסה V3.
  • הוראות להפעלת בדיקות אוטומטיות של תוספים ל-Chrome.
  • הדרכה משופרת בנוגע לבקשות נטו מוצהרות.
  • שיפורים בהסבר של סקריפט התוכן.

💡הידעת?

לפני שנתחיל, רצינו לשתף איתך כמה כלים ותובנות שימושיים:

  • דפדפן Chrome התחיל לעבוד על תמיכה ב-WebHID. אתם יכולים לשחק עם ה-API החל מגרסה 115 של Chrome (אבל חשוב לזכור שהוא עדיין בשלבי פיתוח).
  • האפליקציה Puppeteer תומכת עכשיו בבדיקה במצב 'דפדפן ללא GUI' באמצעות --headless=new . אפשר לקרוא מידע נוסף בפוסט שדרוג מצב 'דפדפן ללא GUI' ב-Chrome.
  • באמצעות הכלי לבדיקת עדכוני תוספים, אפשר לבדוק אילו אזהרות מופעלות כאשר ההרשאות משתנות במניפסט. כך תוכלו לחוות את תהליך העדכון כפי שמשתמש יחווה. הפעולה הזו חשובה כי חלק מההרשאות עשויות להשבית את התוסף עד שהמשתמש יספק גישה שוב.

בואו נתחבר! 🙌

השנה, צוות התוספת שמח לפגוש את מפתחי התוספים באופן אישי במהלך אירועי Google I/O Connect. אנחנו פועלים ליצירת מרחבים חדשים שיאפשרו לך להתחבר אליך, כמו השקת קבוצות מיקוד ואירועי מפגשים.

בינתיים, אפשר להמשיך לשאול שאלות ב-chromium-groups, לשקול להשתתף ב-WECG ולדווח על בעיות תיעוד במאגר GitHub שלdeveloper.chrome.com.

שוב תודה על ההשתתפות שלך בקהילת מפתחי התוספים!