[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

steveblock at google.com steveblock at google.com
Wed Dec 22 14:39:33 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 9df838a4a72a6a08f2702625cd7c03f5e415f260
Author: steveblock at google.com <steveblock at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 15 00:24:01 2010 +0000

    2010-10-14  Steve Block  <steveblock at google.com>
    
            Reviewed by Adam Barth.
    
            Document behaviour of href when document base URI is changed after href atribute has been set
            https://bugs.webkit.org/show_bug.cgi?id=47665
    
            * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-prevents-rebase.js: Added.
            * fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase-expected.txt: Added.
            * fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase.html: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 1a5f205..01d5dd6 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-10-14  Steve Block  <steveblock at google.com>
+
+        Reviewed by Adam Barth.
+
+        Document behaviour of href when document base URI is changed after href atribute has been set
+        https://bugs.webkit.org/show_bug.cgi?id=47665
+
+        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-prevents-rebase.js: Added.
+        * fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase-expected.txt: Added.
+        * fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase.html: Added.
+
 2010-10-08  Martin Robinson  <mrobinson at igalia.com>
 
         Reviewed by Xan Lopez.
diff --git a/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-prevents-rebase.js b/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-prevents-rebase.js
new file mode 100644
index 0000000..139a9e5
--- /dev/null
+++ b/LayoutTests/fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-prevents-rebase.js
@@ -0,0 +1,118 @@
+description('Tests that when an href attribute is set, the href is no longer subject to updates to the document base URI.');
+
+var a = document.createElement('a');
+var base = document.createElement('base');
+document.head.appendChild(base);
+
+
+debug("Search attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "?search";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://new_base/?search'");
+
+debug("Search attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "?foo";
+a.search = "search";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://old_base/?search'");
+debug('');
+
+
+debug("Pathname attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "path";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://new_base/path'");
+
+debug("Pathname attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "foo";
+a.pathname = "path";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://old_base/path'");
+debug('');
+
+
+debug("Hash attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "#hash";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://new_base/#hash'");
+
+debug("Pathname attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "#foo";
+a.hash = "hash";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://old_base/#hash'");
+debug('');
+
+
+debug('Note that for the following attributes, updating the document base URI has no effect because we have to use an abosulte URL for the href in order to set an initial value for the attribute we wish to update. They are included for completeness.');
+debug('');
+
+
+debug("Host attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "http://host:0";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host:0/'");
+
+debug("Host attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "http://foo:80";
+a.host = "host:0";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host:0/'");
+debug('');
+
+
+debug("Hostname attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "http://host";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host/'");
+
+debug("Hostname attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "http://foo";
+a.hostname = "host";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host/'");
+debug('');
+
+
+debug("Protocol attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "protocol:";
+base.href = "http://new_base/";
+shouldBe("a.href", "'protocol:'");
+
+debug("Protocol attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "foo:";
+a.protocol = "protocol:";
+base.href = "http://new_base/";
+shouldBe("a.href", "'protocol:'");
+debug('');
+
+
+debug("Port attribute, update document base URI without attribute having been set");
+base.href = "http://old_base/";
+a.href = "http://host:0";
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host:0/'");
+
+debug("Port attribute, update document base URI after attribute has been set");
+base.href = "http://old_base/";
+a.href = "http://host:80";
+a.port = 0;
+base.href = "http://new_base/";
+shouldBe("a.href", "'http://host:0/'");
+debug('');
+
+
+base.href = '';
+var successfullyParsed = true;
diff --git a/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase-expected.txt b/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase-expected.txt
new file mode 100644
index 0000000..c7de5cb
--- /dev/null
+++ b/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase-expected.txt
@@ -0,0 +1,46 @@
+Tests that when an href attribute is set, the href is no longer subject to updates to the document base URI.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Search attribute, update document base URI without attribute having been set
+PASS a.href is 'http://new_base/?search'
+Search attribute, update document base URI after attribute has been set
+PASS a.href is 'http://old_base/?search'
+
+Pathname attribute, update document base URI without attribute having been set
+PASS a.href is 'http://new_base/path'
+Pathname attribute, update document base URI after attribute has been set
+PASS a.href is 'http://old_base/path'
+
+Hash attribute, update document base URI without attribute having been set
+PASS a.href is 'http://new_base/#hash'
+Pathname attribute, update document base URI after attribute has been set
+PASS a.href is 'http://old_base/#hash'
+
+Note that for the following attributes, updating the document base URI has no effect because we have to use an abosulte URL for the href in order to set an initial value for the attribute we wish to update. They are included for completeness.
+
+Host attribute, update document base URI without attribute having been set
+PASS a.href is 'http://host:0/'
+Host attribute, update document base URI after attribute has been set
+PASS a.href is 'http://host:0/'
+
+Hostname attribute, update document base URI without attribute having been set
+PASS a.href is 'http://host/'
+Hostname attribute, update document base URI after attribute has been set
+PASS a.href is 'http://host/'
+
+Protocol attribute, update document base URI without attribute having been set
+PASS a.href is 'protocol:'
+Protocol attribute, update document base URI after attribute has been set
+PASS a.href is 'protocol:'
+
+Port attribute, update document base URI without attribute having been set
+PASS a.href is 'http://host:0/'
+Port attribute, update document base URI after attribute has been set
+PASS a.href is 'http://host:0/'
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase.html b/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase.html
new file mode 100644
index 0000000..bfc1c29
--- /dev/null
+++ b/LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-prevents-rebase.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/set-href-attribute-prevents-rebase.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list