מניפסט – ארגז חול

אזהרה: החל מגרסה 57, Chrome לא יאפשר יותר תוכן מהאינטרנט חיצוני (כולל מסגרות וסקריפטים מוטמעים) בדפים בארגז חול (sandbox). במקום זאת, יש להשתמש ב-WebView.

מגדיר אוסף של דפי אפליקציה או תוספים שיוצגו במקור ייחודי שפועל בארגז חול, ובאופן אופציונלי ב-Content Security Policy לשימוש איתם. להיות בארגז חול יש שתי השלכות:

  1. לדף שפועל בארגז החול לא תהיה גישה לממשקי API של תוספים או אפליקציות, או גישה ישירה אל דפים שאינם בארגז חול (הוא עשוי לתקשר איתם דרך postMessage()).
  2. דף שמופעל בארגז חול לא כפוף למדיניות אבטחת התוכן (CSP) שמשמשת את שאר האפליקציה או התוסף (יש להם ערך CSP נפרד משלו). המשמעות היא, לדוגמה, שהמקום יכול להשתמש בסקריפט מוטבע וב-eval.

    לדוגמה, כך אפשר לציין ששני דפי תוספים יוצגו ב-Sandbox עם הסיומת CSP בהתאמה אישית:

    {
      ...
      "sandbox": {
        "pages": [
          "page1.html",
          "directory/page2.html"
        ]
        // content_security_policy is optional.
        "content_security_policy":
            "sandbox allow-scripts; script-src 'self'"
      ],
      ...
    }
    

    אם לא מציינים זאת, ערך ברירת המחדל של content_security_policy הוא sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. אפשר לציין את הערך של ה-CSP כדי להגביל עוד יותר את ארגז החול, אבל הוא צריך לכלול את ההוראה sandbox וייתכן שלא כוללת את האסימון allow-same-origin (ראו מפרט לאסימונים אפשריים של ארגז חול). כמו כן, יכול להיות שה-CSP שתגדירו לא יאפשרו טעינה תוכן אינטרנט חיצוני שנמצא בדפים בארגז חול (sandbox).

לתשומת ליבכם: צריך להציג רשימה רק של דפים שציפיתם לטעינה בחלונות או במסגרות. מקורות מידע בשימוש בדפים שמופעל בהם ארגז חול (למשל, גיליונות סגנונות או קובצי מקור של JavaScript) לא צריכים להופיע sandboxed_page, ישתמשו בארגז החול של הדף שמטמיע אותם.

"שימוש ב-eval בתוספים ל-Chrome. בטוח". מספק פרטים נוספים על ההטמעה של הרצה בארגז חול (sandboxing) שמאפשרת להשתמש בספריות שאחרת היו נתקלים בבעיות בביצוע מדיניות ברירת המחדל של Content Security עבור התוסף.

ניתן לציין דף 'ארגז חול' רק כשמשתמשים בגרסה 2 ומעלה של manifest_version.