summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/debugger/devtools_sanity_unittest.cc19
-rw-r--r--chrome/test/data/devtools/extensions/devtools_experimental/devtools.html5
-rw-r--r--chrome/test/data/devtools/extensions/devtools_experimental/devtools.js14
-rw-r--r--chrome/test/data/devtools/extensions/devtools_experimental/manifest.json14
-rw-r--r--chrome/test/data/devtools/extensions/devtools_extension/devtools.js14
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");