W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2011

Re: Component Model: Landing Experimental Shadow DOM API in WebKit

From: Garrett Smith <dhtmlkitchen@gmail.com>
Date: Thu, 30 Jun 2011 15:03:46 -0700
Message-ID: <BANLkTikQAc1OHXa9eXgY8Rp45V3fDNXMng@mail.gmail.com>
To: Dimitri Glazkov <dglazkov@chromium.org>
Cc: public-webapps <public-webapps@w3.org>
On 6/29/11, Dimitri Glazkov <dglazkov@chromium.org> wrote:
> Hi Folks!
>
> With use cases (http://wiki.whatwg.org/wiki/Component_Model_Use_Cases)
> firmed up, and isolation
> (http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0900.html),
> inheritance
> (http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0941.html)
> out of the way, a component model for the Web can be viewed as a
> three-piece puzzle:
>
> 1) Shadow DOM (http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/)

| var slider = document.getElementsById("foo");
| console.log(slider.firstChild); // returns null

In which browser?

| // Create an element with a shadow DOM subtree.
| var input = document.body.appendChild(document.createElement('input'));
| // Add a child to it.
| var test = input.appendChild(document.createElement('p'));

What should that do, other than throw an error?

> with its encapsulation properties in regard to events, styles, and DOM
> scoping;
> 2) Associating a chunk of shadow DOM and Javascript behavior with a
> DOM element -- that's the actual "Component" part;

I've always wanted a method to clone events and js properties, so you
can have say:

form.cloneObject(true);

And that form's controls will retain its their `value`, `checked`, et al.

> 3) Declarative (markup) way of expressing the above.
>
> Since this is still a largish puzzle, difficult to solve by
> theoretical examination, we would like to start by landing the first
> piece (the shadow DOM bits) as an experimental API in WebKit.

I've got another idea but I'm not going to say what it is.
-- 
Garrett
Received on Thursday, 30 June 2011 22:04:27 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:45 GMT