[w3c/webcomponents] Upstreaming Custom Elements and Outstanding v1 (#664)

As per @annevk's request https://github.com/w3c/webcomponents/issues/641#issuecomment-327406083. Would like to have a better laundry list similar  but feel this is a great start. @annevk feel free to update to your liking. Just wanted to save some boilerplate time. Attempted to follow your format based off my recollection the past couple years. Also combed through the specs, bugs, & vendor standings. Of course @domenic knows better what goes where https://github.com/w3c/webcomponents/issues/377#issuecomment-178834555. Then can address ["how to do things in pieces ?"](https://github.com/w3c/webcomponents/issues/377#issuecomment-179157918)

Related: #661 _(nay #377, #495)_

Specification: https://w3c.github.io/webcomponents/spec/custom

Caveats: _Abstract states specification mirrors relevant parts of HTML & WHATWG-DOM up through https://github.com/whatwg/html/commit/81ee034f316f4366aeb315d16ea21521c83ab427 and https://github.com/whatwg/dom/commit/cb85ac4c35baa1345f2b71e2dd3d57b098ddf2d1 respectively._

_Please fill in [x] , update, or delete where appropriate. Worst case delete if inappropriate_

[ ] 1. Custom Elements (=> DOM Standard; information in "Custom Elements" is obsolete)
[ ] 2. DOM Mutation Algorithms _([Section 4.9](https://w3c.github.io/webcomponents/spec/custom/#dom:-mutation-algorithms), [Section 4.6](https://w3c.github.io/webcomponents/spec/custom/#dom:-mutation-algorithms), and [Section 4.10](https://w3c.github.io/webcomponents/spec/custom/#dom:-wide-ranging-patches))_
[ ] 3. The `CustomElementRegistry` Interface _[ (=> DOM Standard; )
  [ ] `CustomElementRegistry.define()` (=> DOM Standard; )
    [ ] [Element Definition](https://w3c.github.io/webcomponents/spec/custom/#element-definition)
  [ ] `CustomElementRegistry.get()` (=> DOM Standard; )
  [ ] `CustomElementRegistry.whenDefined()` (=> DOM Standard; )

[ ] 4. Upgrades to Custom Element

[ ] 5. Custom Element Registry Reactions _(`CER`)_
  [ ] `super()` _(nay `createdCallback()`)_
  [ ] `connectedCallback()` ([history]())
  [ ] `attributeChangedCallback()`
  [ ] `observedAttributes()`
  [ ] `adoptedCallback()`

[ ] 6. Concensus on `:defined` pseudo-class _[(Section 4.2)](https://w3c.github.io/webcomponents/spec/custom/#html:-pseudo-classes) & https://github.com/w3c/webcomponents/issues/661#issuecomment-327102852_

[ ] 7. Consensus on Creating a customized built-in element _https://github.com/w3c/webcomponents/issues/570 & [(Section 2.1.2 non-normative)](https://w3c.github.io/webcomponents/spec/custom/#custom-elements-customized-builtin-example)_ 
  [ ] `.define (localName, constructor, { extends: 'button' })`
  [ ] `document.createElement ('button', { is: 'plastic-button' })`
  [ ] `<button is={localName}>`
  [ ] _[(Section 2.1.3 non-normative)](https://w3c.github.io/webcomponents/spec/custom/#custom-elements-autonomous-drawbacks)_ _(Ironically) Drawbacks of autonomous custom elements is more verbose than benefits)_


[ ] 8. `HTMLUnknownElement` Interface _possibly not much to do here_
[ ] 9. `HTMLElement` Interface _[(Section 2.2)](https://w3c.github.io/webcomponents/spec/custom/#custom-element-conformance)_
  [ ] Concerns re: constructor swizzle within browsers that do not support ES6 class inheritance
  [ ] Pros and cons of specing out `HTMLElement` to be a bonafied constructor _(i.e. `[DocumentFragment()](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment/DocumentFragment)`


Outstanding Issues in HTML: 
https://github.com/whatwg/html/issues?q=is%3Aissue+is%3Aopen+custom+label%3A%22topic%3A+custom+elements%22

Outstanding Issues in DOM:
  - ~https://github.com/whatwg/dom/issues/396~

Outstanding Issues in This Repository:
  - https://github.com/w3c/webcomponents/issues/566 _(not filed under V1)_
https://github.com/w3c/webcomponents/issues?q=is%3Aopen%20label%3Av1%20label%3Acustom-elements

Current Vendor Status:
[Google Chrome](https://bugs.chromium.org/p/chromium/issues/detail?id=594918)
[Mozilla Firefox (`#889230` in progress)_](https://bugzilla.mozilla.org/show_bug.cgi?id=889230)
[Safari _(autonomous CE only)_](https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html#//apple_ref/doc/uid/TP40014305-CH12-SW5)
[Opera](https://dev.opera.com/blog/opera-41/#web-components-custom-elements-v1)
[Edge _(Under Consideration)_](https://developer.microsoft.com/en-us/microsoft-edge/platform/status/customelements)
[Internet Explorer _(Not Supported)_](https://developer.microsoft.com/en-us/microsoft-edge/platform/status/customelements)

Also have taken the liberty to update MDN Browser Compatibility for Custom Elements ~as they still reflected Custom Elements v0 vendor status. From adopter feedback was causing some confusion in the wild~:
[x] Update [`CustomElementRegistry.define()` matrix](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define)
[x] Update [`CustomElementRegistry.get()` matrix](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/get)
[x] Update [`CustomElementRegistry.whenDefined()` matrix](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/whenDefined)

I hope this at least helps initiate moving forward.

Peace :peace_symbol: 


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/664

Received on Thursday, 7 September 2017 11:45:54 UTC