Title: [118348] trunk/Source/WebCore
Revision
118348
Author
[email protected]
Date
2012-05-24 04:27:01 -0700 (Thu, 24 May 2012)

Log Message

Web Inspector: introduce console proxy object for HeapSnapshot worker.
https://bugs.webkit.org/show_bug.cgi?id=87346

There is no console object in html5 workers at the moment.
This makes me sad when I'm troubleshooting the HeapSnapshot stuff.
I wrote a simplest proxy object which sends the log, info and error messages
to the WebInspector window.

Reviewed by Pavel Feldman.

* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
* inspector/front-end/HeapSnapshotWorker.js:
(WebInspector.WorkerConsole):
(WebInspector.WorkerConsole.prototype.log):
(WebInspector.WorkerConsole.prototype.error):
(WebInspector.WorkerConsole.prototype.info):
(WebInspector.WorkerConsole.prototype._postMessage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (118347 => 118348)


--- trunk/Source/WebCore/ChangeLog	2012-05-24 11:17:28 UTC (rev 118347)
+++ trunk/Source/WebCore/ChangeLog	2012-05-24 11:27:01 UTC (rev 118348)
@@ -1,3 +1,24 @@
+2012-05-23  Ilya Tikhonovsky  <[email protected]>
+
+        Web Inspector: introduce console proxy object for HeapSnapshot worker.
+        https://bugs.webkit.org/show_bug.cgi?id=87346
+
+        There is no console object in html5 workers at the moment.
+        This makes me sad when I'm troubleshooting the HeapSnapshot stuff.
+        I wrote a simplest proxy object which sends the log, info and error messages
+        to the WebInspector window.
+
+        Reviewed by Pavel Feldman.
+
+        * inspector/front-end/HeapSnapshotProxy.js:
+        (WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
+        * inspector/front-end/HeapSnapshotWorker.js:
+        (WebInspector.WorkerConsole):
+        (WebInspector.WorkerConsole.prototype.log):
+        (WebInspector.WorkerConsole.prototype.error):
+        (WebInspector.WorkerConsole.prototype.info):
+        (WebInspector.WorkerConsole.prototype._postMessage):
+
 2012-05-24  Shinya Kawanaka  <[email protected]>
 
         Elements in Shadow DOM are not resizable.

Modified: trunk/Source/WebCore/inspector/front-end/HeapSnapshotProxy.js (118347 => 118348)


--- trunk/Source/WebCore/inspector/front-end/HeapSnapshotProxy.js	2012-05-24 11:17:28 UTC (rev 118347)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshotProxy.js	2012-05-24 11:27:01 UTC (rev 118348)
@@ -60,7 +60,20 @@
 WebInspector.HeapSnapshotRealWorker.prototype = {
     _messageReceived: function(event)
     {
-        this.dispatchEventToListeners("message", event.data);
+        var message = event.data;
+        if ("callId" in message)
+            this.dispatchEventToListeners("message", message);
+        else {
+            if (message.object !== "console") {
+                console.log(WebInspector.UIString("Worker asks to call a method '%s' on unsupported object '%s'.", message.method, message.object));
+                return;
+            }
+            if (message.method !== "log" && message.method !== "info" && message.method !== "error") {
+                console.log(WebInspector.UIString("Worker asks to call unsuported method '%s' on console object.", message.method));
+                return;
+            }
+            console[message.method].apply(window[message.object], message.arguments);
+        }
     },
 
     postMessage: function(message)

Modified: trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js (118347 => 118348)


--- trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js	2012-05-24 11:17:28 UTC (rev 118347)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js	2012-05-24 11:27:01 UTC (rev 118348)
@@ -41,5 +41,40 @@
     postMessage(message);
 }
 
+/**
+ * @constructor
+ */
+WebInspector.WorkerConsole = function()
+{
+}
+
+WebInspector.WorkerConsole.prototype = {
+    log: function()
+    {
+        this._postMessage("log", Array.prototype.slice.call(arguments));
+    },
+
+    error: function()
+    {
+        this._postMessage("error", Array.prototype.slice.call(arguments));
+    },
+
+    info: function()
+    {
+        this._postMessage("info", Array.prototype.slice.call(arguments));
+    },
+
+    _postMessage: function(method, args)
+    {
+        var rawMessage = {
+            object: "console",
+            method: method,
+            arguments: args
+        };
+        postMessageWrapper(rawMessage);
+    }
+};
+
 var dispatcher = new WebInspector.HeapSnapshotWorkerDispatcher(this, postMessageWrapper);
 addEventListener("message", dispatcher.dispatchMessage.bind(dispatcher), false);
+console = new WebInspector.WorkerConsole();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to