מגרסה Chrome 122 אפשר להירשם לניסיון המקור של scope_extensions
חבר מניפסט האפליקציה, שמאפשר להציג אתרים ששולטים בכמה תת-דומיינים ודומיינים ברמה העליונה כאפליקציית אינטרנט אחת. במסמך הזה מוסבר למה צוות Chrome משיק את התכונה הזו, ומתי כדאי להשתמש בה.
סקירה כללית
לחלק מאפליקציות האינטרנט יש כמה מקורות. לדוגמה, example.com כאפליקציה הראשית, ואז space_1.example.com, …, space_n.example.com, לפעמים בשילוב עם special-example.com, כחוויות משנה, והכול במסגרת האפליקציה הראשית. לארכיטקטורה כזו של אתר יש השלכות בהקשר של Progressive Web Apps.
ההגבלות כוללות את אי היכולת לשתף service workers, כל סוג של מכשיר, אחסון מקומי והרשאות בין מקורות. בנוסף, כשמשתמשים באפליקציית PWA עצמאית ומנווטים בין מקורות שונים, מוצג ממשק משתמש של חלון (סרגל 'מחוץ לתחום') שמציין שהמשתמש יצא מחוויית השימוש באפליקציית ה-PWA. במאמרים Progressive Web Apps in multi-origin sites ו-Building multiple Progressive Web Apps on the same domain מוסבר איך לעקוף חלק מהבעיות האלה.
ממשק ה-API של Scope Extensions מאפשר לאפליקציות אינטרנט להתמודד עם חלק מהאתגרים שמדיניות המקורות הזהים מציבה בפני ארכיטקטורת אתרים מסוג זה. היא מאפשרת לאפליקציות אינטרנט להרחיב את ההיקף שלהן למקורות אחרים כדי לספק חוויה אחידה, בהסכמה בין המקור הראשי של אפליקציית האינטרנט לבין המקורות המשויכים.
יעדים
המטרה העיקרית של Scope Extensions API היא לאפשר לאתרים ששולטים בכמה תת-דומיינים ודומיינים ברמה העליונה להתנהג כאפליקציית אינטרנט רציפה אחת בכל מה שקשור לממשק המשתמש של אפליקציית האינטרנט וללכידת קישורים. לדוגמה, לאפשר לאתר example.com שמשתרע על example.com.co.uk ועל support.example.com להתנהג ככל האפשר כאפליקציית אינטרנט אחת.

התכונה Scope Extensions מאפשרת לאפליקציות PWA עם כמה מקורות להתנהג כאפליקציית אינטרנט רציפה כשמדובר בממשק המשתמש של אפליקציית האינטרנט.
בפועל, זה מתורגם לשני יעדים ספציפיים יותר:
- ניווט בין מקורות שונים: מאפשר למשתמשים לנווט בין מקורות משויכים בלי לשבש את חוויית המשתמש. כדי לעשות זאת, מוצג למשתמש ממשק משתמש של חלון שמודיע לו שהוא עובר מאפליקציית ה-PWA.
- תיעוד קישורים ממקורות שונים: מאפשר לאפליקציות אינטרנט לתעד ניווטים של משתמשים לאתרים שהן משויכות אליהם.
ניווט חוצה-דומיינים במסגרת
כברירת מחדל, כשמשתמשים עוברים בין מקורות באפליקציית PWA עצמאית, מוצג להם ממשק משתמש של חלון שמציין שהם יוצאים מחוויית השימוש באפליקציית ה-PWA. ב-Chrome, ממשק המשתמש הזה כולל סרגל 'מחוץ לתחום' שמכיל את כתובת ה-URL של המקור החדש. הדבר פוגע בחוויית המשתמש, כי המשתמשים מצפים להמשיך לנווט באותו הקשר של האפליקציה, אבל הם עלולים לחשוב שהם יוצאים ממנה.

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

קטע מסרגל הכתובות ב-Chrome בכרטיסייה ב-ChromeOS שבו מוצג סימן ויזואלי שמציין שאפשר לפתוח את הקישור באמצעות PWA, ומוצגת האפשרות לזכור את ההחלטה הזו.
אם משתמש לוחץ על קישור שנמצא מחוץ להיקף של ה-PWA (כולל קישורים לתת-דומיינים או לדומיינים ברמה העליונה), הוא לא יזוהה כמשתמש ששייך ל-PWA. לדוגמה, קישורים ייפתחו בכרטיסיית דפדפן בלי שתוצג למשתמש אינדיקציה לכך שיש אפליקציה שיכולה לטפל בקישור. Scope Extensions API מאפשר להרחיב את היקף ה-PWA כך שהמקורות המשויכים יטופלו כקישורים בהיקף.
הטמעה
כדי להטמיע הרחבות של היקף, צריך לקבוע את הקשר בין המקור הראשי לבין המקורות המשויכים.
הצהרה על רשימת המקורות המשויכים
כדי לאפשר לאפליקציית האינטרנט להרחיב את ההיקף שלה למקורות אחרים, צריך להוסיף את חבר המניפסט של אפליקציית האינטרנט scope_extensions למקור הראשי של PWA.
מניפסט של אפליקציית אינטרנט (https://example.com)
{
"name": "Example",
"display": "standalone",
"start_url": "/index.html",
"scope_extensions": [
{ "origin": "https://*.example.com" },
{ "origin": "https://example.co.uk" },
{ "origin": "https://*.example.co.uk" }
]
}
אישור השיוכים
כל אחד מהמקורות שמופיעים ברשימה מאשר את השיוך לאפליקציית האינטרנט באמצעות קובץ תצורה /.well-known/web-app-origin-association. צריך לתת לקובץ הזה את השם web-app-origin-association ולהציג אותו במיקום המדויק הזה, כי הוא URI מוכר.
/.well-known/web-app-origin-association (מקור משויך)
{
"web_apps": [{ "web_app_identity": "https://example.com" }]
}
הדגמה (דמו)
ההדגמה מורכבת משני אתרים:
- ה-PWA הראשי: ה-PWA בפועל שמצהיר על רשימת המקורות המשויכים דרך רכיב
scope_extensionsבמניפסט של אפליקציית האינטרנט. - מקור בהיקף מורחב: מקור שנמצא מחוץ להיקף הראשי של אפליקציית ה-PWA, אבל משויך אליה אחרי שהוא מופיע ברשימה של אפליקציית ה-PWA הראשית כמקור משויך, והקשר ביניהם מאושר באמצעות קובץ
web-app-origin-association.
כדי לבצע את הבדיקות הבאות, צריך להפעיל את התכונה הניסיונית about://flags/#enable-desktop-pwas-scope-extensions (זמינה מגרסה Chrome v115 ואילך).
בדיקת ניווט חוצה-דומיינים
כדי לבצע את הבדיקות האלה, צריך לפתוח את ה-PWA הראשי בדפדפן, להתקין אותו כ-PWA ולפתוח אותו כדי להפעיל אותו במצב עצמאי. אפליקציית ה-PWA מכילה קישורים למקור בהיקף מורחב ולמקור שלא בהיקף מורחב.

אפליקציית PWA לדוגמה עם קישורים למקור בהיקף מורחב ולמקור שלא בהיקף מורחב.
ניווט ברירת מחדל בין מקורות (לא בהיקף מורחב)
- ב-PWA במסך מלא, לוחצים על הקישור המקור לא נמצא בהיקף המורחב.
- כתוצאה מכך, הניווט מתבצע ומוצג הסרגל 'מחוץ להיקף'.

סרגל 'מחוץ לתחום' שמוצג כברירת מחדל בניווט בין מקורות שונים ב-PWA במצב עצמאי.
ניווט בין מקורות שונים באמצעות תוספי היקף (בהיקף מורחב)
- חוזרים לדף הבית של ה-PWA.
- לוחצים על הקישור אל המקור שלא נכלל בהיקף המורחב.
- כברירת מחדל, אמור להיות מוצג סרגל 'מחוץ לתחום', אבל בגלל השיוך של Scope Extensions, הוא לא מוצג.

הסרגל 'מחוץ לתחום' לא מוצג בניווט בין מקורות אחרי שנוצר שיוך מקור באמצעות תוספי היקף.
בדיקת תיעוד קישורים חוצי-דומיינים
- פותחים את ה-PWA הראשי ומתקינים אותו במכשיר ChromeOS.
- לוחצים על הקישור הבא: associated origin.
- הקישור ייפתח בכרטיסייה חדשה בדפדפן ותוצג הנחיה לפתוח אותו באפליקציית ה-PWA המותקנת.

לחיצה על קישור למקור שמשויך ל-PWA פותחת את הקישור בכרטיסייה חדשה ומציגה סמל של 'פתיחה באפליקציה', שמאפשר למשתמש להפעיל את התכונה של לכידת קישורים אוטומטית.
גרסת מקור לניסיון
אם רוצים לבדוק את ה-API הזה באפליקציה בשטח עם משתמשים אמיתיים, אפשר לעשות זאת באמצעות גרסת מקור לניסיון. ניסויי מקור מאפשרים לכם לנסות תכונות ניסיוניות עם המשתמשים שלכם באמצעות קבלת טוקן בדיקה שמקושר לדומיין שלכם. אחרי כן תוכלו לפרוס את האפליקציה ולצפות שהיא תפעל בדפדפן שתומך בתכונה שאתם בודקים (במקרה הזה, היא זמינה ב-Chrome מגרסה 121 עד גרסה 126). כדי לקבל טוקן משלכם להפעלת תקופת ניסיון של תכונה, צריך למלא את טופס הבקשה.
משוב
צוות Chrome מחפש משוב על מידת השימושיות של ה-API הזה. כדי לעזור לצוות לפתח את ה-API הזה בעזרת משוב על השימושיות שלו ותרחישי שימוש חדשים שלא נכללים בגרסה הנוכחית, אפשר לפתוח Issue ב-GitHub.
מקורות מידע נוספים
- Scope Extensions API – תקופת ניסיון
- סטטוס Chrome – הרחבות של היקף אפליקציות אינטרנט
- הסבר על תוספים בהיקף של אפליקציות אינטרנט
- הבעת כוונות לניסוי
- Mozilla Standards Position
- Apple Standards Position
- באג ב-Chromium
- Progressive Web Apps באתרים עם כמה מקורות
- פיתוח כמה אפליקציות PWA באותו דומיין
תודות
תודה מיוחדת לצוות שאחראי לפיתוח ה-API הזה. ההגדרה של Scope Extensions נעשתה על ידי Alan Cutter וLu Huang, עם תובנות מMatt Giuca. ממשקי ה-API הוטמעו על ידי Alan Cutter מ-Google Chrome ועל ידי Hassan Talat, Kristin Lee ו-Lu Huang מ-Microsoft Edge.