- From: <bugzilla@jessica.w3.org>
- Date: Fri, 27 Jul 2012 22:19:33 +0000
- To: public-webapps-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18429 Summary: [Shadow]: Specify imperative API for node distribution Product: WebAppsWG Version: unspecified Platform: PC OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Component Model AssignedTo: dglazkov@chromium.org ReportedBy: dglazkov@chromium.org QAContact: public-webapps-bugzilla@w3.org CC: tross@microsoft.com, travil@microsoft.com, shinyak@chromium.org, hayato@chromium.org Blocks: 18428 Declarative insertion points syntax is not able to address several use cases (spec bugs to be filed by Hayato-san and Shinya-san). Here's a strawman for an imperative API: The general idea is that the insertion point distribution is actually something that occurs as a result of running some function/callback. The callback could be powered with Mutation Observers, or some internal implementation. When this function runs, it operates on a special API of HTMLContentElement: the distributedChildren (name TBD) array. Adding a Node to this array makes it appear projected into its HTMLContentElement. If a node is not a descendant of shadow host, an exception is thrown. If a node is a descendant of another node that is already a member of any distributedChildren array of the shadow subtree, that other node is ejected from the distributedChildren array to which it belonged. There are more cases to handle, but you get the gist. The declarative API is simply a byproduct of some default function/callback. You can override this callback with your custom handler, thus disabling the declarative API. The advantage here is that you can: 1) completely explain the magic of the declarative insertion point syntax 2) provide solutions to all of the use cases (including crazy stuff like dynamic creation of insertion points for varying number of children) The disadvantage is that: 1) the API has tremendous foot-gun potential and we need to make darn sure to steer clear of those. 2) there are potential challenges with making this work in a performant fashion. -- Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Friday, 27 July 2012 22:19:35 UTC