Diff
Modified: trunk/Source/WebKit2/ChangeLog (121583 => 121584)
--- trunk/Source/WebKit2/ChangeLog 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/ChangeLog 2012-06-29 20:26:25 UTC (rev 121584)
@@ -1,3 +1,57 @@
+2012-06-29 Dan Bernstein <[email protected]>
+
+ Can’t get basic element info from a WKRenderObject
+ https://bugs.webkit.org/show_bug.cgi?id=90301
+
+ Reviewed by Anders Carlsson.
+
+ Moved the element info (tag name, id and class names) from WebRenderLayer to WebRenderObject,
+ and gave WebRenderLayer a reference to a (shallow) WebRenderObject. Added WKRenderObject API
+ for getting element info, while leaving the WKRenderLayer API in place for now for Safari.
+
+ * Shared/API/c/WKRenderLayer.cpp:
+ (WKRenderLayerGetRenderer): Added this wrapper.
+ (WKRenderLayerCopyRendererName): Changed to get the name from the renderer.
+ (WKRenderLayerCopyElementTagName): Changed to go through the renderer.
+ (WKRenderLayerCopyElementID): Ditto.
+ (WKRenderLayerGetElementClassNames): Ditto.
+ * Shared/API/c/WKRenderLayer.h: Added declaration of WKRenderLayerGetRenderer() and comments
+ about removing older API.
+ * Shared/API/c/WKRenderObject.cpp:
+ (WKRenderObjectCopyElementTagName): Added this wrapper.
+ (WKRenderObjectCopyElementID): Ditto.
+ (WKRenderObjectGetElementClassNames): Ditto.
+ * Shared/API/c/WKRenderObject.h:
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode): Removed the element info from the encoding of
+ WebRenderLayer, and added the renderer. Added the element info to the encoding of
+ WebRenderObject.
+ (WebKit::UserMessageDecoder::baseDecode): Updated to match the encoding changes.
+ * Shared/WebRenderLayer.cpp:
+ (WebKit::WebRenderLayer::WebRenderLayer): Changed to initialize the m_renderer member
+ variable with a WebRenderObject for the layer’s renderer, and removed the initialization of
+ the element-related member variables that were removed.
+ * Shared/WebRenderLayer.h:
+ (WebKit::WebRenderLayer::create): Changed to take a renderer instead of renderer and element
+ info.
+ (WebKit::WebRenderLayer::renderer): Added this getter.
+ (WebKit::WebRenderLayer::WebRenderLayer): Changed to take a renderer instead of renderer and
+ element info.
+ * Shared/WebRenderObject.cpp:
+ (WebKit::WebRenderObject::create): Changed to pass true for the shouldIncludeDescendants
+ parameter.
+ (WebKit::WebRenderObject::WebRenderObject): Added a shouldIncludeDescdendants boolean
+ parameter. When it is false, the m_children array remains null. Added initialization of
+ member variables with the element’s tag name, id and class list.
+ * Shared/WebRenderObject.h:
+ (WebKit::WebRenderObject::create): Added an overload that takes a RenderObject and creates
+ a shallow WebRenderObject.
+ (WebRenderObject): Changed to take element tag name, id and class list.
+ (WebKit::WebRenderObject::elementTagName): Added this getter.
+ (WebKit::WebRenderObject::elementID): Ditto.
+ (WebKit::WebRenderObject::elementClassNames): Ditto.
+ (WebKit::WebRenderObject::WebRenderObject):
+
2012-06-29 Tony Chang <[email protected]>
Unreviewed, rolling out r121572.
Modified: trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.cpp (121583 => 121584)
--- trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.cpp 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.cpp 2012-06-29 20:26:25 UTC (rev 121584)
@@ -37,16 +37,21 @@
return toAPI(WebRenderLayer::APIType);
}
+WKRenderObjectRef WKRenderLayerGetRenderer(WKRenderLayerRef renderLayerRef)
+{
+ return toAPI(toImpl(renderLayerRef)->renderer());
+}
+
WKStringRef WKRenderLayerCopyRendererName(WKRenderLayerRef renderLayerRef)
{
- return toCopiedAPI(toImpl(renderLayerRef)->renderObjectName());
+ return toCopiedAPI(toImpl(renderLayerRef)->renderer()->name());
}
WKStringRef WKRenderLayerCopyElementTagName(WKRenderLayerRef renderLayerRef)
{
WebRenderLayer* renderLayer = toImpl(renderLayerRef);
- if (!renderLayer->elementTagName().isNull())
- return toCopiedAPI(toImpl(renderLayerRef)->elementTagName());
+ if (!renderLayer->renderer()->elementTagName().isNull())
+ return toCopiedAPI(renderLayer->renderer()->elementTagName());
return 0;
}
@@ -54,15 +59,15 @@
WKStringRef WKRenderLayerCopyElementID(WKRenderLayerRef renderLayerRef)
{
WebRenderLayer* renderLayer = toImpl(renderLayerRef);
- if (!renderLayer->elementID().isNull())
- return toCopiedAPI(toImpl(renderLayerRef)->elementID());
+ if (!renderLayer->renderer()->elementID().isNull())
+ return toCopiedAPI(renderLayer->renderer()->elementID());
return 0;
}
WKArrayRef WKRenderLayerGetElementClassNames(WKRenderLayerRef renderLayerRef)
{
- return toAPI(toImpl(renderLayerRef)->elementClassNames());
+ return toAPI(toImpl(renderLayerRef)->renderer()->elementClassNames());
}
WKRect WKRenderLayerGetAbsoluteBounds(WKRenderLayerRef renderLayerRef)
Modified: trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.h (121583 => 121584)
--- trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.h 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/API/c/WKRenderLayer.h 2012-06-29 20:26:25 UTC (rev 121584)
@@ -36,8 +36,12 @@
WK_EXPORT WKTypeID WKRenderLayerGetTypeID();
+WK_EXPORT WKRenderObjectRef WKRenderLayerGetRenderer(WKRenderLayerRef renderLayer);
+
+// FIXME: Remove this function once Safari does not require it.
WK_EXPORT WKStringRef WKRenderLayerCopyRendererName(WKRenderLayerRef renderLayer);
+// FIXME: Remove these three functions once Safari does not require them.
WK_EXPORT WKStringRef WKRenderLayerCopyElementTagName(WKRenderLayerRef renderLayer);
WK_EXPORT WKStringRef WKRenderLayerCopyElementID(WKRenderLayerRef renderLayer);
WK_EXPORT WKArrayRef WKRenderLayerGetElementClassNames(WKRenderLayerRef renderLayer);
Modified: trunk/Source/WebKit2/Shared/API/c/WKRenderObject.cpp (121583 => 121584)
--- trunk/Source/WebKit2/Shared/API/c/WKRenderObject.cpp 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/API/c/WKRenderObject.cpp 2012-06-29 20:26:25 UTC (rev 121584)
@@ -42,6 +42,29 @@
return toCopiedAPI(toImpl(renderObjectRef)->name());
}
+WKStringRef WKRenderObjectCopyElementTagName(WKRenderObjectRef renderObjectRef)
+{
+ WebRenderObject* renderObject = toImpl(renderObjectRef);
+ if (!renderObject->elementTagName().isNull())
+ return toCopiedAPI(renderObject->elementTagName());
+
+ return 0;
+}
+
+WKStringRef WKRenderObjectCopyElementID(WKRenderObjectRef renderObjectRef)
+{
+ WebRenderObject* renderObject = toImpl(renderObjectRef);
+ if (!renderObject->elementID().isNull())
+ return toCopiedAPI(renderObject->elementID());
+
+ return 0;
+}
+
+WKArrayRef WKRenderObjectGetElementClassNames(WKRenderObjectRef renderObjectRef)
+{
+ return toAPI(toImpl(renderObjectRef)->elementClassNames());
+}
+
WKPoint WKRenderObjectGetAbsolutePosition(WKRenderObjectRef renderObjectRef)
{
IntPoint absolutePosition = toImpl(renderObjectRef)->absolutePosition();
Modified: trunk/Source/WebKit2/Shared/API/c/WKRenderObject.h (121583 => 121584)
--- trunk/Source/WebKit2/Shared/API/c/WKRenderObject.h 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/API/c/WKRenderObject.h 2012-06-29 20:26:25 UTC (rev 121584)
@@ -36,6 +36,11 @@
WK_EXPORT WKTypeID WKRenderObjectGetTypeID();
WK_EXPORT WKStringRef WKRenderObjectCopyName(WKRenderObjectRef renderObject);
+
+WK_EXPORT WKStringRef WKRenderObjectCopyElementTagName(WKRenderObjectRef renderObject);
+WK_EXPORT WKStringRef WKRenderObjectCopyElementID(WKRenderObjectRef renderObject);
+WK_EXPORT WKArrayRef WKRenderObjectGetElementClassNames(WKRenderObjectRef renderObject);
+
WK_EXPORT WKPoint WKRenderObjectGetAbsolutePosition(WKRenderObjectRef renderObject);
WK_EXPORT WKRect WKRenderObjectGetFrameRect(WKRenderObjectRef renderObject);
WK_EXPORT WKArrayRef WKRenderObjectGetChildren(WKRenderObjectRef renderObject);
Modified: trunk/Source/WebKit2/Shared/UserMessageCoders.h (121583 => 121584)
--- trunk/Source/WebKit2/Shared/UserMessageCoders.h 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/UserMessageCoders.h 2012-06-29 20:26:25 UTC (rev 121584)
@@ -145,10 +145,7 @@
}
case APIObject::TypeRenderLayer: {
WebRenderLayer* renderLayer = static_cast<WebRenderLayer*>(m_root);
- encoder->encode(renderLayer->renderObjectName());
- encoder->encode(renderLayer->elementTagName());
- encoder->encode(renderLayer->elementID());
- encoder->encode(Owner(renderLayer->elementClassNames()));
+ encoder->encode(Owner(renderLayer->renderer()));
encoder->encode(renderLayer->isReflection());
encoder->encode(renderLayer->isClipping());
encoder->encode(renderLayer->isClipped());
@@ -162,6 +159,9 @@
case APIObject::TypeRenderObject: {
WebRenderObject* renderObject = static_cast<WebRenderObject*>(m_root);
encoder->encode(renderObject->name());
+ encoder->encode(renderObject->elementTagName());
+ encoder->encode(renderObject->elementID());
+ encoder->encode(Owner(renderObject->elementClassNames()));
encoder->encode(renderObject->absolutePosition());
encoder->encode(renderObject->frameRect());
encoder->encode(Owner(renderObject->children().get()));
@@ -367,10 +367,7 @@
break;
}
case APIObject::TypeRenderLayer: {
- String renderObjectName;
- String elementTagName;
- String elementID;
- RefPtr<APIObject> elementClassNames;
+ RefPtr<APIObject> renderer;
bool isReflection;
bool isClipping;
bool isClipped;
@@ -380,15 +377,11 @@
RefPtr<APIObject> normalFlowList;
RefPtr<APIObject> positiveZOrderList;
- if (!decoder->decode(renderObjectName))
+ Owner rendererCoder(coder, renderer);
+ if (!decoder->decode(rendererCoder))
return false;
- if (!decoder->decode(elementTagName))
+ if (renderer->type() != APIObject::TypeRenderObject)
return false;
- if (!decoder->decode(elementID))
- return false;
- Owner classNamesCoder(coder, elementClassNames);
- if (!decoder->decode(classNamesCoder))
- return false;
if (!decoder->decodeBool(isReflection))
return false;
if (!decoder->decodeBool(isClipping))
@@ -408,20 +401,29 @@
Owner positiveZOrderListCoder(coder, positiveZOrderList);
if (!decoder->decode(positiveZOrderListCoder))
return false;
- coder.m_root = WebRenderLayer::create(renderObjectName, elementTagName, elementID, static_pointer_cast<MutableArray>(elementClassNames),
- isReflection, isClipping, isClipped, static_cast<WebRenderLayer::CompositingLayerType>(compositingLayerTypeAsUInt32),
+ coder.m_root = WebRenderLayer::create(static_pointer_cast<WebRenderObject>(renderer), isReflection, isClipping, isClipped, static_cast<WebRenderLayer::CompositingLayerType>(compositingLayerTypeAsUInt32),
absoluteBoundingBox, static_pointer_cast<MutableArray>(negativeZOrderList), static_pointer_cast<MutableArray>(normalFlowList),
static_pointer_cast<MutableArray>(positiveZOrderList));
break;
}
case APIObject::TypeRenderObject: {
String name;
+ String elementTagName;
+ String elementID;
+ RefPtr<APIObject> elementClassNames;
WebCore::IntPoint absolutePosition;
WebCore::IntRect frameRect;
RefPtr<APIObject> children;
if (!decoder->decode(name))
return false;
+ if (!decoder->decode(elementTagName))
+ return false;
+ if (!decoder->decode(elementID))
+ return false;
+ Owner classNamesCoder(coder, elementClassNames);
+ if (!decoder->decode(classNamesCoder))
+ return false;
if (!decoder->decode(absolutePosition))
return false;
if (!decoder->decode(frameRect))
@@ -429,9 +431,9 @@
Owner messageCoder(coder, children);
if (!decoder->decode(messageCoder))
return false;
- if (children->type() != APIObject::TypeArray)
+ if (children && children->type() != APIObject::TypeArray)
return false;
- coder.m_root = WebRenderObject::create(name, absolutePosition, frameRect, WTF::static_pointer_cast<MutableArray>(children));
+ coder.m_root = WebRenderObject::create(name, elementTagName, elementID, WTF::static_pointer_cast<MutableArray>(elementClassNames), absolutePosition, frameRect, WTF::static_pointer_cast<MutableArray>(children));
break;
}
case APIObject::TypeURL: {
Modified: trunk/Source/WebKit2/Shared/WebRenderLayer.cpp (121583 => 121584)
--- trunk/Source/WebKit2/Shared/WebRenderLayer.cpp 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/WebRenderLayer.cpp 2012-06-29 20:26:25 UTC (rev 121584)
@@ -75,27 +75,7 @@
WebRenderLayer::WebRenderLayer(RenderLayer* layer)
{
- RenderBoxModelObject* renderer = layer->renderer();
-
- m_renderObjectName = renderer->renderName();
-
- if (Node* node = renderer->node()) {
- if (node->isElementNode()) {
- Element* element = toElement(node);
- m_elementTagName = element->tagName();
- m_elementID = element->getIdAttribute();
- if (element->isStyledElement() && element->hasClass()) {
- StyledElement* styledElement = static_cast<StyledElement*>(element);
- if (size_t classNameCount = styledElement->classNames().size()) {
- m_elementClassNames = MutableArray::create();
- for (size_t i = 0; i < classNameCount; ++i)
- m_elementClassNames->append(WebString::create(styledElement->classNames()[i]).get());
- }
- }
-
- }
- }
-
+ m_renderer = WebRenderObject::create(layer->renderer());
m_isReflection = layer->isReflection();
#if USE(ACCELERATED_COMPOSITING)
Modified: trunk/Source/WebKit2/Shared/WebRenderLayer.h (121583 => 121584)
--- trunk/Source/WebKit2/Shared/WebRenderLayer.h 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/WebRenderLayer.h 2012-06-29 20:26:25 UTC (rev 121584)
@@ -26,12 +26,7 @@
#ifndef WebRenderLayer_h
#define WebRenderLayer_h
-#include "APIObject.h"
-#include "MutableArray.h"
-#include <WebCore/IntRect.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
+#include "WebRenderObject.h"
namespace WebCore {
class RenderLayer;
@@ -48,22 +43,17 @@
enum CompositingLayerType { None, Normal, Tiled, Media, Container };
static PassRefPtr<WebRenderLayer> create(WebPage*);
- static PassRefPtr<WebRenderLayer> create(const String& renderObjectName, const String& elementTagName, const String& elementID, PassRefPtr<MutableArray> elementClassNames,
- bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox,
- PassRefPtr<MutableArray> negativeZOrderList, PassRefPtr<MutableArray> normalFlowList, PassRefPtr<MutableArray> positiveZOrderList)
+ static PassRefPtr<WebRenderLayer> create(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type,
+ WebCore::IntRect absoluteBoundingBox, PassRefPtr<MutableArray> negativeZOrderList, PassRefPtr<MutableArray> normalFlowList, PassRefPtr<MutableArray> positiveZOrderList)
{
- return adoptRef(new WebRenderLayer(renderObjectName, elementTagName, elementID, elementClassNames, isReflection, isClipping, isClipped,
- type, absoluteBoundingBox, negativeZOrderList, normalFlowList, positiveZOrderList));
+ return adoptRef(new WebRenderLayer(renderer, isReflection, isClipping, isClipped, type, absoluteBoundingBox, negativeZOrderList, normalFlowList, positiveZOrderList));
}
ImmutableArray* negativeZOrderList() const { return m_negativeZOrderList.get(); }
ImmutableArray* normalFlowList() const { return m_normalFlowList.get(); }
ImmutableArray* positiveZOrderList() const { return m_positiveZOrderList.get(); }
- const String& renderObjectName() const { return m_renderObjectName; }
- const String& elementTagName() const { return m_elementTagName; }
- const String& elementID() const { return m_elementID; }
- ImmutableArray* elementClassNames() const { return m_elementClassNames.get(); }
+ WebRenderObject* renderer() const { return m_renderer.get(); }
bool isReflection() const { return m_isReflection; }
bool isClipping() const { return m_isClipping; }
bool isClipped() const { return m_isClipped; }
@@ -72,13 +62,9 @@
private:
WebRenderLayer(WebCore::RenderLayer*);
- WebRenderLayer(const String& renderObjectName, const String& elementTagName, const String& elementID, PassRefPtr<MutableArray> elementClassNames,
- bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox,
+ WebRenderLayer(PassRefPtr<WebRenderObject> renderer, bool isReflection, bool isClipping, bool isClipped, CompositingLayerType type, WebCore::IntRect absoluteBoundingBox,
PassRefPtr<MutableArray> negativeZOrderList, PassRefPtr<MutableArray> normalFlowList, PassRefPtr<MutableArray> positiveZOrderList)
- : m_renderObjectName(renderObjectName)
- , m_elementTagName(elementTagName)
- , m_elementID(elementID)
- , m_elementClassNames(elementClassNames)
+ : m_renderer(renderer)
, m_isReflection(isReflection)
, m_isClipping(isClipping)
, m_isClipped(isClipped)
@@ -94,10 +80,7 @@
static PassRefPtr<MutableArray> createArrayFromLayerList(Vector<WebCore::RenderLayer*>*);
- String m_renderObjectName;
- String m_elementTagName;
- String m_elementID;
- RefPtr<MutableArray> m_elementClassNames;
+ RefPtr<WebRenderObject> m_renderer;
bool m_isReflection;
bool m_isClipping;
bool m_isClipped;
Modified: trunk/Source/WebKit2/Shared/WebRenderObject.cpp (121583 => 121584)
--- trunk/Source/WebKit2/Shared/WebRenderObject.cpp 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/WebRenderObject.cpp 2012-06-29 20:26:25 UTC (rev 121584)
@@ -27,6 +27,7 @@
#include "WebRenderObject.h"
#include "WebPage.h"
+#include "WebString.h"
#include <WebCore/Frame.h>
#include <WebCore/FrameLoaderClient.h>
#include <WebCore/RenderText.h>
@@ -50,13 +51,29 @@
if (!contentRenderer)
return 0;
- return adoptRef(new WebRenderObject(contentRenderer));
+ return adoptRef(new WebRenderObject(contentRenderer, true));
}
-WebRenderObject::WebRenderObject(RenderObject* renderer)
+WebRenderObject::WebRenderObject(RenderObject* renderer, bool shouldIncludeDescendants)
{
m_name = renderer->renderName();
+ if (Node* node = renderer->node()) {
+ if (node->isElementNode()) {
+ Element* element = toElement(node);
+ m_elementTagName = element->tagName();
+ m_elementID = element->getIdAttribute();
+ if (element->isStyledElement() && element->hasClass()) {
+ StyledElement* styledElement = static_cast<StyledElement*>(element);
+ if (size_t classNameCount = styledElement->classNames().size()) {
+ m_elementClassNames = MutableArray::create();
+ for (size_t i = 0; i < classNameCount; ++i)
+ m_elementClassNames->append(WebString::create(styledElement->classNames()[i]).get());
+ }
+ }
+ }
+ }
+
// FIXME: broken with transforms
m_absolutePosition = flooredIntPoint(renderer->localToAbsolute(FloatPoint()));
@@ -69,9 +86,12 @@
} else if (renderer->isRenderInline())
m_frameRect = toRenderBoxModelObject(renderer)->borderBoundingBox();
+ if (!shouldIncludeDescendants)
+ return;
+
m_children = MutableArray::create();
for (RenderObject* coreChild = renderer->firstChild(); coreChild; coreChild = coreChild->nextSibling()) {
- RefPtr<WebRenderObject> child = adoptRef(new WebRenderObject(coreChild));
+ RefPtr<WebRenderObject> child = adoptRef(new WebRenderObject(coreChild, shouldIncludeDescendants));
m_children->append(child.get());
}
@@ -84,7 +104,7 @@
FrameView* frameView = static_cast<FrameView*>(widget);
if (RenderView* coreContentRenderer = frameView->frame()->contentRenderer()) {
- RefPtr<WebRenderObject> contentRenderer = adoptRef(new WebRenderObject(coreContentRenderer));
+ RefPtr<WebRenderObject> contentRenderer = adoptRef(new WebRenderObject(coreContentRenderer, shouldIncludeDescendants));
m_children->append(contentRenderer.get());
}
}
Modified: trunk/Source/WebKit2/Shared/WebRenderObject.h (121583 => 121584)
--- trunk/Source/WebKit2/Shared/WebRenderObject.h 2012-06-29 19:57:29 UTC (rev 121583)
+++ trunk/Source/WebKit2/Shared/WebRenderObject.h 2012-06-29 20:26:25 UTC (rev 121584)
@@ -30,7 +30,6 @@
#include "MutableArray.h"
#include <WebCore/IntRect.h>
#include <wtf/PassRefPtr.h>
-#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
@@ -46,22 +45,35 @@
static const Type APIType = TypeRenderObject;
static PassRefPtr<WebRenderObject> create(WebPage*);
- static PassRefPtr<WebRenderObject> create(const String& name, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<MutableArray> children)
+ static PassRefPtr<WebRenderObject> create(WebCore::RenderObject* renderer)
{
- return adoptRef(new WebRenderObject(name, absolutePosition, frameRect, children));
+ return adoptRef(new WebRenderObject(renderer, false));
}
+ static PassRefPtr<WebRenderObject> create(const String& name, const String& elementTagName, const String& elementID,
+ PassRefPtr<MutableArray> elementClassNames, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<MutableArray> children)
+ {
+ return adoptRef(new WebRenderObject(name, elementTagName, elementID, elementClassNames, absolutePosition, frameRect, children));
+ }
+
RefPtr<ImmutableArray> children() const { return m_children; }
const String& name() const { return m_name; }
+ const String& elementTagName() const { return m_elementTagName; }
+ const String& elementID() const { return m_elementID; }
+ ImmutableArray* elementClassNames() const { return m_elementClassNames.get(); }
WebCore::IntPoint absolutePosition() const { return m_absolutePosition; }
WebCore::IntRect frameRect() const { return m_frameRect; }
private:
- WebRenderObject(WebCore::RenderObject*);
- WebRenderObject(const String& name, WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<MutableArray> children)
+ WebRenderObject(WebCore::RenderObject*, bool shouldIncludeDescendants);
+ WebRenderObject(const String& name, const String& elementTagName, const String& elementID, PassRefPtr<MutableArray> elementClassNames,
+ WebCore::IntPoint absolutePosition, WebCore::IntRect frameRect, PassRefPtr<MutableArray> children)
: m_children(children)
, m_name(name)
+ , m_elementTagName(elementTagName)
+ , m_elementID(elementID)
+ , m_elementClassNames(elementClassNames)
, m_absolutePosition(absolutePosition)
, m_frameRect(frameRect)
{
@@ -72,6 +84,9 @@
RefPtr<MutableArray> m_children;
String m_name;
+ String m_elementTagName;
+ String m_elementID;
+ RefPtr<MutableArray> m_elementClassNames;
WebCore::IntPoint m_absolutePosition;
WebCore::IntRect m_frameRect;
};