Title: [151069] trunk/Source
Revision
151069
Author
[email protected]
Date
2013-06-01 02:39:59 -0700 (Sat, 01 Jun 2013)

Log Message

Move Node::hasID() and hasClass() to Element.
<http://webkit.org/b/117104>

Reviewed by Ryosuke Niwa.

Source/WebCore:

A Node can't have attributes, and thus can't have an ID or a class.
Move these to Element instead, and fix up a few call sites that called through on a Node*.

* dom/Element.h:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::namedItem):
* dom/Node.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name):
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeRenderRegionList):

Source/WebKit/mac:

* WebView/WebRenderLayer.mm:
(+[WebRenderLayer nameForLayer:]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (151068 => 151069)


--- trunk/Source/WebCore/ChangeLog	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/ChangeLog	2013-06-01 09:39:59 UTC (rev 151069)
@@ -1,3 +1,23 @@
+2013-06-01  Andreas Kling  <[email protected]>
+
+        Move Node::hasID() and hasClass() to Element.
+        <http://webkit.org/b/117104>
+
+        Reviewed by Ryosuke Niwa.
+
+        A Node can't have attributes, and thus can't have an ID or a class.
+        Move these to Element instead, and fix up a few call sites that called through on a Node*.
+
+        * dom/Element.h:
+        * dom/LiveNodeList.cpp:
+        (WebCore::LiveNodeList::namedItem):
+        * dom/Node.h:
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::name):
+        * rendering/RenderTreeAsText.cpp:
+        (WebCore::RenderTreeAsText::writeRenderObject):
+        (WebCore::writeRenderRegionList):
+
 2013-05-31  [email protected]  <[email protected]>
 
         [Curl] Unable to download files.

Modified: trunk/Source/WebCore/dom/Element.h (151068 => 151069)


--- trunk/Source/WebCore/dom/Element.h	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/dom/Element.h	2013-06-01 09:39:59 UTC (rev 151069)
@@ -915,17 +915,6 @@
     return static_cast<UniqueElementData*>(m_elementData.get());
 }
 
-// Put here to make them inline.
-inline bool Node::hasID() const
-{
-    return isElementNode() && toElement(this)->hasID();
-}
-
-inline bool Node::hasClass() const
-{
-    return isElementNode() && toElement(this)->hasClass();
-}
-
 inline Node::InsertionNotificationRequest Node::insertedInto(ContainerNode* insertionPoint)
 {
     ASSERT(insertionPoint->inDocument() || isContainerNode());

Modified: trunk/Source/WebCore/dom/LiveNodeList.cpp (151068 => 151069)


--- trunk/Source/WebCore/dom/LiveNodeList.cpp	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/dom/LiveNodeList.cpp	2013-06-01 09:39:59 UTC (rev 151069)
@@ -110,8 +110,11 @@
     unsigned length = this->length();
     for (unsigned i = 0; i < length; i++) {
         Node* node = item(i);
+        if (!node->isElementNode())
+            continue;
+        Element* element = toElement(node);
         // FIXME: This should probably be using getIdAttribute instead of idForStyleResolution.
-        if (node->hasID() && toElement(node)->idForStyleResolution() == elementId)
+        if (element->hasID() && element->idForStyleResolution() == elementId)
             return node;
     }
 

Modified: trunk/Source/WebCore/dom/Node.h (151068 => 151069)


--- trunk/Source/WebCore/dom/Node.h	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/dom/Node.h	2013-06-01 09:39:59 UTC (rev 151069)
@@ -328,8 +328,6 @@
     virtual void startLoadingDynamicSheet() { ASSERT_NOT_REACHED(); }
 
     bool hasName() const { return !isTextNode() && getFlag(HasNameOrIsEditingTextFlag); }
-    bool hasID() const;
-    bool hasClass() const;
 
     bool isUserActionElement() const { return getFlag(IsUserActionElement); }
     void setUserActionElement(bool flag) { setFlag(flag, IsUserActionElement); }

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (151068 => 151069)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-06-01 09:39:59 UTC (rev 151069)
@@ -279,24 +279,23 @@
 {
     StringBuilder name;
     name.append(renderer()->renderName());
-    if (Node* node = renderer()->node()) {
-        if (node->isElementNode()) {
-            name.append(' ');
-            name.append(toElement(node)->tagName());
-        }
-        if (node->hasID()) {
+
+    if (Element* element = renderer()->node() && renderer()->node()->isElementNode() ? toElement(renderer()->node()) : 0) {
+        name.append(' ');
+        name.append(element->tagName());
+
+        if (element->hasID()) {
             name.appendLiteral(" id=\'");
-            name.append(toElement(node)->getIdAttribute());
+            name.append(element->getIdAttribute());
             name.append('\'');
         }
 
-        if (node->hasClass()) {
+        if (element->hasClass()) {
             name.appendLiteral(" class=\'");
-            StyledElement* styledElement = static_cast<StyledElement*>(node);
-            for (size_t i = 0; i < styledElement->classNames().size(); ++i) {
+            for (size_t i = 0; i < element->classNames().size(); ++i) {
                 if (i > 0)
                     name.append(' ');
-                name.append(styledElement->classNames()[i]);
+                name.append(element->classNames()[i]);
             }
             name.append('\'');
         }

Modified: trunk/Source/WebCore/rendering/RenderTreeAsText.cpp (151068 => 151069)


--- trunk/Source/WebCore/rendering/RenderTreeAsText.cpp	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebCore/rendering/RenderTreeAsText.cpp	2013-06-01 09:39:59 UTC (rev 151069)
@@ -427,17 +427,16 @@
     }
     
     if (behavior & RenderAsTextShowIDAndClass) {
-        if (Node* node = o.node()) {
-            if (node->hasID())
-                ts << " id=\"" + toElement(node)->getIdAttribute() + "\"";
+        if (Element* element = o.node() && o.node()->isElementNode() ? toElement(o.node()) : 0) {
+            if (element->hasID())
+                ts << " id=\"" + element->getIdAttribute() + "\"";
 
-            if (node->hasClass()) {
+            if (element->hasClass()) {
                 ts << " class=\"";
-                StyledElement* styledElement = static_cast<StyledElement*>(node);
-                for (size_t i = 0; i < styledElement->classNames().size(); ++i) {
+                for (size_t i = 0; i < element->classNames().size(); ++i) {
                     if (i > 0)
                         ts << " ";
-                    ts << styledElement->classNames()[i];
+                    ts << element->classNames()[i];
                 }
                 ts << "\"";
             }
@@ -667,7 +666,7 @@
             String tagName = getTagName(renderRegion->generatingNode());
             if (!tagName.isEmpty())
                 ts << " {" << tagName << "}";
-            if (renderRegion->generatingNode()->isElementNode() && renderRegion->generatingNode()->hasID()) {
+            if (renderRegion->generatingNode()->isElementNode() && toElement(renderRegion->generatingNode())->hasID()) {
                 Element* element = toElement(renderRegion->generatingNode());
                 ts << " #" << element->idForStyleResolution();
             }

Modified: trunk/Source/WebKit/mac/ChangeLog (151068 => 151069)


--- trunk/Source/WebKit/mac/ChangeLog	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebKit/mac/ChangeLog	2013-06-01 09:39:59 UTC (rev 151069)
@@ -1,3 +1,13 @@
+2013-06-01  Andreas Kling  <[email protected]>
+
+        Move Node::hasID() and hasClass() to Element.
+        <http://webkit.org/b/117104>
+
+        Reviewed by Ryosuke Niwa.
+
+        * WebView/WebRenderLayer.mm:
+        (+[WebRenderLayer nameForLayer:]):
+
 2013-05-31  Stephanie Lewis  <[email protected]>
 
         Update low memory handler to use new memory pressure notifications on new OS versions.

Modified: trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm (151068 => 151069)


--- trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm	2013-06-01 06:00:19 UTC (rev 151068)
+++ trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm	2013-06-01 09:39:59 UTC (rev 151069)
@@ -52,19 +52,17 @@
     RenderObject* renderer = layer->renderer();
     NSString *name = [NSString stringWithUTF8String:renderer->renderName()];
 
-    if (Node* node = renderer->node()) {
-        if (node->isElementNode())
-            name = [name stringByAppendingFormat:@" %@", (NSString *)toElement(node)->tagName()];
-        if (node->hasID())
-            name = [name stringByAppendingFormat:@" id=\"%@\"", (NSString *)toElement(node)->getIdAttribute()];
+    if (Element* element = renderer->node() && renderer->node()->isElementNode() ? toElement(renderer->node()) : 0) {
+        name = [name stringByAppendingFormat:@" %@", (NSString *)element->tagName()];
+        if (element->hasID())
+            name = [name stringByAppendingFormat:@" id=\"%@\"", (NSString *)element->getIdAttribute()];
 
-        if (node->hasClass()) {
-            StyledElement* styledElement = static_cast<StyledElement*>(node);
+        if (element->hasClass()) {
             StringBuilder classes;
-            for (size_t i = 0; i < styledElement->classNames().size(); ++i) {
+            for (size_t i = 0; i < element->classNames().size(); ++i) {
                 if (i > 0)
                     classes.append(' ');
-                classes.append(styledElement->classNames()[i]);
+                classes.append(element->classNames()[i]);
             }
             name = [name stringByAppendingFormat:@" class=\"%@\"", (NSString *)classes.toString()];
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to