Fix for bug 10349, make sure to call setChanged when an anchor changes
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Aug 2006 21:18:47 +0000 (21:18 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Aug 2006 21:18:47 +0000 (21:18 +0000)
        from not being a link to being a link (and vice versa).

        Test is in fast/dynamic/link-href-change.html

        Reviewed by darin

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * html/HTMLAnchorElement.h:
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::parseMappedAttribute):

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

WebCore/ChangeLog
WebCore/html/HTMLAnchorElement.cpp
WebCore/html/HTMLAnchorElement.h
WebCore/html/HTMLAreaElement.cpp

index dbc0005af157910bf54a284f267acf61bb5334fc..f4340d806e71139b2d7c6f4a681f0bbb213b6da4 100644 (file)
@@ -1,3 +1,19 @@
+2006-08-11  David Hyatt  <hyatt@apple.com>
+
+        Fix for bug 10349, make sure to call setChanged when an anchor changes
+        from not being a link to being a link (and vice versa).
+
+        Test is in fast/dynamic/link-href-change.html
+
+        Reviewed by darin
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
+        (WebCore::HTMLAnchorElement::parseMappedAttribute):
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::parseMappedAttribute):
+
 2006-08-09  Rob Buis  <buis@kde.org>
 
         Reviewed by Darin.
index 59bfb73d87b7efd217c3f6d6ecdb38b890af3853..d47bf7285ec4a077c8820f6a08a4bdc5318b057e 100644 (file)
@@ -46,13 +46,11 @@ using namespace EventNames;
 HTMLAnchorElement::HTMLAnchorElement(Document* doc)
     : HTMLElement(aTag, doc)
 {
-    m_hasTarget = false;
 }
 
 HTMLAnchorElement::HTMLAnchorElement(const QualifiedName& tagName, Document* doc)
     : HTMLElement(tagName, doc)
 {
-    m_hasTarget = false;
 }
 
 HTMLAnchorElement::~HTMLAnchorElement()
@@ -191,11 +189,12 @@ void HTMLAnchorElement::setActive(bool down, bool pause)
 
 void HTMLAnchorElement::parseMappedAttribute(MappedAttribute *attr)
 {
-    if (attr->name() == hrefAttr)
+    if (attr->name() == hrefAttr) {
+        bool wasLink = m_isLink;
         m_isLink = !attr->isNull();
-    else if (attr->name() == targetAttr)
-        m_hasTarget = !attr->isNull();
-    else if (attr->name() == nameAttr ||
+        if (wasLink != m_isLink)
+            setChanged();
+    else if (attr->name() == nameAttr ||
              attr->name() == titleAttr ||
              attr->name() == relAttr) {
         // Do nothing.
index 630cae89f6df4dc4a3613cf90f53863148ada094..26035c80e59834da36b03bac6d2d0325606737d4 100644 (file)
@@ -94,9 +94,6 @@ public:
     String protocol() const;
     String search() const;
     String text() const;
-    
-protected:
-    bool m_hasTarget : 1;
 };
 
 } //namespace
index c692f7d2e12f32afb5ec852aec4f785daf23febf..2c7f2717bd982bb8dd72d5d71983c1c56196e39a 100644 (file)
@@ -62,8 +62,6 @@ void HTMLAreaElement::parseMappedAttribute(MappedAttribute *attr)
     } else if (attr->name() == coordsAttr) {
         delete [] m_coords;
         m_coords = attr->value().toCoordsArray(m_coordsLen);
-    } else if (attr->name() == targetAttr) {
-        m_hasTarget = !attr->isNull();
     } else if (attr->name() == altAttr || attr->name() == accesskeyAttr) {
         // Do nothing.
     } else