[webcomponents]: Web Components in 2014

Hello public-webapps!

As promised, here's the "plans and expectations" summary for the Web
Components spec umbrella. Apologies for taking so long.

== Web Components Explainer ==

Current Editor: dominicc@google.com
Status: Non-normative document

The explainer is continually updated to reflect the progress of all specs.
Since this document just keeps tracking the overall state, it will see
ongoing work throughout 2014.

== Custom Elements ==

Current Editor: dglazkov@chromium.org
Status: Last Call Draft

The custom elements spec is in LC. The expectation is that it will pass LC
at some point this year and enter CR.

Current state: The spec is stable, most work will evolve existing abilities
and refactor out primitives.

Polyfills and native implementations:

* Polymer (http://www.polymer-project.org/) maintains a polyfill (
https://github.com/polymer/CustomElements)
* An implementation based on the current spec is shipping in Chrome 33 Beta
* Implementation in Mozilla is progressing (
https://bugzilla.mozilla.org/show_bug.cgi?id=856140)

What's happening/up next:

1) Adding ES6 support. I started reading
https://people.mozilla.org/~jorendorff/es6-draft.html and plan to begin
with sprinkling non-normative comments over the spec, then grow them into
normative prose as the official ES6 spec emerges. Related bugs:
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24018
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24019
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24020

2) Adding an explicit registry API. This will likely be a separate spec,
which takes the "registry" concept from the spec and exposes it as its own
primitive:
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24578

3) Defining HTML elements as custom elements. This will likely involve
splitting element/callback queue machinery into its own primitive as well
and adding more callbacks.
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24570
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24577
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24603
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24655

4) Adding a WebIDL attribute to mark places where callbacks are invoked:
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24579

5) Continuing spec maintenance. Related bugs:
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24043
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24087
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24176
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24178
* https://www.w3.org/Bugs/Public/show_bug.cgi?id=24314

Testing status and plan:

A test suite is in active development:
* https://github.com/w3c/web-platform-tests/pull/464
* https://github.com/w3c/web-platform-tests/pull/469
* https://github.com/w3c/web-platform-tests/pull/578
* https://github.com/w3c/web-platform-tests/pull/609

== Shadow DOM ==

Status: Working Draft
Current Editor: hayato@google.com

The Shadow DOM spec is a Working Draft. We’re preparing next working draft
which reflects the feedback.

Current state: after a refactoring, the spec had settled down, maintenance
and evolution in progress. Also, there's now a sister spec in CSS WG:
http://dev.w3.org/csswg/shadow-styling/

Polyfills and native implementations:
* Polymer (http://www.polymer-project.org/) maintains a polyfill (
https://github.com/polymer/ShadowDOM)
* An implementation based on the editor’s draft is shipping in Chrome
Canary behind a flag.
* Implementation in Mozilla is progressing (
https://bugzilla.mozilla.org/show_bug.cgi?id=811542)

What's happening/up next:
* Come up with an isolation primitive (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16509)
* Specify the "hidden" mode (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20144).
* Work on underlying primitives? (projection, etc.)
* Imperative Content distribution API (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18429)
* Better event-stopping logic (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20247)
* DOM-based vs. Box-based Selection. This on the radar, but will likely not
fit into this year.

Testing status and plan:

A test suite in W3C repository (
https://github.com/w3c/web-platform-tests/tree/master/shadow-dom). We are
maintaining the repository and continually updating the tests to reflect
the latest spec.

== HTML Imports ==

Status: First Public Working Draft
Current Editor: morrita@chromium.org

Current state: Active development, with high rate of change.

The HTML imports published first public WD last year. Since then, we’ve
receiving feedback from implementers and polyfill users. We’re preparing
next working draft which reflects all of the feedback.

Polyfills and native implementations:
* As custom elements and Shadow DOM, Polymer maintains a polyfill (
https://github.com/polymer/HTMLImports).
* An implementation reflecting current spec and some filed bugs are shipped
in Chrome behind a flag.

What's happening/up next:
* Asynchronous loading (https://www.w3.org/Bugs/Public/show_bug.cgi?id=24114):
We’ll add @async attribute or imperative API for loading import
asynchronously. This supports use cases like ads and dynamic/lazy loading.
* Loading resources other than scripts (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=23170): Non-script
resources, especially stylesheets, are going to be imported as well. By
doing this, we can package themes and CSS frameworks.
* Should imports be Documents or DocumentFragments (
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22305)

Testing status and plan:
Test stubs are in W3C repository (
https://github.com/w3c/web-platform-tests/tree/master/html-imports). Will
improve and align with the spec. Also planning to upstream Chrome’s test
suite for HTML imports.

:DG<

Received on Thursday, 13 February 2014 22:01:12 UTC