[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 01:00:43 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit c09c4d3d621aae9ad1fec5db5e7f156cc3b15a53
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jan 11 22:33:06 2010 +0000

    2010-01-11  Alexander Pavlov  <apavlov at chromium.org>
    
            Reviewed by Pavel Feldman.
    
            Rewrite relative URLs in the ElementsTreeOutline to make them navigable
    
            Targets for "src" and "href" attribute values in the Elements outline tree
            are rewritten to full URLs whenever possible.
            https://bugs.webkit.org/show_bug.cgi?id=33024
    
            * inspector/elements-panel-rewrite-href-expected.txt: Added.
            * inspector/elements-panel-rewrite-href.html: Added.
    2010-01-11  Alexander Pavlov  <apavlov at chromium.org>
    
            Reviewed by Pavel Feldman.
    
            Rewrite relative URLs in the ElementsTreeOutline to make them navigable
    
            Targets for "src" and "href" attribute values in the Elements outline tree
            are rewritten to full URLs whenever possible.
            https://bugs.webkit.org/show_bug.cgi?id=33024
    
            Test: inspector/elements-panel-rewrite-href.html
    
            * inspector/front-end/ElementsTreeOutline.js:
            (WebInspector.ElementsTreeElement.prototype._rewriteAttrHref):
            (WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
            * inspector/front-end/inspector.js:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53100 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 6f2a9f9..b83cceb 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-11  Alexander Pavlov  <apavlov at chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Rewrite relative URLs in the ElementsTreeOutline to make them navigable
+
+        Targets for "src" and "href" attribute values in the Elements outline tree
+        are rewritten to full URLs whenever possible.
+        https://bugs.webkit.org/show_bug.cgi?id=33024
+
+        * inspector/elements-panel-rewrite-href-expected.txt: Added.
+        * inspector/elements-panel-rewrite-href.html: Added.
+
 2010-01-11  Csaba Osztrogonác  <ossy at webkit.org>
 
         Unreviewed trivial fix.
diff --git a/LayoutTests/inspector/elements-panel-rewrite-href-expected.txt b/LayoutTests/inspector/elements-panel-rewrite-href-expected.txt
new file mode 100644
index 0000000..4d8a417
--- /dev/null
+++ b/LayoutTests/inspector/elements-panel-rewrite-href-expected.txt
@@ -0,0 +1,7 @@
+Tests that src and href element targets are rewritten properly.
+
+[,bogusSheet1.css]
+[LayoutTests,inspector,bogusSheet2.css]
+[LayoutTests,inspector,inspector-test.js]
+[LayoutTests,inspector,elements-tests.js]
+
diff --git a/LayoutTests/inspector/elements-panel-rewrite-href.html b/LayoutTests/inspector/elements-panel-rewrite-href.html
new file mode 100644
index 0000000..22a1029
--- /dev/null
+++ b/LayoutTests/inspector/elements-panel-rewrite-href.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<link rel="stylesheet" src="/bogusSheet1.css">
+<link rel="stylesheet" src="bogusSheet2.css">
+<script src="inspector-test.js"></script>
+<script src="elements-tests.js"></script>
+<script>
+
+function doit()
+{
+    function callback(result)
+    {
+        for (var i = 0; i < result.length; ++i)
+            output("[" + result[i] + "]");
+        notifyDone();
+    }
+    evaluateInWebInspector("frontend_testRewriteHrefs", callback);
+}
+
+
+// Frontend functions.
+
+function frontend_testRewriteHrefs(testController)
+{
+    testController.waitUntilDone();
+    // Need test to be async to expand whole the tree first.
+    frontend_expandDOMSubtree(WebInspector.domAgent.document);
+    testController.runAfterPendingDispatches(function() {
+        frontend_testRewriteHrefsContinuation(testController);
+    });
+}
+
+function frontend_testRewriteHrefsContinuation(testController)
+{
+    var innerMapping = WebInspector.domAgent._idToDOMNode;
+    var result = [];
+
+    for (var nodeId in innerMapping) {
+        var node = innerMapping[nodeId];
+        if (node.nodeName === "LINK" || node.nodeName === "SCRIPT") {
+            var segments = [];
+            var href = WebInspector.ElementsTreeElement.prototype._rewriteAttrHref(node, node.getAttribute("src") || node.getAttribute("href"));
+            if (!href) {
+                segments.push("<empty>");
+                continue;
+            }
+            var match = href.match(WebInspector.URLRegExp);
+            if (!match)
+                testController.notifyDone("FAIL: no URL match for <" + href + ">");
+            var split = match[4].split("/");
+            for (var i = split.length - 1, j = 0; j < 3 && i >= 0; --i, ++j)
+                segments.push(split[i]);
+            result.push(segments.reverse());
+        }
+    }
+    testController.notifyDone(result);
+}
+
+</script>
+</head>
+
+<body onload="onload()">
+<p>
+Tests that src and href element targets are rewritten properly.
+</p>
+
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index e49099c..5964019 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-01-11  Alexander Pavlov  <apavlov at chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Rewrite relative URLs in the ElementsTreeOutline to make them navigable
+
+        Targets for "src" and "href" attribute values in the Elements outline tree
+        are rewritten to full URLs whenever possible.
+        https://bugs.webkit.org/show_bug.cgi?id=33024
+
+        Test: inspector/elements-panel-rewrite-href.html
+
+        * inspector/front-end/ElementsTreeOutline.js:
+        (WebInspector.ElementsTreeElement.prototype._rewriteAttrHref):
+        (WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
+        * inspector/front-end/inspector.js:
+
 2010-01-11  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Not reviewed. Attempt to fix windows builds, by removing the no-longer existant JSSVGPointListCustom.cpp from JSBindingsAllInOne.cpp.
diff --git a/WebCore/inspector/front-end/ElementsTreeOutline.js b/WebCore/inspector/front-end/ElementsTreeOutline.js
index 74a422f..12cd1aa 100644
--- a/WebCore/inspector/front-end/ElementsTreeOutline.js
+++ b/WebCore/inspector/front-end/ElementsTreeOutline.js
@@ -893,6 +893,40 @@ WebInspector.ElementsTreeElement.prototype = {
             this.createTooltipForImageNode(this.representedObject, callback);
     },
 
+    _rewriteAttrHref: function(node, hrefValue)
+    {
+        if (!hrefValue || hrefValue.indexOf("://") > 0)
+            return hrefValue;
+
+        var match;
+        var documentURL;
+        for (var frameOwnerCandidate = node; frameOwnerCandidate; frameOwnerCandidate = frameOwnerCandidate.parentNode) {
+            if (frameOwnerCandidate.documentURL) {
+                documentURL = frameOwnerCandidate.documentURL;
+                break;
+            }
+        }
+        if (documentURL) {
+            match = documentURL.match(WebInspector.URLRegExp);
+            if (match) {
+                var path = hrefValue;
+                if (path.charAt(0) !== "/") {
+                    var documentPath = match[4] || "/";
+                    path = documentPath.substring(0, documentPath.lastIndexOf("/")) + "/" + path;
+                }
+                return match[1] + "://" + match[2] + (match[3] ? (":" + match[3]) : "") + path;
+            }
+        }
+
+        // documentURL not found or has bad value
+        for (var url in WebInspector.resourceURLMap) {
+            match = url.match(WebInspector.URLRegExp);
+            if (match && match[4] === hrefValue)
+                return url;
+        }
+        return hrefValue;
+    },
+
     _nodeTitleInfo: function(node, hasChildren, linkify, tooltipText)
     {
         var info = {title: "", hasChildren: hasChildren};
@@ -913,7 +947,7 @@ WebInspector.ElementsTreeElement.prototype = {
                         var value = attr.value;
                         if (linkify && (attr.name === "src" || attr.name === "href")) {
                             var value = value.replace(/([\/;:\)\]\}])/g, "$1\u200B");
-                            info.title += linkify(attr.value, value, "webkit-html-attribute-value", node.nodeName.toLowerCase() == "a", tooltipText);
+                            info.title += linkify(this._rewriteAttrHref(node, attr.value), value, "webkit-html-attribute-value", node.nodeName.toLowerCase() == "a", tooltipText);
                         } else {
                             var value = value.escapeHTML();
                             value = value.replace(/([\/;:\)\]\}])/g, "$1&#8203;");
diff --git a/WebCore/inspector/front-end/inspector.js b/WebCore/inspector/front-end/inspector.js
index e6ae7ff..c4f458d 100644
--- a/WebCore/inspector/front-end/inspector.js
+++ b/WebCore/inspector/front-end/inspector.js
@@ -62,7 +62,7 @@ var WebInspector = {
     // 3 - ?port
     // 4 - ?path
     // 5 - ?fragment
-    URLRegExp: /^(http[s]?|file):\/\/([^\/:]+)(?::([\d]+))?(?:(\/[^#]*)(?:#(.*))?)?$/i,
+    URLRegExp: /^(http[s]?|file):\/\/([^\/:]*)(?::([\d]+))?(?:(\/[^#]*)(?:#(.*))?)?$/i,
 
     get platform()
     {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list