Bug 1264623 - Allow for a leading slash in the path to web_accessible_resources, r?kmag draft
authorBob Silverberg <bsilverberg@mozilla.com>
Thu, 14 Apr 2016 09:12:21 -0400
changeset 351755 6af50eaa57f837696a4a142608f903965d77ec23
parent 351754 e595db332894e0d6a2bacd793f792d56ce3960d1
child 518498 308bb7eda236a38152292cc7530e63ee6f9bd858
push id15525
push userbmo:bob.silverberg@gmail.com
push dateFri, 15 Apr 2016 01:13:20 +0000
reviewerskmag
bugs1264623
milestone48.0a1
Bug 1264623 - Allow for a leading slash in the path to web_accessible_resources, r?kmag MozReview-Commit-ID: IWbzhs9dpX2
toolkit/components/extensions/Extension.jsm
toolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -1147,17 +1147,23 @@ Extension.prototype = extend(Object.crea
     for (let perm of permissions) {
       this.permissions.add(perm);
       if (!/^\w+(\.\w+)*$/.test(perm)) {
         whitelist.push(perm);
       }
     }
     this.whiteListedHosts = new MatchPattern(whitelist);
 
-    this.webAccessibleResources = new MatchGlobs(manifest.web_accessible_resources || []);
+    // Strip leading slashes from web_accessible_resources.
+    let strippedWebAccessibleResources = [];
+    if (manifest.web_accessible_resources) {
+      strippedWebAccessibleResources = manifest.web_accessible_resources.map(path => path.replace(/^\/+/, ""));
+    }
+
+    this.webAccessibleResources = new MatchGlobs(strippedWebAccessibleResources);
 
     for (let directive in manifest) {
       if (manifest[directive] !== null) {
         Management.emit("manifest_" + directive, directive, this, manifest);
       }
     }
 
     let data = Services.ppmm.initialProcessData;
--- a/toolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_web_accessible_resources.html
@@ -91,17 +91,17 @@ add_task(function* test_web_accessible_r
         {
           "matches": ["http://example.com/"],
           "js": ["content_script.js"],
           "run_at": "document_idle",
         },
       ],
 
       "web_accessible_resources": [
-        "accessible.html",
+        "/accessible.html",
         "wild*.html",
       ],
     },
 
     background: `(${background})()`,
 
     files: {
       "content_script.js": `(${contentScript})()`,