Log Message
2011-09-02 Andrey Kosyakov <ca...@chromium.org> Web Inspector: [Extensions API] expose console API https://bugs.webkit.org/show_bug.cgi?id=67506
Reviewed by Pavel Feldman. Test: inspector/extensions/extensions-console.html * inspector/front-end/ConsoleMessage.js: (WebInspector.ConsoleMessage.prototype.get text): (WebInspector.ConsoleMessage.prototype.get parameters): * inspector/front-end/ExtensionAPI.js: (WebInspector.injectedExtensionAPI.InspectorExtensionAPI): (WebInspector.injectedExtensionAPI): (WebInspector.injectedExtensionAPI.Console.prototype.getMessages): (WebInspector.injectedExtensionAPI.Console.prototype.addMessage): (WebInspector.injectedExtensionAPI.Console.prototype.get MessageLevel): (WebInspector.injectedExtensionAPI.Network.dispatchRequestEvent): (WebInspector.injectedExtensionAPI.Network): (WebInspector.injectedExtensionAPI.AuditCategoryImpl.dispatchAuditEvent): (WebInspector.injectedExtensionAPI.AuditCategoryImpl): (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceEvent): (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceContentEvent): (WebInspector.injectedExtensionAPI.InspectedWindow): * inspector/front-end/ExtensionCommon.js: (WebInspector.commonExtensionSymbols): * inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer): (WebInspector.ExtensionServer.prototype._notifyConsoleMessageAdded): (WebInspector.ExtensionServer.prototype._onGetConsoleMessages): (WebInspector.ExtensionServer.prototype._onAddConsoleMessage): (WebInspector.ExtensionServer.prototype._makeConsoleMessage): (WebInspector.ExtensionServer.prototype._makeConsoleMessage.convertParameter): (WebInspector.ExtensionServer.prototype._dispatchCallback): (WebInspector.ExtensionServer.prototype.initExtensions): 2011-09-02 Andrey Kosyakov <ca...@chromium.org> Web Inspector: [Extensions API] expose console API https://bugs.webkit.org/show_bug.cgi?id=67506 Reviewed by Pavel Feldman. * http/tests/inspector/resources/extension-main.js: * inspector/extensions/extensions-api-expected.txt: * inspector/extensions/extensions-console-expected.txt: Added. * inspector/extensions/extensions-console.html: Added.
Modified Paths
- trunk/LayoutTests/ChangeLog
- trunk/LayoutTests/http/tests/inspector/resources/extension-main.js
- trunk/LayoutTests/inspector/extensions/extensions-api-expected.txt
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/inspector/front-end/ConsoleMessage.js
- trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js
- trunk/Source/WebCore/inspector/front-end/ExtensionCommon.js
- trunk/Source/WebCore/inspector/front-end/ExtensionServer.js
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (94665 => 94666)
--- trunk/LayoutTests/ChangeLog 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/LayoutTests/ChangeLog 2011-09-07 13:12:23 UTC (rev 94666)
@@ -1,3 +1,15 @@
+2011-09-02 Andrey Kosyakov <ca...@chromium.org>
+
+ Web Inspector: [Extensions API] expose console API
+ https://bugs.webkit.org/show_bug.cgi?id=67506
+
+ Reviewed by Pavel Feldman.
+
+ * http/tests/inspector/resources/extension-main.js:
+ * inspector/extensions/extensions-api-expected.txt:
+ * inspector/extensions/extensions-console-expected.txt: Added.
+ * inspector/extensions/extensions-console.html: Added.
+
2011-09-07 Oliver Varga <voli...@inf.u-szeged.hu>
Update LayoutTests/platform/qt-arm/fast/dom/Window/window-property-descriptors-expected.txt
Modified: trunk/LayoutTests/http/tests/inspector/resources/extension-main.js (94665 => 94666)
--- trunk/LayoutTests/http/tests/inspector/resources/extension-main.js 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/LayoutTests/http/tests/inspector/resources/extension-main.js 2011-09-07 13:12:23 UTC (rev 94666)
@@ -1,5 +1,7 @@
function trimURL(url)
{
+ if (!url)
+ return;
if (/^data:/.test(url))
return url.replace(/,.*$/, "...");
return url.replace(/.*\//, ".../");
@@ -16,9 +18,7 @@
if (nondeterministicProps && prop in nondeterministicProps) {
var value = nondeterministicProps[prop] === "url" ? trimURL(propValue) : "<" + typeof propValue + ">";
output(prefixWithName + value);
- } else if (propValue === null)
- output(prefixWithName + "null");
- else if (typeof propValue === "object")
+ } else if (typeof propValue === "object" && propValue != null)
dumpObject(propValue, nondeterministicProps, prefix + " ", prefixWithName);
else if (typeof propValue === "string")
output(prefixWithName + "\"" + propValue + "\"");
Modified: trunk/LayoutTests/inspector/extensions/extensions-api-expected.txt (94665 => 94666)
--- trunk/LayoutTests/inspector/extensions/extensions-api-expected.txt 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/LayoutTests/inspector/extensions/extensions-api-expected.txt 2011-09-07 13:12:23 UTC (rev 94666)
@@ -76,6 +76,21 @@
removeListener : <function>
}
}
+ console : {
+ onMessageAdded : {
+ addListener : <function>
+ removeListener : <function>
+ }
+ getMessages : <function>
+ addMessage : <function>
+ Severity : {
+ Tip : "tip"
+ Debug : "debug"
+ Log : "log"
+ Warning : "warning"
+ Error : "error"
+ }
+ }
onReset : {
addListener : <function>
removeListener : <function>
Added: trunk/LayoutTests/inspector/extensions/extensions-console-expected.txt (0 => 94666)
--- trunk/LayoutTests/inspector/extensions/extensions-console-expected.txt (rev 0)
+++ trunk/LayoutTests/inspector/extensions/extensions-console-expected.txt 2011-09-07 13:12:23 UTC (rev 94666)
@@ -0,0 +1,151 @@
+CONSOLE MESSAGE: line 46: log message
+CONSOLE MESSAGE: line 47: debug message
+CONSOLE MESSAGE: line 48: warning message
+CONSOLE MESSAGE: line 49: error message
+CONSOLE MESSAGE: line 50: trace message
+CONSOLE MESSAGE: line 51: log message with two parameters, an integer: %d and a string: %s
+CONSOLE MESSAGE: line 1: log message from evaluated code
+CONSOLE MESSAGE: line 46: log message
+CONSOLE MESSAGE: line 47: debug message
+CONSOLE MESSAGE: line 48: warning message
+CONSOLE MESSAGE: line 49: error message
+CONSOLE MESSAGE: line 50: trace message
+CONSOLE MESSAGE: line 51: log message with two parameters, an integer: %d and a string: %s
+CONSOLE MESSAGE: line 1: log message from evaluated code
+Tests methods of webInspector.console extension API
+
+Started extension.
+Running tests...
+RUNNING TEST: extension_testAddConsoleMessages
+extensions-console.html:46log message console-message console-log-level
+extensions-console.html:47debug message console-message console-log-level
+extensions-console.html:48warning message console-message console-warning-level
+extensions-console.html:49error message console-message console-error-level
+extensions-console.html:50console.trace()logextensions-console.html:50 console-message console-log-level
+extensions-console.html:51log message with two parameters, an integer: 42 and a string: foo console-message console-log-level
+log message from evaluated code console-message console-log-level
+debug message from extension console-message console-debug-level
+test-url.html:42log message from extension console-message console-log-level
+warning message from extension console-message console-warning-level
+error message from extension console-message console-error-level
+RUNNING TEST: extension_testGetConsoleMessages
+{
+ 0 : {
+ severity : "log"
+ text : "log message"
+ url : .../extensions-console.html
+ line : 46
+ }
+ 1 : {
+ severity : "log"
+ text : "debug message"
+ url : .../extensions-console.html
+ line : 47
+ }
+ 2 : {
+ severity : "warning"
+ text : "warning message"
+ url : .../extensions-console.html
+ line : 48
+ }
+ 3 : {
+ severity : "error"
+ text : "error message"
+ url : .../extensions-console.html
+ line : 49
+ }
+ 4 : {
+ severity : "log"
+ text : "trace message"
+ url : .../extensions-console.html
+ line : 50
+ }
+ 5 : {
+ severity : "log"
+ text : "log message with two parameters, an integer: %d and a string: %s"
+ url : .../extensions-console.html
+ line : 51
+ }
+ 6 : {
+ severity : "log"
+ text : "log message from evaluated code"
+ line : 1
+ }
+ 7 : {
+ severity : "debug"
+ text : "debug message from extension"
+ }
+ 8 : {
+ severity : "log"
+ text : "log message from extension"
+ url : test-url.html
+ line : 42
+ }
+ 9 : {
+ severity : "warning"
+ text : "warning message from extension"
+ }
+ 10 : {
+ severity : "error"
+ text : "error message from extension"
+ line : 42
+ }
+}
+RUNNING TEST: extension_testOnConsoleMessageAdded
+{
+ 0 : {
+ severity : "log"
+ text : "log message"
+ url : .../extensions-console.html
+ line : 46
+ }
+}
+{
+ 0 : {
+ severity : "log"
+ text : "debug message"
+ url : .../extensions-console.html
+ line : 47
+ }
+}
+{
+ 0 : {
+ severity : "warning"
+ text : "warning message"
+ url : .../extensions-console.html
+ line : 48
+ }
+}
+{
+ 0 : {
+ severity : "error"
+ text : "error message"
+ url : .../extensions-console.html
+ line : 49
+ }
+}
+{
+ 0 : {
+ severity : "log"
+ text : "trace message"
+ url : .../extensions-console.html
+ line : 50
+ }
+}
+{
+ 0 : {
+ severity : "log"
+ text : "log message with two parameters, an integer: %d and a string: %s"
+ url : .../extensions-console.html
+ line : 51
+ }
+}
+{
+ 0 : {
+ severity : "log"
+ text : "log message from evaluated code"
+ line : 1
+ }
+}
+All tests done.
+
Property changes on: trunk/LayoutTests/inspector/extensions/extensions-console-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/inspector/extensions/extensions-console.html (0 => 94666)
--- trunk/LayoutTests/inspector/extensions/extensions-console.html (rev 0)
+++ trunk/LayoutTests/inspector/extensions/extensions-console.html 2011-09-07 13:12:23 UTC (rev 94666)
@@ -0,0 +1,61 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script src=""
+
+<script type="text/_javascript_">
+
+function extension_testGetConsoleMessages(nextTest)
+{
+ function callback(messages)
+ {
+ dumpObject(messages, { url: "url" });
+ }
+ webInspector.console.getMessages(callbackAndNextTest(callback, nextTest));
+
+}
+
+function extension_testAddConsoleMessages(nextTest)
+{
+ webInspector.console.addMessage(webInspector.console.Severity.Debug, "debug message from extension");
+ webInspector.console.addMessage(webInspector.console.Severity.Log, "log message from extension", "test-url.html", 42);
+ webInspector.console.addMessage(webInspector.console.Severity.Warning, "warning message from extension");
+ webInspector.console.addMessage(webInspector.console.Severity.Error, "error message from extension", null, 42);
+ evaluateOnFrontend("InspectorTest.dumpConsoleMessagesWithClasses(); reply();", nextTest)
+}
+
+function extension_testOnConsoleMessageAdded(nextTest)
+{
+ var expectedMessages = 7;
+
+ function onMessage(message)
+ {
+ dumpObject(Array.prototype.slice.call(arguments, 0), { url: "url" });
+ if (!--expectedMessages) {
+ webInspector.console.onMessageAdded.removeListener(onMessage);
+ nextTest();
+ }
+ }
+ webInspector.console.onMessageAdded.addListener(onMessage);
+ webInspector.inspectedWindow.eval("log();");
+}
+
+function log()
+{
+ console.log("log message");
+ console.debug("debug message");
+ console.warn("warning message");
+ console.error("error message");
+ console.trace("trace message");
+ console.log("log message with two parameters, an integer: %d and a string: %s", 42, "foo");
+ eval("console.log('log message from evaluated code')");
+}
+
+</script>
+</head>
+<body _onload_="log(); runTest()">
+<p>Tests methods of webInspector.console extension API</p>
+<div id="test-div" class="test"></div>
+</body>
+</html>
Property changes on: trunk/LayoutTests/inspector/extensions/extensions-console.html
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (94665 => 94666)
--- trunk/Source/WebCore/ChangeLog 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/Source/WebCore/ChangeLog 2011-09-07 13:12:23 UTC (rev 94666)
@@ -1,3 +1,40 @@
+2011-09-02 Andrey Kosyakov <ca...@chromium.org>
+
+ Web Inspector: [Extensions API] expose console API
+ https://bugs.webkit.org/show_bug.cgi?id=67506
+
+ Reviewed by Pavel Feldman.
+
+ Test: inspector/extensions/extensions-console.html
+
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage.prototype.get text):
+ (WebInspector.ConsoleMessage.prototype.get parameters):
+ * inspector/front-end/ExtensionAPI.js:
+ (WebInspector.injectedExtensionAPI.InspectorExtensionAPI):
+ (WebInspector.injectedExtensionAPI):
+ (WebInspector.injectedExtensionAPI.Console.prototype.getMessages):
+ (WebInspector.injectedExtensionAPI.Console.prototype.addMessage):
+ (WebInspector.injectedExtensionAPI.Console.prototype.get MessageLevel):
+ (WebInspector.injectedExtensionAPI.Network.dispatchRequestEvent):
+ (WebInspector.injectedExtensionAPI.Network):
+ (WebInspector.injectedExtensionAPI.AuditCategoryImpl.dispatchAuditEvent):
+ (WebInspector.injectedExtensionAPI.AuditCategoryImpl):
+ (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceEvent):
+ (WebInspector.injectedExtensionAPI.InspectedWindow.dispatchResourceContentEvent):
+ (WebInspector.injectedExtensionAPI.InspectedWindow):
+ * inspector/front-end/ExtensionCommon.js:
+ (WebInspector.commonExtensionSymbols):
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer):
+ (WebInspector.ExtensionServer.prototype._notifyConsoleMessageAdded):
+ (WebInspector.ExtensionServer.prototype._onGetConsoleMessages):
+ (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
+ (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
+ (WebInspector.ExtensionServer.prototype._makeConsoleMessage.convertParameter):
+ (WebInspector.ExtensionServer.prototype._dispatchCallback):
+ (WebInspector.ExtensionServer.prototype.initExtensions):
+
2011-09-05 Andrey Kosyakov <ca...@chromium.org>
Web Inspector: disable popover when a mouse button is pressed
Modified: trunk/Source/WebCore/inspector/front-end/ConsoleMessage.js (94665 => 94666)
--- trunk/Source/WebCore/inspector/front-end/ConsoleMessage.js 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/Source/WebCore/inspector/front-end/ConsoleMessage.js 2011-09-07 13:12:23 UTC (rev 94666)
@@ -444,6 +444,11 @@
return sourceString + " " + typeString + " " + levelString + ": " + this._formattedMessage.textContent + "\n" + this.url + " line " + this.line;
},
+ get text()
+ {
+ return this._messageText;
+ },
+
isEqual: function(msg)
{
if (!msg)
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js (94665 => 94666)
--- trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js 2011-09-07 13:12:23 UTC (rev 94666)
@@ -93,6 +93,7 @@
this.network = new Network();
defineDeprecatedProperty(this, "webInspector", "resources", "network");
this.timeline = new Timeline();
+ this.console = new Console();
this._onReset_ = new EventSink("reset");
}
@@ -104,15 +105,37 @@
}
}
+function Console()
+{
+ this._onMessageAdded_ = new EventSink("console-message-added");
+}
+
+Console.prototype = {
+ getMessages: function(callback)
+ {
+ extensionServer.sendRequest({ command: "getConsoleMessages" }, callback);
+ },
+
+ addMessage: function(severity, text, url, line)
+ {
+ extensionServer.sendRequest({ command: "addConsoleMessage", severity: severity, text: text, url: url, line: line });
+ },
+
+ get Severity()
+ {
+ return apiPrivate.console.Severity;
+ },
+};
+
function Network()
{
- function requestDispatch(message)
+ function dispatchRequestEvent(message)
{
var request = message.arguments[1];
request.__proto__ = new Request(message.arguments[0]);
this._fire(request);
}
- this._onRequestFinished_ = new EventSink("network-request-finished", requestDispatch);
+ this._onRequestFinished_ = new EventSink("network-request-finished", dispatchRequestEvent);
defineDeprecatedProperty(this, "network", "onFinished", "onRequestFinished");
this._onNavigated_ = new EventSink("inspectedURLChanged");
}
@@ -271,7 +294,7 @@
function AuditCategoryImpl(id)
{
- function auditResultDispatch(request)
+ function dispatchAuditEvent(request)
{
var auditResult = new AuditResult(request.arguments[0]);
try {
@@ -282,7 +305,7 @@
}
}
this._id = id;
- this._onAuditStarted_ = new EventSink("audit-started-" + id, auditResultDispatch);
+ this._onAuditStarted_ = new EventSink("audit-started-" + id, dispatchAuditEvent);
}
function AuditResultImpl(id)
@@ -357,16 +380,16 @@
function InspectedWindow()
{
- function resourceDispatch(message)
+ function dispatchResourceEvent(message)
{
this._fire(new Resource(message.arguments[0]));
}
- function resourceContentDispatch(message)
+ function dispatchResourceContentEvent(message)
{
this._fire(new Resource(message.arguments[0]), message.arguments[1]);
}
- this._onResourceAdded_ = new EventSink("resource-added", resourceDispatch);
- this._onResourceContentCommitted_ = new EventSink("resource-content-committed", resourceContentDispatch);
+ this._onResourceAdded_ = new EventSink("resource-added", dispatchResourceEvent);
+ this._onResourceContentCommitted_ = new EventSink("resource-content-committed", dispatchResourceContentEvent);
}
InspectedWindow.prototype = {
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionCommon.js (94665 => 94666)
--- trunk/Source/WebCore/inspector/front-end/ExtensionCommon.js 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionCommon.js 2011-09-07 13:12:23 UTC (rev 94666)
@@ -39,6 +39,16 @@
Warning: "warning",
Severe: "severe"
};
+
+ if (!apiPrivate.console)
+ apiPrivate.console = {};
+ apiPrivate.console.Severity = {
+ Tip: "tip",
+ Debug: "debug",
+ Log: "log",
+ Warning: "warning",
+ Error: "error"
+ };
}
WebInspector.extensionAPI = {};
Modified: trunk/Source/WebCore/inspector/front-end/ExtensionServer.js (94665 => 94666)
--- trunk/Source/WebCore/inspector/front-end/ExtensionServer.js 2011-09-07 12:31:11 UTC (rev 94665)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionServer.js 2011-09-07 13:12:23 UTC (rev 94666)
@@ -41,13 +41,15 @@
this._allowedOrigins = {};
this._status = new WebInspector.ExtensionStatus();
- this._registerHandler("addRequestHeaders", this._onAddRequestHeaders.bind(this));
this._registerHandler("addAuditCategory", this._onAddAuditCategory.bind(this));
this._registerHandler("addAuditResult", this._onAddAuditResult.bind(this));
+ this._registerHandler("addConsoleMessage", this._onAddConsoleMessage.bind(this));
+ this._registerHandler("addRequestHeaders", this._onAddRequestHeaders.bind(this));
this._registerHandler("createPanel", this._onCreatePanel.bind(this));
this._registerHandler("createSidebarPane", this._onCreateSidebarPane.bind(this));
this._registerHandler("evaluateOnInspectedPage", this._onEvaluateOnInspectedPage.bind(this));
this._registerHandler("getHAR", this._onGetHAR.bind(this));
+ this._registerHandler("getConsoleMessages", this._onGetConsoleMessages.bind(this));
this._registerHandler("getPageResources", this._onGetPageResources.bind(this));
this._registerHandler("getRequestContent", this._onGetRequestContent.bind(this));
this._registerHandler("getResourceContent", this._onGetResourceContent.bind(this));
@@ -61,17 +63,10 @@
this._registerHandler("subscribe", this._onSubscribe.bind(this));
this._registerHandler("unsubscribe", this._onUnsubscribe.bind(this));
- this._registerSubscriptionHandler("timeline-event-recorded", WebInspector.timelineManager.start.bind(WebInspector.timelineManager), WebInspector.timelineManager.stop.bind(WebInspector.timelineManager));
-
window.addEventListener("message", this._onWindowMessage.bind(this), false);
}
WebInspector.ExtensionServer.prototype = {
- _addRecordToTimeline: function(event)
- {
- this._postNotification("timeline-event-recorded", event.data);
- },
-
notifyObjectSelected: function(panelId, objectId)
{
this._postNotification("panel-objectSelected-" + panelId, objectId);
@@ -120,29 +115,11 @@
delete this._clientObjects[auditRun.id];
},
- _notifyResourceAdded: function(event)
- {
- var resource = event.data;
- this._postNotification("resource-added", this._makeResource(resource));
- },
-
notifyResourceContentCommitted: function(resource, content)
{
this._postNotification("resource-content-committed", this._makeResource(resource), content);
},
- _notifyRequestFinished: function(event)
- {
- var request = event.data;
- if (this._hasSubscribers("network-request-finished"))
- this._postNotification("network-request-finished", this._requestId(request), (new WebInspector.HAREntry(request)).build());
- },
-
- _hasSubscribers: function(type)
- {
- return !!this._subscribers[type];
- },
-
_postNotification: function(type, details)
{
var subscribers = this._subscribers[type];
@@ -164,7 +141,7 @@
else {
this._subscribers[message.type] = [ port ];
if (this._subscriptionStartHandlers[message.type])
- this._subscriptionStartHandlers[message.type]()
+ this._subscriptionStartHandlers[message.type]();
}
},
@@ -177,7 +154,7 @@
if (!subscribers.length) {
delete this._subscribers[message.type];
if (this._subscriptionStopHandlers[message.type])
- this._subscriptionStopHandlers[message.type]()
+ this._subscriptionStopHandlers[message.type]();
}
},
@@ -305,11 +282,78 @@
RuntimeAgent.evaluate(evalExpression, "", true, callback.bind(this));
},
- _dispatchCallback: function(requestId, port, result)
+ _onGetConsoleMessages: function()
{
- port.postMessage({ command: "callback", requestId: requestId, result: result });
+ return WebInspector.console.messages.map(this._makeConsoleMessage);
},
+ _onAddConsoleMessage: function(message)
+ {
+ function convertSeverity(level)
+ {
+ switch (level) {
+ case WebInspector.extensionAPI.console.Severity.Tip:
+ return WebInspector.ConsoleMessage.MessageLevel.Tip;
+ case WebInspector.extensionAPI.console.Severity.Log:
+ return WebInspector.ConsoleMessage.MessageLevel.Log;
+ case WebInspector.extensionAPI.console.Severity.Warning:
+ return WebInspector.ConsoleMessage.MessageLevel.Warning;
+ case WebInspector.extensionAPI.console.Severity.Error:
+ return WebInspector.ConsoleMessage.MessageLevel.Error;
+ case WebInspector.extensionAPI.console.Severity.Debug:
+ return WebInspector.ConsoleMessage.MessageLevel.Debug;
+ }
+ }
+ var level = convertSeverity(message.severity);
+ if (!level)
+ return this._status.E_BADARG("message.severity", message.severity);
+
+ var consoleMessage = new WebInspector.ConsoleMessage(
+ WebInspector.ConsoleMessage.MessageSource.JS,
+ WebInspector.ConsoleMessage.MessageType.Log,
+ level,
+ message.line,
+ message.url,
+ 1,
+ message.text,
+ null, // parameters
+ null, // stackTrace
+ null); // networkRequestId
+ WebInspector.console.addMessage(consoleMessage);
+ },
+
+ _makeConsoleMessage: function(message)
+ {
+ function convertLevel(level)
+ {
+ if (!level)
+ return;
+ switch (level) {
+ case WebInspector.ConsoleMessage.MessageLevel.Tip:
+ return WebInspector.extensionAPI.console.Severity.Tip;
+ case WebInspector.ConsoleMessage.MessageLevel.Log:
+ return WebInspector.extensionAPI.console.Severity.Log;
+ case WebInspector.ConsoleMessage.MessageLevel.Warning:
+ return WebInspector.extensionAPI.console.Severity.Warning;
+ case WebInspector.ConsoleMessage.MessageLevel.Error:
+ return WebInspector.extensionAPI.console.Severity.Error;
+ case WebInspector.ConsoleMessage.MessageLevel.Debug:
+ return WebInspector.extensionAPI.console.Severity.Debug;
+ default:
+ return WebInspector.extensionAPI.console.Severity.Log;
+ }
+ }
+ var result = {
+ severity: convertLevel(message.level),
+ text: message.text,
+ };
+ if (message.url)
+ result.url = ""
+ if (message.line)
+ result.line = message.line;
+ return result;
+ },
+
_onGetHAR: function()
{
var requests = WebInspector.networkLog.resources;
@@ -424,17 +468,61 @@
auditRun.cancel();
},
+ _dispatchCallback: function(requestId, port, result)
+ {
+ port.postMessage({ command: "callback", requestId: requestId, result: result });
+ },
+
initExtensions: function()
{
- // The networkManager is normally created after the ExtensionServer is constructed, but before initExtensions() is called.
- WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.ResourceFinished, this._notifyRequestFinished, this);
- WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._inspectedURLChanged, this);
- WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._notifyResourceAdded, this);
- WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded, this._addRecordToTimeline, this);
+ this._registerAutosubscriptionHandler("console-message-added",
+ WebInspector.console, WebInspector.ConsoleModel.Events.MessageAdded, this._notifyConsoleMessageAdded);
+ this._registerAutosubscriptionHandler("network-request-finished",
+ WebInspector.networkManager, WebInspector.NetworkManager.EventTypes.ResourceFinished, this._notifyRequestFinished);
+ this._registerAutosubscriptionHandler("resource-added",
+ WebInspector.resourceTreeModel, WebInspector.ResourceTreeModel.EventTypes.ResourceAdded, this._notifyResourceAdded);
+ function onTimelineSubscriptionStarted()
+ {
+ WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,
+ this._notifyTimelineEventRecorded, this);
+ WebInspector.timelineManager.start();
+ }
+ function onTimelineSubscriptionStopped()
+ {
+ WebInspector.timelineManager.stop();
+ WebInspector.timelineManager.removeEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,
+ this._notifyTimelineEventRecorded, this);
+ }
+ this._registerSubscriptionHandler("timeline-event-recorded", onTimelineSubscriptionStarted.bind(this), onTimelineSubscriptionStopped.bind(this));
+
+ WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,
+ this._inspectedURLChanged, this);
InspectorExtensionRegistry.getExtensionsAsync();
},
+ _notifyConsoleMessageAdded: function(event)
+ {
+ this._postNotification("console-message-added", this._makeConsoleMessage(event.data));
+ },
+
+ _notifyResourceAdded: function(event)
+ {
+ var resource = event.data;
+ this._postNotification("resource-added", this._makeResource(resource));
+ },
+
+ _notifyRequestFinished: function(event)
+ {
+ var request = event.data;
+ this._postNotification("network-request-finished", this._requestId(request), (new WebInspector.HAREntry(request)).build());
+ },
+
+ _notifyTimelineEventRecorded: function(event)
+ {
+ this._postNotification("timeline-event-recorded", event.data);
+ },
+
_addExtensions: function(extensions)
{
const urlOriginRegExp = new RegExp("([^:]+:\/\/[^/]*)\/"); // Can't use regexp literal here, MinJS chokes on it.
@@ -521,6 +609,13 @@
this._subscriptionStopHandlers[eventTopic] = onUnsubscribeLast;
},
+ _registerAutosubscriptionHandler: function(eventTopic, eventTarget, frontendEventType, handler)
+ {
+ this._registerSubscriptionHandler(eventTopic,
+ WebInspector.Object.prototype.addEventListener.bind(eventTarget, frontendEventType, handler, this),
+ WebInspector.Object.prototype.removeEventListener.bind(eventTarget, frontendEventType, handler, this));
+ },
+
_expandResourcePath: function(extensionPath, resourcePath)
{
if (!resourcePath)
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes