[webkit-dev] Shadow nodes in webkit

Giri Rao giri.rao at gmail.com
Fri Oct 24 13:08:34 PDT 2008


Hi Adele,

Here is my html fragment:

<html>
  <body>
    <textarea rows="10" cols="30">The cat was playing in the
garden.</textarea>
  </body>
</html>

The dom tree consists of:
dom node for document
  -- dom node for html
    -- dom node for body
      -- dom node for text area

The dom tree stops here and does not give me a #text node for the textarea's
text.  Is there a way to get the text while traversing the dom tree?

The render tree consists of:
render object for document
  -- render object for html
     -- render object for body
        -- render object for text area
           -- A DIV shadow node
              -- a #text node whose nodeValue() returns The cat was playing
in the garden.

I was wondering if there could ever be a scenario where the shadow DIV node
contains more than one child?  In other words is it guaranteed that a shadow
node contains exactly one child?

Thanks in advance
Giri



On Thu, Oct 23, 2008 at 6:28 PM, Adele Peterson <adele at apple.com> wrote:

> Hi Giri,
> WebKit creates shadow nodes for many of the form controls.  As you noticed,
> these nodes are not visible from the DOM, but the renderers for those nodes
> can be traversed in the render tree.  For example, a text field or text area
> has a shadow DOM that contains all the text inside the control.  A file
> upload control has a shadow nodes for  the  "choose file" button.  This is
> just a way for WebKit to build elements using HTML without exposing the
> internal details to web content.
>
> - Adele
>
> On Oct 23, 2008, at 6:22 PM, Giri Rao wrote:
>
> Hi,
>
> I am running into a bit of a problem, let me try and explain the best I
> can:
>
> I am traversing RenderObject tree in webkit.  I notice that there are
> certain nodes (accessed using render_object->node()) which are shadow nodes
> (node->isShadow() returns true).  I note down the address of one such node,
> lets say the address is 100.  The node name of this node is "DIV"
>
> Now, I traverse the dom tree using Node, for each node I note down the
> node's address. I am noticing that I am not seeing any nodes while
> traversing the dom tree whose address is 100.
>
> So two questions:
> 1.  Why would webkit create a node which is not part of the dom tree?
> 2.  What are shadow nodes?
>
> Any insight is appreciated.
>
> Thanks
> Giri _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20081024/ad30c838/attachment.html>


More information about the webkit-dev mailing list