Bug 1253645 - Implement browser.extension.isAllowedIncognitoAccess, r?kmag draft
authorChristopher Grebs <cgrebs@mozilla.com>
Mon, 14 Mar 2016 12:28:49 +0100
changeset 339952 d1ac6b44e341e4a06367ed7ec71e68284d2ca6d8
parent 339874 f0c0480732d36153e8839c7f17394d45f679f87d
child 516089 7f4619c577f486ac203addc5dd2738074a29ba8e
push id12843
push userbmo:cgrebs@mozilla.com
push dateMon, 14 Mar 2016 13:56:14 +0000
reviewerskmag
bugs1253645
milestone48.0a1
Bug 1253645 - Implement browser.extension.isAllowedIncognitoAccess, r?kmag MozReview-Commit-ID: HaM0GJrappR
toolkit/components/extensions/ext-extension.js
toolkit/components/extensions/schemas/extension.json
toolkit/components/extensions/test/mochitest/mochitest.ini
toolkit/components/extensions/test/mochitest/test_ext_extension.html
--- a/toolkit/components/extensions/ext-extension.js
+++ b/toolkit/components/extensions/ext-extension.js
@@ -29,12 +29,16 @@ extensions.registerSchemaAPI("extension"
 
       get lastError() {
         return context.lastError;
       },
 
       get inIncognitoContext() {
         return context.incognito;
       },
+
+      isAllowedIncognitoAccess() {
+        return Promise.resolve(true);
+      },
     },
   };
 });
 
--- a/toolkit/components/extensions/schemas/extension.json
+++ b/toolkit/components/extensions/schemas/extension.json
@@ -93,17 +93,16 @@
             "optional": true,
             "name": "backgroundPageGlobal",
             "isInstanceOf": "Window",
             "additionalProperties": { "type": "any" }
          }
       },
       {
         "name": "isAllowedIncognitoAccess",
-        "unsupported": true,
         "type": "function",
         "description": "Retrieves the state of the extension's access to Incognito-mode (as determined by the user-controlled 'Allowed in Incognito' checkbox.",
         "async": "callback",
         "parameters": [
           {
             "type": "function",
             "name": "callback",
             "parameters": [
--- a/toolkit/components/extensions/test/mochitest/mochitest.ini
+++ b/toolkit/components/extensions/test/mochitest/mochitest.ini
@@ -19,16 +19,17 @@ support-files =
   file_script_xhr.js
   file_sample.html
   redirection.sjs
   file_privilege_escalation.html
   file_ext_test_api_injection.js
   file_permission_xhr.html
   file_download.txt
 
+[test_ext_extension.html]
 [test_ext_simple.html]
 [test_ext_schema.html]
 skip-if = e10s # Uses a console montitor. Actual code does not depend on e10s.
 [test_ext_geturl.html]
 [test_ext_contentscript.html]
 skip-if = buildapp == 'b2g' # runat != document_idle is not supported.
 [test_ext_contentscript_create_iframe.html]
 [test_ext_contentscript_api_injection.html]
new file mode 100644
--- /dev/null
+++ b/toolkit/components/extensions/test/mochitest/test_ext_extension.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>WebExtension test</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
+  <script type="text/javascript" src="head.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+
+<script type="text/javascript">
+"use strict";
+
+add_task(function* test_is_allowed_incognito_access() {
+  function backgroundScript() {
+    browser.extension.isAllowedIncognitoAccess().then(isAllowedIncognitoAccess => {
+      browser.test.assertEq(true, isAllowedIncognitoAccess, "isAllowedIncognitoAccess is true");
+      browser.test.notifyPass("isAllowedIncognitoAccess");
+    })
+  }
+
+  let extension = ExtensionTestUtils.loadExtension({
+    background: `(${backgroundScript})()`,
+    manifest: {}
+  });
+
+  yield extension.startup();
+  info("extension loaded");
+  yield extension.awaitFinish("isAllowedIncognitoAccess");
+  yield extension.unload();
+  info("extension unloaded");
+});
+
+</script>
+
+</body>
+</html>