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

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

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

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

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

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

מסמכים שלא במסך

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

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

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

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

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

קובצי שירות (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: ב-Chrome 112, נפח האחסון ב-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 worker): אנחנו מוסיפים עדכונים משמעותיים לממשקי API של Chrome שמציגים למשתמשים הנחיה: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() וגם management.uninstall().
  • Side Panel API: אנחנו משיקים את sidepanel.open(), שפותח את החלונית הצדדית של התוסף באופן פרוגרמטי בתגובה לתנועת משתמש, כמו לחיצה על תפריט ההקשר.
  • TabCapture API: אנחנו מוסיפים את היכולת לקרוא ל-getMediaStreamId() מה-service worker של התוסף ולקבל MediaStream ממזהה מקור נתונים במסמך שנמצא מחוץ למסך. דוגמאות מופיעות במאמר הקלטת אודיו וצילום מסך.

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

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

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

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

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

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

בקרוב…

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

✨ הידעת?

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

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

רוצה לדבר איתי? 🙌

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

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

שוב תודה שבחרת להיות חלק מקהילת מפתחי התוספים.