Title: [163309] trunk
Revision
163309
Author
jber...@webkit.org
Date
2014-02-03 09:23:47 -0800 (Mon, 03 Feb 2014)

Log Message

Revert r163299 since it broke the ML 32-bit Release build

Source/WebCore:

* html/HTMLAnchorElement.cpp:
(WebCore::parsePortFromStringPosition):
(WebCore::HTMLAnchorElement::hash):
(WebCore::HTMLAnchorElement::setHash):
(WebCore::HTMLAnchorElement::host):
(WebCore::HTMLAnchorElement::setHost):
(WebCore::HTMLAnchorElement::hostname):
(WebCore::HTMLAnchorElement::setHostname):
(WebCore::HTMLAnchorElement::pathname):
(WebCore::HTMLAnchorElement::setPathname):
(WebCore::HTMLAnchorElement::port):
(WebCore::HTMLAnchorElement::setPort):
(WebCore::HTMLAnchorElement::protocol):
(WebCore::HTMLAnchorElement::setProtocol):
(WebCore::HTMLAnchorElement::search):
(WebCore::HTMLAnchorElement::origin):
(WebCore::HTMLAnchorElement::setSearch):
(WebCore::HTMLAnchorElement::toString):
* html/HTMLAnchorElement.h:
* html/HTMLAnchorElement.idl:
* html/HTMLAreaElement.idl:
* html/URLUtils.idl:

LayoutTests:

* fast/dom/HTMLAnchorElement/anchor-password-expected.txt: Removed.
* fast/dom/HTMLAnchorElement/anchor-password.html: Removed.
* fast/dom/HTMLAnchorElement/anchor-username-expected.txt: Removed.
* fast/dom/HTMLAnchorElement/anchor-username.html: Removed.
* fast/dom/HTMLAreaElement/area-password.html: Removed.
* fast/dom/HTMLAreaElement/area-username.html: Removed.
* js/dom/dom-static-property-for-in-iteration-expected.txt:
* js/dom/dom-static-property-for-in-iteration.html:

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (163308 => 163309)


--- trunk/LayoutTests/ChangeLog	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/ChangeLog	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,3 +1,16 @@
+2014-02-03  Jessie Berlin  <jber...@apple.com>
+
+        Revert r163299 since it broke the ML 32-bit Release build
+
+        * fast/dom/HTMLAnchorElement/anchor-password-expected.txt: Removed.
+        * fast/dom/HTMLAnchorElement/anchor-password.html: Removed.
+        * fast/dom/HTMLAnchorElement/anchor-username-expected.txt: Removed.
+        * fast/dom/HTMLAnchorElement/anchor-username.html: Removed.
+        * fast/dom/HTMLAreaElement/area-password.html: Removed.
+        * fast/dom/HTMLAreaElement/area-username.html: Removed.
+        * js/dom/dom-static-property-for-in-iteration-expected.txt:
+        * js/dom/dom-static-property-for-in-iteration.html:
+
 2014-02-03  Mihai Maerean  <mmaer...@adobe.com>
 
         [CSS Regions] Fix selection and hover effect of content in region with overflow:hidden

Deleted: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password-expected.txt (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password-expected.txt	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password-expected.txt	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,21 +0,0 @@
-Test getting the password attribute of an 'a' element.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Default password is empty
-PASS a.password is ''
-Unspecified password should return empty string
-PASS a.password is ''
-Empty password should be empty
-PASS a.password is ''
-Regular passowrd retrieval
-PASS a.password is 'abc123'
-Password with empty username
-PASS a.password is 'def456'
-Setting password
-PASS a.href is 'http://:xy...@example.com/'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password.html (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password.html	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-password.html	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src=""
-</head>
-<body>
-<script>
-
-description("Test getting the password attribute of an 'a' element.");
-
-var a = document.createElement("a");
-
-debug("Default password is empty");
-shouldBe("a.password", "''");
-
-debug("Unspecified password should return empty string");
-a.href = ""
-shouldBe("a.password", "''");
-
-debug("Empty password should be empty");
-a.href = ""
-shouldBe("a.password", "''");
-
-debug("Regular passowrd retrieval");
-a.href = ""
-shouldBe("a.password", "'abc123'");
-
-debug("Password with empty username");
-a.href = ""
-shouldBe("a.password", "'def456'");
-
-debug("Setting password");
-a.href = ""
-a.password = "xyzzy";
-shouldBe("a.href", "'http://:xy...@example.com/'");
-
-</script>
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username-expected.txt (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username-expected.txt	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username-expected.txt	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,23 +0,0 @@
-Test getting the username attribute of an 'a' element.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Default username is empty
-PASS a.username is ''
-Unspecified username should return empty string
-PASS a.username is ''
-Empty username should be empty
-PASS a.username is ''
-Regular username retrieval
-PASS a.username is 'joebob1'
-Username with empty password
-PASS a.username is 'joebob2'
-Username with non-empty password
-PASS a.username is 'joebob3'
-Setting username
-PASS a.href is 'http://joeb...@example.com/'
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username.html (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username.html	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAnchorElement/anchor-username.html	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src=""
-</head>
-<body>
-<script>
-
-description("Test getting the username attribute of an 'a' element.");
-
-var a = document.createElement("a");
-
-debug("Default username is empty");
-shouldBe("a.username", "''");
-
-debug("Unspecified username should return empty string");
-a.href = ""
-shouldBe("a.username", "''");
-
-debug("Empty username should be empty");
-a.href = ""
-shouldBe("a.username", "''");
-
-debug("Regular username retrieval");
-a.href = ""
-shouldBe("a.username", "'joebob1'");
-
-debug("Username with empty password");
-a.href = ""
-shouldBe("a.username", "'joebob2'");
-
-debug("Username with non-empty password");
-a.href = ""
-shouldBe("a.username", "'joebob3'");
-
-debug("Setting username");
-a.href = ""
-a.username = "joebob4";
-shouldBe("a.href", "'http://joeb...@example.com/'");
-
-</script>
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/fast/dom/HTMLAreaElement/area-password.html (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAreaElement/area-password.html	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAreaElement/area-password.html	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src=""
-</head>
-<body>
-<script>
-
-description("Test getting the password attribute of an 'area' element.");
-
-var a = document.createElement("area");
-
-debug("Default password is empty");
-shouldBe("a.password", "''");
-
-debug("Unspecified password should return empty string");
-a.href = ""
-shouldBe("a.password", "''");
-
-debug("Empty password should be empty");
-a.href = ""
-shouldBe("a.password", "''");
-
-debug("Regular passowrd retrieval");
-a.href = ""
-shouldBe("a.password", "'abc123'");
-
-debug("Password with empty username");
-a.href = ""
-shouldBe("a.password", "'def456'");
-
-debug("Setting password");
-a.href = ""
-a.password = "xyzzy";
-shouldBe("a.href", "'http://:xy...@example.com/'");
-
-</script>
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/fast/dom/HTMLAreaElement/area-username.html (163308 => 163309)


--- trunk/LayoutTests/fast/dom/HTMLAreaElement/area-username.html	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/fast/dom/HTMLAreaElement/area-username.html	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<script src=""
-</head>
-<body>
-<script>
-
-description("Test getting the username attribute of an 'area' element.");
-
-var a = document.createElement("area");
-
-debug("Default username is empty");
-shouldBe("a.username", "''");
-
-debug("Unspecified username should return empty string");
-a.href = ""
-shouldBe("a.username", "''");
-
-debug("Empty username should be empty");
-a.href = ""
-shouldBe("a.username", "''");
-
-debug("Regular username retrieval");
-a.href = ""
-shouldBe("a.username", "'joebob1'");
-
-debug("Username with empty password");
-a.href = ""
-shouldBe("a.username", "'joebob2'");
-
-debug("Username with non-empty password");
-a.href = ""
-shouldBe("a.username", "'joebob3'");
-
-debug("Setting username");
-a.href = ""
-a.username = "joebob4";
-shouldBe("a.href", "'http://joeb...@example.com/'");
-
-</script>
-<script src=""
-</body>
-</html>

Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt (163308 => 163309)


--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,4 +1,3 @@
-nerget
 Checks that get_by_pname doesn't get confused about which properties go where when it comes to stacic properties.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -17,19 +16,17 @@
 PASS a["hostname"] is 
 PASS a["rel"] is 
 PASS a["hreflang"] is 
-PASS a["password"] is 
 PASS a["ping"] is 
 PASS a["rev"] is 
 PASS a["host"] is 
 PASS a["charset"] is 
-PASS a["username"] is 
 PASS a["target"] is 
 PASS a["type"] is 
 PASS a["coords"] is 
 PASS a["name"] is 
 PASS a["shape"] is 
-PASS a["protocol"] is file:
 PASS a["port"] is 
+PASS a["protocol"] is file:
 PASS a["outerHTML"] is <a id="foo" href=""
 PASS a["spellcheck"] is true
 PASS a["webkitdropzone"] is 
@@ -62,9 +59,9 @@
 PASS a["clientTop"] is 0
 PASS a["lastElementChild"] is null
 PASS a["offsetParent"] is [object HTMLBodyElement]
-PASS a["nextElementSibling"] is [object HTMLParagraphElement]
+PASS a["nextElementSibling"] is [object HTMLScriptElement]
 PASS a["tagName"] is A
-PASS a["previousElementSibling"] is null
+PASS a["previousElementSibling"] is [object HTMLDivElement]
 PASS a["childElementCount"] is 0
 PASS a["scrollLeft"] is 0
 PASS a["firstElementChild"] is null
@@ -72,7 +69,7 @@
 PASS a["clientLeft"] is 0
 PASS a["offsetHeight"] is 18
 PASS a["clientHeight"] is 0
-PASS a["offsetTop"] is 8
+PASS a["offsetTop"] is 1074
 PASS a["scrollTop"] is 0
 PASS a["scrollHeight"] is 0
 PASS a["previousSibling"] is [object Text]
@@ -111,4 +108,4 @@
 PASS successfullyParsed is true
 
 TEST COMPLETE
-
+nerget

Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration.html (163308 => 163309)


--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration.html	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration.html	2014-02-03 17:23:47 UTC (rev 163309)
@@ -6,7 +6,6 @@
 </head>
 <body>
     <a id="foo" href=""
-    <div id="console"></div>
     <script>
         var realShouldBe = function(expectedValue, actualString, actualValue) {
             if (expectedValue === actualValue)

Modified: trunk/Source/WebCore/ChangeLog (163308 => 163309)


--- trunk/Source/WebCore/ChangeLog	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/ChangeLog	2014-02-03 17:23:47 UTC (rev 163309)
@@ -1,3 +1,30 @@
+2014-02-03  Jessie Berlin  <jber...@apple.com>
+
+        Revert r163299 since it broke the ML 32-bit Release build
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::parsePortFromStringPosition):
+        (WebCore::HTMLAnchorElement::hash):
+        (WebCore::HTMLAnchorElement::setHash):
+        (WebCore::HTMLAnchorElement::host):
+        (WebCore::HTMLAnchorElement::setHost):
+        (WebCore::HTMLAnchorElement::hostname):
+        (WebCore::HTMLAnchorElement::setHostname):
+        (WebCore::HTMLAnchorElement::pathname):
+        (WebCore::HTMLAnchorElement::setPathname):
+        (WebCore::HTMLAnchorElement::port):
+        (WebCore::HTMLAnchorElement::setPort):
+        (WebCore::HTMLAnchorElement::protocol):
+        (WebCore::HTMLAnchorElement::setProtocol):
+        (WebCore::HTMLAnchorElement::search):
+        (WebCore::HTMLAnchorElement::origin):
+        (WebCore::HTMLAnchorElement::setSearch):
+        (WebCore::HTMLAnchorElement::toString):
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAnchorElement.idl:
+        * html/HTMLAreaElement.idl:
+        * html/URLUtils.idl:
+
 2014-02-03  Mihai Maerean  <mmaer...@adobe.com>
 
         [CSS Regions] Fix selection and hover effect of content in region with overflow:hidden

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (163308 => 163309)


--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2014-02-03 17:23:47 UTC (rev 163309)
@@ -75,6 +75,15 @@
     clearRootEditableElementForSelectionOnMouseDown();
 }
 
+// This function does not allow leading spaces before the port number.
+static unsigned parsePortFromStringPosition(const String& value, unsigned portStart, unsigned& portEnd)
+{
+    portEnd = portStart;
+    while (isASCIIDigit(value[portEnd]))
+        ++portEnd;
+    return value.substring(portStart, portEnd - portStart).toUInt();
+}
+
 bool HTMLAnchorElement::supportsFocus() const
 {
     if (hasEditableStyle())
@@ -321,11 +330,180 @@
     return getAttribute(targetAttr);
 }
 
+String HTMLAnchorElement::hash() const
+{
+    String fragmentIdentifier = href().fragmentIdentifier();
+    if (fragmentIdentifier.isEmpty())
+        return emptyString();
+    return AtomicString(String("#" + fragmentIdentifier));
+}
+
+void HTMLAnchorElement::setHash(const String& value)
+{
+    URL url = ""
+    if (value[0] == '#')
+        url.setFragmentIdentifier(value.substring(1));
+    else
+        url.setFragmentIdentifier(value);
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::host() const
+{
+    const URL& url = ""
+    if (url.hostEnd() == url.pathStart())
+        return url.host();
+    if (isDefaultPortForProtocol(url.port(), url.protocol()))
+        return url.host();
+    return url.host() + ":" + String::number(url.port());
+}
+
+void HTMLAnchorElement::setHost(const String& value)
+{
+    if (value.isEmpty())
+        return;
+    URL url = ""
+    if (!url.canSetHostOrPort())
+        return;
+
+    size_t separator = value.find(':');
+    if (!separator)
+        return;
+
+    if (separator == notFound)
+        url.setHostAndPort(value);
+    else {
+        unsigned portEnd;
+        unsigned port = parsePortFromStringPosition(value, separator + 1, portEnd);
+        if (!port) {
+            // http://dev.w3.org/html5/spec/infrastructure.html#url-decomposition-idl-attributes
+            // specifically goes against RFC 3986 (p3.2) and
+            // requires setting the port to "0" if it is set to empty string.
+            url.setHostAndPort(value.substring(0, separator + 1) + "0");
+        } else {
+            if (isDefaultPortForProtocol(port, url.protocol()))
+                url.setHostAndPort(value.substring(0, separator));
+            else
+                url.setHostAndPort(value.substring(0, portEnd));
+        }
+    }
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::hostname() const
+{
+    return href().host();
+}
+
+void HTMLAnchorElement::setHostname(const String& value)
+{
+    // Before setting new value:
+    // Remove all leading U+002F SOLIDUS ("/") characters.
+    unsigned i = 0;
+    unsigned hostLength = value.length();
+    while (value[i] == '/')
+        i++;
+
+    if (i == hostLength)
+        return;
+
+    URL url = ""
+    if (!url.canSetHostOrPort())
+        return;
+
+    url.setHost(value.substring(i));
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::pathname() const
+{
+    return href().path();
+}
+
+void HTMLAnchorElement::setPathname(const String& value)
+{
+    URL url = ""
+    if (!url.canSetPathname())
+        return;
+
+    if (value[0] == '/')
+        url.setPath(value);
+    else
+        url.setPath("/" + value);
+
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::port() const
+{
+    if (href().hasPort())
+        return String::number(href().port());
+
+    return emptyString();
+}
+
+void HTMLAnchorElement::setPort(const String& value)
+{
+    URL url = ""
+    if (!url.canSetHostOrPort())
+        return;
+
+    // http://dev.w3.org/html5/spec/infrastructure.html#url-decomposition-idl-attributes
+    // specifically goes against RFC 3986 (p3.2) and
+    // requires setting the port to "0" if it is set to empty string.
+    unsigned port = value.toUInt();
+    if (isDefaultPortForProtocol(port, url.protocol()))
+        url.removePort();
+    else
+        url.setPort(port);
+
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::protocol() const
+{
+    return href().protocol() + ":";
+}
+
+void HTMLAnchorElement::setProtocol(const String& value)
+{
+    URL url = ""
+    url.setProtocol(value);
+    setHref(url.string());
+}
+
+String HTMLAnchorElement::search() const
+{
+    String query = href().query();
+    return query.isEmpty() ? emptyString() : "?" + query;
+}
+
+String HTMLAnchorElement::origin() const
+{
+    RefPtr<SecurityOrigin> origin = SecurityOrigin::create(href());
+    return origin->toString();
+}
+
+void HTMLAnchorElement::setSearch(const String& value)
+{
+    URL url = ""
+    String newSearch = (value[0] == '?') ? value.substring(1) : value;
+    // Make sure that '#' in the query does not leak to the hash.
+    url.setQuery(newSearch.replaceWithLiteral('#', "%23"));
+
+    setHref(url.string());
+}
+
 String HTMLAnchorElement::text()
 {
     return innerText();
 }
 
+String HTMLAnchorElement::toString() const
+{
+    return href().string();
+}
+
 bool HTMLAnchorElement::isLiveLink() const
 {
     return isLink() && treatLinkAsLiveForEventType(m_wasShiftKeyDownOnMouseDown ? MouseEventWithShiftKey : MouseEventWithoutShiftKey);

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.h (163308 => 163309)


--- trunk/Source/WebCore/html/HTMLAnchorElement.h	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.h	2014-02-03 17:23:47 UTC (rev 163309)
@@ -27,7 +27,6 @@
 #include "HTMLElement.h"
 #include "HTMLNames.h"
 #include "LinkHash.h"
-#include "URLUtils.h"
 
 namespace WebCore {
 
@@ -54,7 +53,7 @@
 //     RelationUp          = 0x00020000,
 };
 
-class HTMLAnchorElement : public HTMLElement, public URLUtils<HTMLAnchorElement> {
+class HTMLAnchorElement : public HTMLElement {
 public:
     static PassRefPtr<HTMLAnchorElement> create(Document&);
     static PassRefPtr<HTMLAnchorElement> create(const QualifiedName&, Document&);
@@ -63,12 +62,36 @@
 
     URL href() const;
     void setHref(const AtomicString&);
-    void setHref(const AtomicString& value, ExceptionCode&) { setHref(value); }
 
     const AtomicString& name() const;
 
+    String hash() const;
+    void setHash(const String&);
+
+    String host() const;
+    void setHost(const String&);
+
+    String hostname() const;
+    void setHostname(const String&);
+
+    String pathname() const;
+    void setPathname(const String&);
+
+    String port() const;
+    void setPort(const String&);
+
+    String protocol() const;
+    void setProtocol(const String&);
+
+    String search() const;
+    void setSearch(const String&);
+
+    String origin() const;
+
     String text();
 
+    String toString() const;
+
     bool isLiveLink() const;
 
     virtual bool willRespondToMouseClickEvents() override;

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.idl (163308 => 163309)


--- trunk/Source/WebCore/html/HTMLAnchorElement.idl	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.idl	2014-02-03 17:23:47 UTC (rev 163309)
@@ -22,6 +22,7 @@
     [Reflect] attribute DOMString charset;
     [Reflect] attribute DOMString coords;
     [Conditional=DOWNLOAD_ATTRIBUTE, Reflect] attribute DOMString download;
+    [Reflect, URL] attribute DOMString href;
     [Reflect] attribute DOMString hreflang;
     [Reflect] attribute DOMString name;
     [Reflect] attribute DOMString ping;
@@ -35,12 +36,35 @@
     [Reflect] attribute DOMString accessKey;
 #endif
 
+#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
+    readonly attribute DOMString hash;
+    readonly attribute DOMString host;
+    readonly attribute DOMString hostname;
+    readonly attribute DOMString pathname;
+    readonly attribute DOMString port;
+    readonly attribute DOMString protocol;
+    readonly attribute DOMString search;
+#else
+    [TreatNullAs=NullString] attribute DOMString hash;
+    [TreatNullAs=NullString] attribute DOMString host;
+    [TreatNullAs=NullString] attribute DOMString hostname;
+    [TreatNullAs=NullString] attribute DOMString pathname;
+    [TreatNullAs=NullString] attribute DOMString port;
+    [TreatNullAs=NullString] attribute DOMString protocol;
+    [TreatNullAs=NullString] attribute DOMString search;
+
+    [TreatNullAs=NullString] readonly attribute DOMString origin;
+#endif
+
     readonly attribute DOMString text;
 
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+    [NotEnumerable] DOMString toString();
+#endif
+
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
     // Objective-C extension:
     readonly attribute URL absoluteLinkURL;
 #endif
 };
 
-HTMLAnchorElement implements URLUtils;
\ No newline at end of file

Modified: trunk/Source/WebCore/html/HTMLAreaElement.idl (163308 => 163309)


--- trunk/Source/WebCore/html/HTMLAreaElement.idl	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/html/HTMLAreaElement.idl	2014-02-03 17:23:47 UTC (rev 163309)
@@ -21,6 +21,7 @@
 interface HTMLAreaElement : HTMLElement {
     [Reflect] attribute DOMString alt;
     [Reflect] attribute DOMString coords;
+    [Reflect, URL] attribute DOMString href;
     [Reflect] attribute boolean noHref;
     [Reflect] attribute DOMString ping;
     [Reflect] attribute DOMString shape;
@@ -29,6 +30,14 @@
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
     [Reflect] attribute DOMString accessKey;
 #endif
+    // IE Extensions
+    readonly attribute DOMString hash;
+    readonly attribute DOMString host;
+    readonly attribute DOMString hostname;
+    readonly attribute DOMString pathname;
+    readonly attribute DOMString port;
+    readonly attribute DOMString protocol;
+    readonly attribute DOMString search;
 
 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
     // Objective-C extension:
@@ -36,4 +45,3 @@
 #endif
 };
 
-HTMLAreaElement implements URLUtils;

Modified: trunk/Source/WebCore/html/URLUtils.idl (163308 => 163309)


--- trunk/Source/WebCore/html/URLUtils.idl	2014-02-03 14:51:40 UTC (rev 163308)
+++ trunk/Source/WebCore/html/URLUtils.idl	2014-02-03 17:23:47 UTC (rev 163309)
@@ -25,22 +25,13 @@
 
 [NoInterfaceObject]
 interface URLUtils {
-    [SetterRaisesException, TreatNullAs=NullString, URL] attribute DOMString href;
+    [SetterRaisesException, URL] attribute DOMString href;
 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
     [NotEnumerable] DOMString toString();
 #endif
 
     readonly attribute DOMString origin;
 
-#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
-    readonly attribute DOMString protocol;
-    readonly attribute DOMString host;
-    readonly attribute DOMString hostname;
-    readonly attribute DOMString port;
-    readonly attribute DOMString pathname;
-    readonly attribute DOMString search;
-    readonly attribute DOMString hash;
-#else
     [TreatNullAs=NullString] attribute DOMString protocol;
     [TreatNullAs=NullString] attribute DOMString username;
     [TreatNullAs=NullString] attribute DOMString password;
@@ -51,6 +42,4 @@
     [TreatNullAs=NullString] attribute DOMString search;
     //    attribute URLSearchParams? searchParams;
     [TreatNullAs=NullString] attribute DOMString hash;
-#endif
-
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to