Changeset 35616
- Timestamp:
- 08/06/08 16:07:27 (4 months ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 modified
-
ChangeLog (modified) (1 diff)
-
page/inspector/Console.js (modified) (3 diffs)
-
page/inspector/inspector.js (modified) (1 diff)
-
page/inspector/utilities.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r35615 r35616 1 2008-08-06 Kevin McCullough <kmccullough@apple.com> 2 3 Reviewed by Tim. 4 5 - Created a new function to create DOM links from text without 6 converting back and forth from HTML and messing with escaping special 7 characters. 8 9 * page/inspector/Console.js: 10 * page/inspector/inspector.js: 11 * page/inspector/utilities.js: 12 1 13 2008-08-06 Eric Seidel <eric@webkit.org> 2 14 -
trunk/WebCore/page/inspector/Console.js
r35607 r35616 407 407 if (plainText) 408 408 elem.appendChild(document.createTextNode("\"" + str + "\"")); 409 else 410 elem.insertAdjacentHTML("beforeEnd", "\"" + WebInspector.linkifyString(str) + "\""); 409 else { 410 elem.appendChild(document.createTextNode("\"")); 411 elem.appendChild(WebInspector.linkifyStringAsFragment(str)); 412 elem.appendChild(document.createTextNode("\"")); 413 } 411 414 }, 412 415 … … 516 519 { 517 520 if (!(b instanceof Node)) 518 a. insertAdjacentHTML("beforeEnd", WebInspector.linkifyString(b.toString()));521 a.appendChild(WebInspector.linkifyStringAsFragment(b.toString())); 519 522 else 520 523 a.appendChild(b); … … 531 534 for (var i = 0; i < parameters.length; ++i) { 532 535 if (typeof parameters[i] === "string") 533 formattedResult. insertAdjacentHTML("beforeEnd", WebInspector.linkifyString(parameters[i]));536 formattedResult.appendChild(WebInspector.linkifyStringAsFragment(parameters[i])); 534 537 else 535 538 formattedResult.appendChild(formatForConsole(parameters[i])); -
trunk/WebCore/page/inspector/inspector.js
r35607 r35616 916 916 } 917 917 918 WebInspector.linkifyString = function(string) 919 { 920 function linkify(url) 921 { 922 url = url.unescapeHTML(); 923 var realURL = (url.indexOf("www.") === 0 ? "http://" + url : url); 924 return WebInspector.linkifyURL(realURL, url, null, (realURL in WebInspector.resourceURLMap)); 925 } 926 927 string = string.escapeHTML(); 928 return string.replace(new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}://|www\\.)[\\w$\\-_+*'=\\|/\\\\(){}[\\]%@&#~,:;.!?]{4,}[\\w$\\-_+*=\\|/\\\\({%@&#~]"), linkify); 918 WebInspector.linkifyStringAsFragment = function(string) 919 { 920 var container = document.createDocumentFragment(); 921 var linkStringRegEx = new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}://|www\\.)[\\w$\\-_+*'=\\|/\\\\(){}[\\]%@&#~,:;.!?]{4,}[\\w$\\-_+*=\\|/\\\\({%@&#~]"); 922 923 while (string) { 924 var linkString = linkStringRegEx.exec(string); 925 if (!linkString) 926 break; 927 928 linkString = linkString[0]; 929 var linkIndex = string.indexOf(linkString); 930 var nonLink = string.substring(0, linkIndex); 931 container.appendChild(document.createTextNode(nonLink)); 932 var realURL = (linkString.indexOf("www.") === 0 ? "http://" + linkString : linkString); 933 container.appendChild(WebInspector.linkifyURLAsNode(realURL, linkString, null, (realURL in WebInspector.resourceURLMap))); 934 string = string.substring(linkIndex + linkString.length, string.length); 935 } 936 937 if (string) 938 container.appendChild(document.createTextNode(string)); 939 940 return container; 941 } 942 943 WebInspector.linkifyURLAsNode = function(url, linkText, classes, isExternal) 944 { 945 if (!linkText) 946 linkText = url; 947 classes = (classes ? classes + " " : ""); 948 classes += isExternal ? "webkit-html-external-link" : "webkit-html-resource-link"; 949 950 var a = document.createElement("a"); 951 a.href = url; 952 a.className = classes; 953 a.title = url; 954 a.target = "_blank"; 955 a.textContent = linkText; 956 957 return a; 929 958 } 930 959 -
trunk/WebCore/page/inspector/utilities.js
r35607 r35616 349 349 { 350 350 return this.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"); 351 }352 353 String.prototype.unescapeHTML = function()354 {355 return this.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");356 351 } 357 352