diff options
5 files changed, 59 insertions, 7 deletions
diff --git a/chrome/browser/debugger/devtools_sanity_unittest.cc b/chrome/browser/debugger/devtools_sanity_unittest.cc index f5f5321..fef4634 100644 --- a/chrome/browser/debugger/devtools_sanity_unittest.cc +++ b/chrome/browser/debugger/devtools_sanity_unittest.cc @@ -254,6 +254,13 @@ class DevToolsExtensionTest : public DevToolsSanityTest, FilePath test_extensions_dir_; }; +class DevToolsExperimentalExtensionTest : public DevToolsExtensionTest { + public: + void SetUpCommandLine(CommandLine* command_line) OVERRIDE { + command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); + } +}; + class WorkerDevToolsSanityTest : public InProcessBrowserTest { public: WorkerDevToolsSanityTest() : window_(NULL) { @@ -437,13 +444,21 @@ IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, kDebuggerTestPage); } -// Tests that a content script is in the scripts list. +// Tests that chrome.devtools extension is correctly exposed. IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, - DISABLED_TestDevToolsExtensionAPI) { + TestDevToolsExtensionAPI) { LoadExtension("devtools_extension"); RunTest("waitForTestResultsInConsole", ""); } +// Tests that chrome.experimental.devtools extension is correctly exposed +// when the extension has experimental permission. +IN_PROC_BROWSER_TEST_F(DevToolsExperimentalExtensionTest, + TestDevToolsExperimentalExtensionAPI) { + LoadExtension("devtools_experimental"); + RunTest("waitForTestResultsInConsole", ""); +} + // Tests that a content script is in the scripts list. IN_PROC_BROWSER_TEST_F(DevToolsExtensionTest, TestContentScriptIsPresent) { diff --git a/chrome/test/data/devtools/extensions/devtools_experimental/devtools.html b/chrome/test/data/devtools/extensions/devtools_experimental/devtools.html new file mode 100644 index 0000000..dc6e791 --- /dev/null +++ b/chrome/test/data/devtools/extensions/devtools_experimental/devtools.html @@ -0,0 +1,5 @@ +<html> +<head> +<script src="devtools.js"></script> +</head> +</html> diff --git a/chrome/test/data/devtools/extensions/devtools_experimental/devtools.js b/chrome/test/data/devtools/extensions/devtools_experimental/devtools.js new file mode 100644 index 0000000..9346f95 --- /dev/null +++ b/chrome/test/data/devtools/extensions/devtools_experimental/devtools.js @@ -0,0 +1,14 @@ +function output(msg) { + chrome.devtools.inspectedWindow.eval("console.log(unescape('" + + escape(msg) + "'));"); +} + +function test() { + if (!chrome.experimental || !chrome.experimental.devtools) { + output("FAIL: chrome.experimental.devtools should be defined"); + return; + } + output("PASS"); +} + +test(); diff --git a/chrome/test/data/devtools/extensions/devtools_experimental/manifest.json b/chrome/test/data/devtools/extensions/devtools_experimental/manifest.json new file mode 100644 index 0000000..36b2320 --- /dev/null +++ b/chrome/test/data/devtools/extensions/devtools_experimental/manifest.json @@ -0,0 +1,14 @@ +{ + "description": "Devtools Test extension", + "name": "Devtools Test extension", + "version": "0.1", + "manifest_version": 2, + "devtools_page": "devtools.html", + "web_accessible_resources": [ + "devtools.html", + "devtools.js" + ], + "permissions": [ + "experimental" + ] +} diff --git a/chrome/test/data/devtools/extensions/devtools_extension/devtools.js b/chrome/test/data/devtools/extensions/devtools_extension/devtools.js index e3ada0c..6485401 100644 --- a/chrome/test/data/devtools/extensions/devtools_extension/devtools.js +++ b/chrome/test/data/devtools/extensions/devtools_extension/devtools.js @@ -1,10 +1,10 @@ function output(msg) { - webInspector.console.addMessage(webInspector.console.Severity.Log, msg); + chrome.devtools.inspectedWindow.eval("console.log(unescape('" + + escape(msg) + "'));") } function test() { var expectedAPIs = [ - "console", "inspectedWindow", "network", "panels" @@ -12,13 +12,17 @@ function test() { for (var i = 0; i < expectedAPIs.length; ++i) { var api = expectedAPIs[i]; - if (typeof chrome.experimental.devtools[api] !== "object") { + if (typeof chrome.devtools[api] !== "object") { output("FAIL: API " + api + " is missing"); return; } } - if (typeof chrome.experimental.devtools.inspectedWindow.tabId !== "number") { - output("FAIL: chrome.experimental.inspectedWindow.tabId is not a number"); + if (typeof chrome.devtools.inspectedWindow.tabId !== "number") { + output("FAIL: chrome.inspectedWindow.tabId is not a number"); + return; + } + if (chrome.experimental && chrome.experimental.devtools) { + output("FAIL: chrome.experimental.devtools should not be defined"); return; } output("PASS"); |