Make exception messages and logged Error objects display consistently.
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Mar 2009 21:38:25 +0000 (21:38 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Mar 2009 21:38:25 +0000 (21:38 +0000)
        https://bugs.webkit.org/show_bug.cgi?id=18983

        Reviewed by Adam Roben.

        * English.lproj/localizedStrings.js: Remove a string for line numbers.
        * inspector/front-end/Console.js:
        (WebInspector.Console.prototype._enterKeyPressed): Pass the exception
        boolean to the ConsoleCommandResult constructor and don't pass level.
        (WebInspector.Console.prototype._formatnode): Fix a className typo.
        (WebInspector.Console.prototype._formaterror): Add an error-message
        classed span around the message to show in red and remove the
        console-message-url class from the link so it doesn't float right.
        Instead enclose the link in parentheses and use displayNameForURL
        to shorten the URL in the link.
        (WebInspector.ConsoleMessage.prototype.toMessageElement): Simplify
        how line numbers are shown since link underlining a string with
        parentheses looks bad.
        (WebInspector.ConsoleCommandResult): Take an exception boolean flag
        instead of a level and get line and URL based on that flag.
        * inspector/front-end/inspector.css: Tweaks to the styles.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41364 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/English.lproj/localizedStrings.js
WebCore/inspector/front-end/Console.js
WebCore/inspector/front-end/inspector.css

index f3ab40e720a40e8c23c6e4538f34d6bea3228ae3..60da9b053c07b4110290cea6b7e3a95043730f29 100644 (file)
@@ -1,3 +1,28 @@
+2009-03-02  Timothy Hatcher  <timothy@apple.com>
+
+        Make exception messages and logged Error objects display consistently.
+
+        https://bugs.webkit.org/show_bug.cgi?id=18983
+
+        Reviewed by Adam Roben.
+
+        * English.lproj/localizedStrings.js: Remove a string for line numbers.
+        * inspector/front-end/Console.js:
+        (WebInspector.Console.prototype._enterKeyPressed): Pass the exception
+        boolean to the ConsoleCommandResult constructor and don't pass level.
+        (WebInspector.Console.prototype._formatnode): Fix a className typo.
+        (WebInspector.Console.prototype._formaterror): Add an error-message
+        classed span around the message to show in red and remove the
+        console-message-url class from the link so it doesn't float right.
+        Instead enclose the link in parentheses and use displayNameForURL
+        to shorten the URL in the link.
+        (WebInspector.ConsoleMessage.prototype.toMessageElement): Simplify
+        how line numbers are shown since link underlining a string with
+        parentheses looks bad.
+        (WebInspector.ConsoleCommandResult): Take an exception boolean flag
+        instead of a level and get line and URL based on that flag.
+        * inspector/front-end/inspector.css: Tweaks to the styles.
+
 2009-03-02  Ojan Vafai  <ojan@chromium.org>
 
         Reviewed by Adele Peterson.
index 8a95d59e42ee4810eeb6fc9c44a93a191f258594..ffc49b5344b4bd7290bfc8a94b203c774c06a1cd 100644 (file)
Binary files a/WebCore/English.lproj/localizedStrings.js and b/WebCore/English.lproj/localizedStrings.js differ
index 04bf1be5e579d351867112d75064bdd0284071fc..dca90be030ce7bbabfbf74a1de37641a46b508d5 100644 (file)
@@ -462,8 +462,7 @@ WebInspector.Console.prototype = {
         this.prompt.historyOffset = 0;
         this.prompt.text = "";
 
-        var level = (exception ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log);
-        this.addMessage(new WebInspector.ConsoleCommandResult(result, level, commandMessage));
+        this.addMessage(new WebInspector.ConsoleCommandResult(result, exception, commandMessage));
     },
 
     _mouseOverNode: function(event)
@@ -546,7 +545,7 @@ WebInspector.Console.prototype = {
     _formatnode: function(node, elem, inline)
     {
         var anchor = document.createElement("a");
-        anchor.className = "inspectible-node";
+        anchor.className = "inspectable-node";
         anchor.innerHTML = nodeTitleInfo.call(node).title;
         anchor.representedNode = node;
         anchor.addEventListener("mouseover", this._mouseOverNode.bind(this), false);
@@ -568,21 +567,26 @@ WebInspector.Console.prototype = {
 
     _formaterror: function(obj, elem, inline)
     {
-        elem.appendChild(document.createTextNode(obj.name + ": " + obj.message + " "));
+        var messageElement = document.createElement("span");
+        messageElement.className = "error-message";
+        messageElement.textContent = obj.name + ": " + obj.message;
+        elem.appendChild(messageElement);
 
         if (obj.sourceURL) {
             var urlElement = document.createElement("a");
-            urlElement.className = "console-message-url webkit-html-resource-link";
+            urlElement.className = "webkit-html-resource-link";
             urlElement.href = obj.sourceURL;
             urlElement.lineNumber = obj.line;
             urlElement.preferredPanel = "scripts";
 
             if (obj.line > 0)
-                urlElement.textContent = WebInspector.UIString("%s (line %d)", obj.sourceURL, obj.line);
+                urlElement.textContent = WebInspector.displayNameForURL(obj.sourceURL) + ":" + obj.line;
             else
-                urlElement.textContent = obj.sourceURL;
+                urlElement.textContent = WebInspector.displayNameForURL(obj.sourceURL);
 
+            elem.appendChild(document.createTextNode(" ("));
             elem.appendChild(urlElement);
+            elem.appendChild(document.createTextNode(")"));
         }
     },
 }
@@ -761,7 +765,7 @@ WebInspector.ConsoleMessage.prototype = {
                 urlElement.preferredPanel = "scripts";
 
             if (this.line > 0)
-                urlElement.textContent = WebInspector.UIString("%s (line %d)", WebInspector.displayNameForURL(this.url), this.line);
+                urlElement.textContent = WebInspector.displayNameForURL(this.url) + ":" + this.line;
             else
                 urlElement.textContent = WebInspector.displayNameForURL(this.url);
 
@@ -883,9 +887,14 @@ WebInspector.ConsoleCommand.prototype = {
     }
 }
 
-WebInspector.ConsoleCommandResult = function(result, level, originatingCommand)
+WebInspector.ConsoleCommandResult = function(result, exception, originatingCommand)
 {
-    WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, level, -1, null, null, 1, result);
+    var level = (exception ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log);
+    var message = (exception ? String(result) : result);
+    var line = (exception ? result.line : -1);
+    var url = (exception ? result.sourceURL : null);
+
+    WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, level, line, url, null, 1, message);
 
     this.originatingCommand = originatingCommand;
 }
index 39b384008a4415b89fcae77051f8c541026c881e..ce2ffb47727d49802f42701115b320a234227619 100644 (file)
@@ -463,7 +463,7 @@ body.console-visible #console {
     background-image: url(Images/userInputIcon.png);
 }
 
-.console-user-command-result::before {
+.console-user-command-result.console-log-level::before {
     background-image: url(Images/userInputResultIcon.png);
 }
 
@@ -478,7 +478,7 @@ body.console-visible #console {
     border-bottom: none;
 }
 
-.console-adjacent-user-command-result + .console-user-command-result::before {
+.console-adjacent-user-command-result + .console-user-command-result.console-log-level::before {
     background-image: none;
 }
 
@@ -573,18 +573,17 @@ body.console-visible #console {
     color: rgb(0, 128, 255);
 }
 
-.console-message-url {
-    color: rgb(33%, 33%, 33%) !important;
+#console-messages a {
+    color: rgb(33%, 33%, 33%);
     cursor: pointer;
-    float: right;
 }
 
-.console-message-url:hover {
+#console-messages a:hover {
     color: rgb(15%, 15%, 15%);
 }
 
-.console-message-url:hover::after {
-    opacity: 1;
+.console-message-url {
+    float: right;
 }
 
 .console-group-messages .section {
@@ -643,13 +642,21 @@ body.console-visible #console {
     padding-left: 0 !important;
 }
 
+.error-message {
+    color: red;
+}
+
 .auto-complete-text {
     color: rgb(128, 128, 128);
     -webkit-user-select: none;
     -webkit-user-modify: read-only;
 }
 
-.inspectible-node:hover {
+.inspectable-node {
+    color: black !important;
+}
+
+.inspectable-node:hover {
     background-color: rgba(56, 121, 217, 0.1);
     -webkit-border-radius: 5px;
     padding: 0 5px 1px;