Title: [151975] trunk/Source
Revision
151975
Author
[email protected]
Date
2013-06-25 18:06:00 -0700 (Tue, 25 Jun 2013)

Log Message

Adopt is/toHTMLAnchorElement for code cleanup
https://bugs.webkit.org/show_bug.cgi?id=117973

Reviewed by Andreas Kling.

To enhance readibility, this patch adopts is/toHTMLAnchorElement.
This also helps out to reduce duplicated use of static_cast.

Source/WebCore:

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::anchorElement):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::anchorElement):
(WebCore::AccessibilityRenderObject::internalLinkElement):
(WebCore::AccessibilityRenderObject::url):
(WebCore::AccessibilityRenderObject::stringValueForMSAA):
(WebCore::AccessibilityRenderObject::isLinked):
* css/CSSDefaultStyleSheets.cpp:
(WebCore::elementCanUseSimpleDefaultStyle):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* dom/Document.cpp:
(WebCore::Document::updateBaseURL):
* dom/TreeScope.cpp:
(WebCore::TreeScope::findAnchor):
* dom/VisitedLinkState.cpp:
(WebCore::linkHashForElement):
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* html/HTMLAnchorElement.h:
(WebCore::isHTMLAnchorElement):
(WebCore::toHTMLAnchorElement):
* page/DragController.cpp:
(WebCore::DragController::draggableElement):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::absoluteLinkURL):
(WebCore::HitTestResult::isLiveLink):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::getTextDecorationColors):

Source/WebKit/blackberry:

* WebKitSupport/FatFingers.cpp:
(BlackBerry::WebKit::FatFingers::isElementClickable):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (151974 => 151975)


--- trunk/Source/WebCore/ChangeLog	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/ChangeLog	2013-06-26 01:06:00 UTC (rev 151975)
@@ -1,3 +1,43 @@
+2013-06-25  Kangil Han  <[email protected]>
+
+        Adopt is/toHTMLAnchorElement for code cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=117973
+
+        Reviewed by Andreas Kling.
+
+        To enhance readibility, this patch adopts is/toHTMLAnchorElement.
+        This also helps out to reduce duplicated use of static_cast.
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::anchorElement):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::anchorElement):
+        (WebCore::AccessibilityRenderObject::internalLinkElement):
+        (WebCore::AccessibilityRenderObject::url):
+        (WebCore::AccessibilityRenderObject::stringValueForMSAA):
+        (WebCore::AccessibilityRenderObject::isLinked):
+        * css/CSSDefaultStyleSheets.cpp:
+        (WebCore::elementCanUseSimpleDefaultStyle):
+        * css/SelectorChecker.cpp:
+        (WebCore::SelectorChecker::checkOne):
+        * dom/Document.cpp:
+        (WebCore::Document::updateBaseURL):
+        * dom/TreeScope.cpp:
+        (WebCore::TreeScope::findAnchor):
+        * dom/VisitedLinkState.cpp:
+        (WebCore::linkHashForElement):
+        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
+        * html/HTMLAnchorElement.h:
+        (WebCore::isHTMLAnchorElement):
+        (WebCore::toHTMLAnchorElement):
+        * page/DragController.cpp:
+        (WebCore::DragController::draggableElement):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::absoluteLinkURL):
+        (WebCore::HitTestResult::isLiveLink):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::getTextDecorationColors):
+
 2013-06-25  Dean Jackson  <[email protected]>
 
         Don't snapshot plug-ins that come from the same host as the page

Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (151974 => 151975)


--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -920,7 +920,7 @@
     // search up the DOM tree for an anchor element
     // NOTE: this assumes that any non-image with an anchor is an HTMLAnchorElement
     for ( ; node; node = node->parentNode()) {
-        if (node->hasTagName(aTag) || (node->renderer() && cache->getOrCreate(node->renderer())->isAnchor()))
+        if (isHTMLAnchorElement(node) || (node->renderer() && cache->getOrCreate(node->renderer())->isAnchor()))
             return toElement(node);
     }
 

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (151974 => 151975)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -579,7 +579,7 @@
     // NOTE: this assumes that any non-image with an anchor is an HTMLAnchorElement
     Node* node = currRenderer->node();
     for ( ; node; node = node->parentNode()) {
-        if (node->hasTagName(aTag) || (node->renderer() && cache->getOrCreate(node->renderer())->isAnchor()))
+        if (isHTMLAnchorElement(node) || (node->renderer() && cache->getOrCreate(node->renderer())->isAnchor()))
             return toElement(node);
     }
     
@@ -888,9 +888,9 @@
         return 0;
     
     // Right now, we do not support ARIA links as internal link elements
-    if (!element->hasTagName(aTag))
+    if (!isHTMLAnchorElement(element))
         return 0;
-    HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(element);
+    HTMLAnchorElement* anchor = toHTMLAnchorElement(element);
     
     KURL linkURL = anchor->href();
     String fragmentIdentifier = linkURL.fragmentIdentifier();
@@ -1459,8 +1459,8 @@
 
 KURL AccessibilityRenderObject::url() const
 {
-    if (isAnchor() && m_renderer->node()->hasTagName(aTag)) {
-        if (HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(anchorElement()))
+    if (isAnchor() && isHTMLAnchorElement(m_renderer->node())) {
+        if (HTMLAnchorElement* anchor = toHTMLAnchorElement(anchorElement()))
             return anchor->href();
     }
     
@@ -3195,8 +3195,8 @@
 {
     if (isLinkable(*this)) {
         Element* anchor = anchorElement();
-        if (anchor && anchor->hasTagName(aTag))
-            return static_cast<HTMLAnchorElement*>(anchor)->href();
+        if (anchor && isHTMLAnchorElement(anchor))
+            return toHTMLAnchorElement(anchor)->href();
     }
 
     return stringValue();
@@ -3208,10 +3208,10 @@
         return false;
 
     Element* anchor = anchorElement();
-    if (!anchor || !anchor->hasTagName(aTag))
+    if (!anchor || !isHTMLAnchorElement(anchor))
         return false;
 
-    return !static_cast<HTMLAnchorElement*>(anchor)->href().isEmpty();
+    return !toHTMLAnchorElement(anchor)->href().isEmpty();
 }
 
 bool AccessibilityRenderObject::hasBoldFont() const

Modified: trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp (151974 => 151975)


--- trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -31,6 +31,7 @@
 
 #include "Chrome.h"
 #include "ChromeClient.h"
+#include "HTMLAnchorElement.h"
 #include "MediaQueryEvaluator.h"
 #include "Page.h"
 #include "RenderTheme.h"
@@ -61,7 +62,7 @@
 
 static inline bool elementCanUseSimpleDefaultStyle(Element* e)
 {
-    return e->hasTagName(htmlTag) || e->hasTagName(headTag) || e->hasTagName(bodyTag) || e->hasTagName(divTag) || e->hasTagName(spanTag) || e->hasTagName(brTag) || e->hasTagName(aTag);
+    return e->hasTagName(htmlTag) || e->hasTagName(headTag) || e->hasTagName(bodyTag) || e->hasTagName(divTag) || e->hasTagName(spanTag) || e->hasTagName(brTag) || isHTMLAnchorElement(e);
 }
 
 static const MediaQueryEvaluator& screenEval()

Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (151974 => 151975)


--- trunk/Source/WebCore/css/SelectorChecker.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -34,6 +34,7 @@
 #include "FocusController.h"
 #include "Frame.h"
 #include "FrameSelection.h"
+#include "HTMLAnchorElement.h"
 #include "HTMLDocument.h"
 #include "HTMLFrameElementBase.h"
 #include "HTMLInputElement.h"
@@ -629,7 +630,7 @@
         case CSSSelector::PseudoHover:
             // If we're in quirks mode, then hover should never match anchors with no
             // href and *:hover should not match anything. This is important for sites like wsj.com.
-            if (m_strictParsing || context.isSubSelector || (selector->m_match == CSSSelector::Tag && selector->tagQName() != anyQName() && !element->hasTagName(aTag)) || element->isLink()) {
+            if (m_strictParsing || context.isSubSelector || (selector->m_match == CSSSelector::Tag && selector->tagQName() != anyQName() && !isHTMLAnchorElement(element)) || element->isLink()) {
                 if (m_mode == ResolvingStyle) {
                     if (context.elementStyle)
                         context.elementStyle->setAffectedByHover();
@@ -643,7 +644,7 @@
         case CSSSelector::PseudoActive:
             // If we're in quirks mode, then :active should never match anchors with no
             // href and *:active should not match anything.
-            if (m_strictParsing || context.isSubSelector || (selector->m_match == CSSSelector::Tag && selector->tagQName() != anyQName() && !element->hasTagName(aTag)) || element->isLink()) {
+            if (m_strictParsing || context.isSubSelector || (selector->m_match == CSSSelector::Tag && selector->tagQName() != anyQName() && !isHTMLAnchorElement(element)) || element->isLink()) {
                 if (m_mode == ResolvingStyle) {
                     if (context.elementStyle)
                         context.elementStyle->setAffectedByActive();

Modified: trunk/Source/WebCore/dom/Document.cpp (151974 => 151975)


--- trunk/Source/WebCore/dom/Document.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/dom/Document.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -2655,8 +2655,8 @@
         // Base URL change changes any relative visited links.
         // FIXME: There are other URLs in the tree that would need to be re-evaluated on dynamic base URL change. Style should be invalidated too.
         for (Element* element = ElementTraversal::firstWithin(this); element; element = ElementTraversal::next(element)) {
-            if (element->hasTagName(aTag))
-                static_cast<HTMLAnchorElement*>(element)->invalidateCachedVisitedLinkHash();
+            if (isHTMLAnchorElement(element))
+                toHTMLAnchorElement(element)->invalidateCachedVisitedLinkHash();
         }
     }
 }

Modified: trunk/Source/WebCore/dom/TreeScope.cpp (151974 => 151975)


--- trunk/Source/WebCore/dom/TreeScope.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/dom/TreeScope.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -343,8 +343,8 @@
     if (Element* element = getElementById(name))
         return element;
     for (Element* element = ElementTraversal::firstWithin(rootNode()); element; element = ElementTraversal::next(element)) {
-        if (element->hasTagName(aTag)) {
-            HTMLAnchorElement* anchor = static_cast<HTMLAnchorElement*>(element);
+        if (isHTMLAnchorElement(element)) {
+            HTMLAnchorElement* anchor = toHTMLAnchorElement(element);
             if (rootNode()->document()->inQuirksMode()) {
                 // Quirks mode, case insensitive comparison of names.
                 if (equalIgnoringCase(anchor->name(), name))

Modified: trunk/Source/WebCore/dom/VisitedLinkState.cpp (151974 => 151975)


--- trunk/Source/WebCore/dom/VisitedLinkState.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/dom/VisitedLinkState.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -75,8 +75,8 @@
 
 inline static LinkHash linkHashForElement(Document* document, Element* element)
 {
-    if (element->hasTagName(aTag))
-        return static_cast<HTMLAnchorElement*>(element)->visitedLinkHash();
+    if (isHTMLAnchorElement(element))
+        return toHTMLAnchorElement(element)->visitedLinkHash();
     if (const AtomicString* attribute = linkAttribute(element))
         return WebCore::visitedLinkHash(document->baseURL(), *attribute);
     return 0;
@@ -106,8 +106,8 @@
         return InsideVisitedLink;
 
     LinkHash hash;
-    if (element->hasTagName(aTag))
-        hash = static_cast<HTMLAnchorElement*>(element)->visitedLinkHash();
+    if (isHTMLAnchorElement(element))
+        hash = toHTMLAnchorElement(element)->visitedLinkHash();
     else
         hash = WebCore::visitedLinkHash(element->document()->baseURL(), *attribute);
 

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.h (151974 => 151975)


--- trunk/Source/WebCore/html/HTMLAnchorElement.h	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.h	2013-06-26 01:06:00 UTC (rev 151975)
@@ -154,6 +154,17 @@
     return m_cachedVisitedLinkHash; 
 }
 
+inline bool isHTMLAnchorElement(Node* node)
+{
+    return node->hasTagName(HTMLNames::aTag);
+}
+
+inline HTMLAnchorElement* toHTMLAnchorElement(Node* node)
+{
+    ASSERT_WITH_SECURITY_IMPLICATION(!node || isHTMLAnchorElement(node));
+    return static_cast<HTMLAnchorElement*>(node);
+}
+
 // Functions shared with the other anchor elements (i.e., SVG).
 
 bool isEnterKeyKeydownEvent(Event*);

Modified: trunk/Source/WebCore/page/DragController.cpp (151974 => 151975)


--- trunk/Source/WebCore/page/DragController.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/page/DragController.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -666,8 +666,8 @@
                     return toElement(node);
                 }
                 if ((m_dragSourceAction & DragSourceActionLink)
-                    && node->hasTagName(HTMLNames::aTag)
-                    && static_cast<HTMLAnchorElement*>(node)->isLiveLink()) {
+                    && isHTMLAnchorElement(node)
+                    && toHTMLAnchorElement(node)->isLiveLink()) {
                     state.type = static_cast<DragSourceAction>(state.type | DragSourceActionLink);
                     return toElement(node);
                 }

Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (151974 => 151975)


--- trunk/Source/WebCore/rendering/HitTestResult.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -510,7 +510,7 @@
         return KURL();
 
     AtomicString urlString;
-    if (m_innerURLElement->hasTagName(aTag) || m_innerURLElement->hasTagName(areaTag) || m_innerURLElement->hasTagName(linkTag))
+    if (isHTMLAnchorElement(m_innerURLElement.get()) || m_innerURLElement->hasTagName(areaTag) || m_innerURLElement->hasTagName(linkTag))
         urlString = m_innerURLElement->getAttribute(hrefAttr);
 #if ENABLE(SVG)
     else if (m_innerURLElement->hasTagName(SVGNames::aTag))
@@ -527,8 +527,8 @@
     if (!(m_innerURLElement && m_innerURLElement->document()))
         return false;
 
-    if (m_innerURLElement->hasTagName(aTag))
-        return static_cast<HTMLAnchorElement*>(m_innerURLElement.get())->isLiveLink();
+    if (isHTMLAnchorElement(m_innerURLElement.get()))
+        return toHTMLAnchorElement(m_innerURLElement.get())->isLiveLink();
 #if ENABLE(SVG)
     if (m_innerURLElement->hasTagName(SVGNames::aTag))
         return m_innerURLElement->isLink();

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (151974 => 151975)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -38,6 +38,7 @@
 #include "FrameSelection.h"
 #include "FrameView.h"
 #include "GraphicsContext.h"
+#include "HTMLAnchorElement.h"
 #include "HTMLElement.h"
 #include "HTMLNames.h"
 #include "HitTestResult.h"
@@ -2890,8 +2891,7 @@
         curr = curr->parent();
         if (curr && curr->isAnonymousBlock() && toRenderBlock(curr)->continuation())
             curr = toRenderBlock(curr)->continuation();
-    } while (curr && decorations && (!quirksMode || !curr->node() ||
-                                     (!curr->node()->hasTagName(aTag) && !curr->node()->hasTagName(fontTag))));
+    } while (curr && decorations && (!quirksMode || !curr->node() || (!isHTMLAnchorElement(curr->node()) && !curr->node()->hasTagName(fontTag))));
 
     // If we bailed out, use the element we bailed out at (typically a <font> or <a> element).
     if (decorations && curr) {

Modified: trunk/Source/WebKit/blackberry/ChangeLog (151974 => 151975)


--- trunk/Source/WebKit/blackberry/ChangeLog	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2013-06-26 01:06:00 UTC (rev 151975)
@@ -1,3 +1,16 @@
+2013-06-25  Kangil Han  <[email protected]>
+
+        Adopt is/toHTMLAnchorElement for code cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=117973
+
+        Reviewed by Andreas Kling.
+
+        To enhance readibility, this patch adopts is/toHTMLAnchorElement.
+        This also helps out to reduce duplicated use of static_cast.
+
+        * WebKitSupport/FatFingers.cpp:
+        (BlackBerry::WebKit::FatFingers::isElementClickable):
+
 2013-06-24  Kangil Han  <[email protected]>
 
         Adopt is/toHTMLFormElement for code cleanup

Modified: trunk/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp (151974 => 151975)


--- trunk/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp	2013-06-26 00:58:54 UTC (rev 151974)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp	2013-06-26 01:06:00 UTC (rev 151975)
@@ -93,7 +93,7 @@
     if (element->webkitMatchesSelector("a[href],*:link,*:visited,*[role=button],button,input,select,label[for],area[href],textarea,embed,object", ec)
         || element->isMediaControlElement()
         || element->isContentEditable()
-        || (element->hasTagName(HTMLNames::imgTag) && element->parentNode() && element->parentNode()->hasTagName(HTMLNames::aTag)))
+        || (element->hasTagName(HTMLNames::imgTag) && element->parentNode() && isHTMLAnchorElement(element->parentNode())))
         return true;
 
     return hasMousePressListener(element)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to