Can’t get basic element info from a WKRenderObject
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Jun 2012 20:26:25 +0000 (20:26 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Jun 2012 20:26:25 +0000 (20:26 +0000)
commit8c7a05d205259f6804ebe0ad778e121ddc0708c8
tree8e731db0c4272d8645ca3a9d67a4efe4229e7019
parent1725115d0e5f2842ee45402a7d1bd30761256fa8
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):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/API/c/WKRenderLayer.cpp
Source/WebKit2/Shared/API/c/WKRenderLayer.h
Source/WebKit2/Shared/API/c/WKRenderObject.cpp
Source/WebKit2/Shared/API/c/WKRenderObject.h
Source/WebKit2/Shared/UserMessageCoders.h
Source/WebKit2/Shared/WebRenderLayer.cpp
Source/WebKit2/Shared/WebRenderLayer.h
Source/WebKit2/Shared/WebRenderObject.cpp
Source/WebKit2/Shared/WebRenderObject.h