⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.
wiki:Component Model

Version 8 (modified by Dimitri Glazkov, 15 years ago) ( diff )

--

Component Model in WebKit

The component model effort brings encapsulation to the Web. See ​use cases for more background.

Implementation Status

If this is older than 30 days, it's probably out of date.

Area Status Comments
​Convert all existing shadow DOM to new model input/textarea remain
​Shadow Content Plumbing Basic plumbing in place Instead of it being a <template> element clone, we use a different node type (SHADOW_ROOT_NODE = 14) for the root node
​DOM Interfaces Not yet implemented Waiting on the plumbing to settle down
​Declarative API (Markup) Not yet implemented Waiting on the plumbing to settle down
​Events Matches logic in ​event handlers section We don't create a separate Event object for each re-targeting, because we don't worry about component isolation (yet)
​Lifecycle Not yet implemented Built-in HTML elements implementation uses direct wiring
​Document/Resource Loading Not yet implemented
​CSS matching Some of the ​selectors and shadow scopes implemented Need to further align with the XBL2 spec

Current difference from the ​XBL2 spec:

pseudo attribute Same as ​XBL2 pseudo, but allows arbitrary value and CSS machinery has been modified to allow any value
Tree Scopes Implemented, matches the ​shadow scope notion of in XBL2
Inheritance Won't be implementing. This feature is overly complex and unnecessary for the component model. See ​this post to public-webapps
<content> element Basic building blocks are being used by <summary> and <details>, Need to better understand requirements and use cases to spec/implement properly. Certainly won't be implementing the way it's ​defined in XBL 2.0
Note: See TracWiki for help on using the wiki.