Bug 1253645 - Implement browser.extension.isAllowedIncognitoAccess, r?kmag
MozReview-Commit-ID: HaM0GJrappR
--- 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>