דרך טובה יותר לעדכן את אפליקציות האינטרנט

Dan Murphy
Dan Murphy
Dibyajyoti Pal
Dibyajyoti Pal

פורסם: 21 בינואר 2026

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

הגישה הקודמת (לפני Chrome 144)

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

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

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

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

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

התראה שבה מוצג השינוי בסמל, והודעה שמזהירה את המשתמש עם לחצנים לאישור השינוי או להסרת האפליקציה.
למחשב (מגרסה Chrome 91 ואילך)
התראה בנייד שמציגה את השינוי בסמל והודעה שמזהירה את המשתמש, עם לחצנים לאישור השינוי או להסרת האפליקציה.
ל-Android (הגרסה הנוכחית)

מגבלות ויעדים לשינויים בעדכונים של אפליקציות אינטרנט

היעדים הבאים הנחו אותנו בתהליך הפיתוח של תהליך העדכון החדש:

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

מה השתנה בגרסה 144 של Chrome?

עדכוני השם והסמל הם עכשיו אופציונליים

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

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

תפריט שבו מוצגת האפשרות 'בדיקת עדכון האפליקציה'.

כשלוחצים על בדיקת עדכון האפליקציה, מוצגת תיבת הדו-שיח המעודכנת. הכותרת משתנה בהתאם לרכיבים שמתעדכנים.

תיבת הדו-שיח בשולחן העבודה שבה המשתמש מתבקש לבדוק את העדכונים של הסמל והשם.

הסמלים לא יורדו אם לא בוצעו שינויים בשדה הסמלים

סמלים נחשבים עכשיו ללא שינוי אם השדה icons במניפסט נשאר זהה לגרסה האחרונה שהוחלה. לפי הלוגיקה החדשה הזו, Chrome לא מוריד סמלים לצורך השוואה ויזואלית, ולמעשה מתייחס לכתובות URL של סמלים כאילו הן Cache-Control:immutable. כדי להפעיל עדכון של הסמל, המפתחים צריכים לשנות את המטא-נתונים או את כתובת ה-URL של הסמל.

הסרה של הגבלת העדכון

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

טיפול בשינויים קלים בסמלים בפלטפורמות שונות

כדי לשפר את חוויית המשתמש, Chrome מעדכן עכשיו באופן אוטומטי את הסמלים, אם ההבדל ביניהם הוא פחות מ-10% בהשוואה של פיקסל לפיקסל. כך מוודאים ששינויים קלים, כמו אלה שנגרמים על ידי קידוד מחדש של CDN, לא יפעילו תיבת דו-שיח מבלבלת של עדכון עבור המשתמש.

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

דוגמה לעדכון של הסמל והשם

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}

שינוי כתובת ה-URL של הסמל מבטיח שהמשתמש יראה תיבת דו-שיח של עדכון שבה יוכל לשנות את הסמל.

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app-NEW-URL.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}