Title: [134362] branches/chromium/1312
- Revision
- 134362
- Author
- [email protected]
- Date
- 2012-11-12 22:08:03 -0800 (Mon, 12 Nov 2012)
Log Message
Merge 133030 - Web Inspector: page crash when pausing in dedicated worker
https://bugs.webkit.org/show_bug.cgi?id=100837
Reviewed by Pavel Feldman.
Source/WebCore:
Pass debugger agent to InjectedScriptHost::init in case of workers.
Test: inspector-protocol/debugger-pause-dedicated-worker.html
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
LayoutTests:
Test that Debugger.pause works for dedicated workers. The test is skipped
on all platforms that use JSC as worker debugging is not supported there
yet.
* http/tests/inspector-protocol/resources/InspectorTest.js:
(WebInspector.dispatchMessageFromBackend):
* inspector-protocol/debugger-pause-dedicated-worker-expected.txt: Added.
* inspector-protocol/debugger-pause-dedicated-worker.html: Added.
* inspector-protocol/resources/dedicated-worker.js: Added.
(onmessage):
(doWork):
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
[email protected]
Review URL: https://codereview.chromium.org/11275274
Modified Paths
Added Paths
Diff
Modified: branches/chromium/1312/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js (134361 => 134362)
--- branches/chromium/1312/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js 2012-11-13 06:04:51 UTC (rev 134361)
+++ branches/chromium/1312/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js 2012-11-13 06:08:03 UTC (rev 134362)
@@ -27,6 +27,7 @@
InspectorTest = {};
InspectorTest._dispatchTable = [];
InspectorTest._requestId = -1;
+InspectorTest.eventHandler = {};
/**
* @param {string} method
@@ -56,6 +57,11 @@
var handler = InspectorTest._dispatchTable[messageId];
if (handler && typeof handler === "function")
handler(messageObject);
+ } else {
+ var eventName = messageObject["method"];
+ var eventHandler = InspectorTest.eventHandler[eventName];
+ if (eventHandler)
+ eventHandler(messageObject);
}
}
Copied: branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt (from rev 133030, trunk/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt) (0 => 134362)
--- branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt (rev 0)
+++ branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt 2012-11-13 06:08:03 UTC (rev 134362)
@@ -0,0 +1,6 @@
+Started worker
+Worker created
+didEnableWorkerDebugging
+didConnectToWorker
+SUCCESS: Worker paused
+
Copied: branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html (from rev 133030, trunk/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html) (0 => 134362)
--- branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html (rev 0)
+++ branches/chromium/1312/LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html 2012-11-13 06:08:03 UTC (rev 134362)
@@ -0,0 +1,76 @@
+<html>
+<head>
+<script type="text/_javascript_" src=""
+<script>
+
+
+var worker;
+
+function startWorkerAndRunTest()
+{
+ worker = new Worker("resources/dedicated-worker.js");
+ worker._onmessage_ = function(event) { };
+ worker.postMessage(1);
+ log("Started worker");
+ runTest();
+}
+
+
+function test()
+{
+
+ var workerId;
+ var workerRequestId = 1;
+ function sendCommandToWorker(method, params)
+ {
+ InspectorTest.sendCommand("Worker.sendMessageToWorker",
+ {
+ "workerId": workerId,
+ "message": { "method": method,
+ "params": params,
+ "id": workerRequestId++ }
+ });
+ }
+
+ function didEnableWorkerDebugging(messageObject)
+ {
+ if ("error" in messageObject) {
+ InspectorTest.log("FAIL: Couldn't enable worker debugger: " + messageObject.error.message);
+ InspectorTest.completeTest();
+ return;
+ }
+ InspectorTest.log("didEnableWorkerDebugging");
+ }
+ InspectorTest.sendCommand("Worker.enable", {}, didEnableWorkerDebugging);
+
+
+ InspectorTest.eventHandler["Worker.workerCreated"] = function(messageObject)
+ {
+ workerId = messageObject["params"]["workerId"];
+ InspectorTest.log("Worker created");
+ InspectorTest.sendCommand("Worker.connectToWorker", { "workerId": workerId }, didConnectToWorker);
+
+ function didConnectToWorker(messageObject)
+ {
+ InspectorTest.log("didConnectToWorker");
+ sendCommandToWorker("Debugger.enable", {});
+ sendCommandToWorker("Debugger.pause", {});
+ }
+ }
+
+ InspectorTest.eventHandler["Worker.dispatchMessageFromWorker"] = function(messageObject)
+ {
+ var message = messageObject["params"]["message"];
+ if (message["method"] === "Debugger.paused") {
+ InspectorTest.log("SUCCESS: Worker paused");
+ sendCommandToWorker("Debugger.disable", {});
+ InspectorTest.completeTest();
+ }
+ }
+
+}
+</script>
+</head>
+<body _onLoad_="startWorkerAndRunTest();">
+</body>
+</html>
Modified: branches/chromium/1312/Source/WebCore/inspector/WorkerInspectorController.cpp (134361 => 134362)
--- branches/chromium/1312/Source/WebCore/inspector/WorkerInspectorController.cpp 2012-11-13 06:04:51 UTC (rev 134361)
+++ branches/chromium/1312/Source/WebCore/inspector/WorkerInspectorController.cpp 2012-11-13 06:08:03 UTC (rev 134362)
@@ -114,7 +114,9 @@
#endif
, 0
, 0
- , 0
+#if ENABLE(_javascript__DEBUGGER)
+ , m_debuggerAgent.get()
+#endif
);
#if ENABLE(_javascript__DEBUGGER)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes