- 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()];
}