Bug 1253646 - Implement browser.extension.isAllowedFileSchemeAccess. r?kmag draft
authorChristopher Grebs <cgrebs@mozilla.com>
Tue, 12 Apr 2016 16:16:17 +0200
changeset 349872 c9c3eeb92f7c8f7d4d4fae357c0225229ed80809
parent 349863 49d7fb650c9dde7cf6e4b2c7aa578a4a11e83f83
child 518212 a34a25b4a6223438542cf10c6f45d8458a8cb280
push id15206
push userbmo:cgrebs@mozilla.com
push dateTue, 12 Apr 2016 14:26:44 +0000
reviewerskmag
bugs1253646
milestone48.0a1
Bug 1253646 - Implement browser.extension.isAllowedFileSchemeAccess. r?kmag MozReview-Commit-ID: 85UL3ATGrfB
toolkit/components/extensions/ext-extension.js
toolkit/components/extensions/schemas/extension.json
toolkit/components/extensions/test/mochitest/test_ext_extension.html
--- a/toolkit/components/extensions/ext-extension.js
+++ b/toolkit/components/extensions/ext-extension.js
@@ -33,12 +33,16 @@ extensions.registerSchemaAPI("extension"
 
       get inIncognitoContext() {
         return context.incognito;
       },
 
       isAllowedIncognitoAccess() {
         return Promise.resolve(true);
       },
+
+      isAllowedFileSchemeAccess() {
+        return Promise.resolve(true);
+      },
     },
   };
 });
 
--- a/toolkit/components/extensions/schemas/extension.json
+++ b/toolkit/components/extensions/schemas/extension.json
@@ -112,17 +112,16 @@
                 "description": "True if the extension has access to Incognito mode, false otherwise."
               }
             ]
           }
         ]
       },
       {
         "name": "isAllowedFileSchemeAccess",
-        "unsupported": true,
         "type": "function",
         "description": "Retrieves the state of the extension's access to the 'file://' scheme (as determined by the user-controlled 'Allow access to File URLs' checkbox.",
         "async": "callback",
         "parameters": [
           {
             "type": "function",
             "name": "callback",
             "parameters": [
--- a/toolkit/components/extensions/test/mochitest/test_ext_extension.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_extension.html
@@ -28,12 +28,32 @@ add_task(function* test_is_allowed_incog
 
   yield extension.startup();
   info("extension loaded");
   yield extension.awaitFinish("isAllowedIncognitoAccess");
   yield extension.unload();
   info("extension unloaded");
 });
 
+add_task(function* test_is_allowed_file_scheme_access() {
+  function backgroundScript() {
+    browser.extension.isAllowedFileSchemeAccess().then(isAllowedFileSchemeAccess => {
+      browser.test.assertEq(true, isAllowedFileSchemeAccess, "isAllowedFileSchemeAccess is true");
+      browser.test.notifyPass("isAllowedFileSchemeAccess");
+    });
+  }
+
+  let extension = ExtensionTestUtils.loadExtension({
+    background: `(${backgroundScript})()`,
+    manifest: {},
+  });
+
+  yield extension.startup();
+  info("extension loaded");
+  yield extension.awaitFinish("isAllowedFileSchemeAccess")
+  yield extension.unload();
+  info("extension unloaded");
+});
+
 </script>
 
 </body>
 </html>