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

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

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

ממשקי API ותכונות חדשות לתוספים

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

המיטב

מסמכים מחוץ למסך

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

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

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

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

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

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

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

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

  • Action API: החל מגרסה 110 של Chrome, אפשר להתאים אישית את טקסט התג באמצעות setBadgeTextColor()‎ ו-getBadgeTextColor(). בנוסף, בעזרת isEnabled() אפשר לבדוק אם הפעולה מופעלת בכרטיסייה הנוכחית.
  • Commands API: תוקן באג ב-Chrome 111 שבו קיצורי הדרך של התוספים, שהוגדרו במניפסט בקטע "commands._execute_action", לא נשמרו במהלך ההמרה ל-MV3.
  • 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: ב-Chrome 112, נפח האחסון של chrome.session הוגדל ל-10MB. לאחר מכן, גודל האחסון של chrome.local השתנה כך שיהיה תואם ל-Chrome 114.

בקרוב...

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

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

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

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

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

המיטב

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

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

בקרוב...

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

💡 הידעתם?

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

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

קדימה, נתחבר! 🙌

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

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

שוב תודה שהצטרפת לקהילת מפתחי התוספים!