TPE DOM/Custom elements
< TPE DOM
Jump to navigation
Jump to search
Introduction
This project is to enable web authors to define and use new types of DOM elements in a document.
References:
- Custom Elements spec
- whatwg html wiki
- whatwg dom wiki
- blink-dev intent-to-implement
- Blink bugs
- Safari bugs
Taipei Main Members
Engineers: Edgar Chen (main contact), John Dai
Meeting Minutes
Roadmap
[Stage 1]
- Remove support of SVG-based custom element.
- Bug: 1274505
- Window interface
- HTMLElement constructor
- Support using ES6 classes
- Construction stack
- Bug: 1274159
- Document interface
- createElement, createElementNS
- Bug: 1276579
- window.customElements.define
- Bug: 1275835
[Stage 2] <We are here - Stretch goal: 2017 Q3 Stage2.1 & 2.2>
- custom element upgrade reactions stack/queue
- Upgrade reaction
- Algorithm of creating an element
- Spec: https://dom.spec.whatwg.org/#concept-create-element
- Revise consumers (createElement[NS] and HTML parser accordingly
[Stage 3] <We are here - Stretch goal: 2017 Q3 Stage2.1 & 2.2>
- Callback reaction queue
- Lifecycle callbacks
- sProcessingStack
- EnqueueLifecycleCallback
- connectedCallback
- disconnectedCallback
- attributeChangedCallback
[Stage 4]
- Mutation algorithms (Shadow dom)
- CSS :define
- Performance
- Web-platform-tests
Project Dashboard
Meta Bugs
| ID | Summary | Priority | Status |
|---|---|---|---|
| 889230 | [meta] Implement Custom Elements (from Web Components) | P3 | RESOLVED |
1 Total; 0 Open (0%); 1 Resolved (100%); 0 Verified (0%);
1st Impl. Shipping Blocker: Stage_2 Bugs & Progress (IN PROGRESS)
15 Total; 0 Open (0%); 15 Resolved (100%); 0 Verified (0%);
1st Impl. Shipping Blocker: Performance issues (INPROGRESS)
12 Total; 0 Open (0%); 12 Resolved (100%); 0 Verified (0%);
Post 1st Ship: Stage_4 Bugs & Progress (BACKLOG)
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1326028 | customElements.define must upgrade custom element in shadow-including tree order | RESOLVED | mozilla61 | FIXED | Blake Kaplan (:mrbkap) (inactive) | 889230, 1419323 | |
| 1331334 | Implement :defined pseudo-class for custom elements | RESOLVED | mozilla63 | FIXED | Olli Pettay [:smaug][bugs@pettay.fi] | 1299363, 1301024, 1417829 | 889230, 1471871 |
| 1331341 | Enqueue custom element upgrade/callbacks reactions in shadow-including tree order when inserting/removing a node | RESOLVED | --- | DUPLICATE | 889230 |
3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);
What Have Been DONE
1st Impl. Shipping Blocker: Stage_1 Bugs & Progress (DONE)
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1274159 | Add [HTMLConstructor] to support custom element feature | RESOLVED | mozilla53 | FIXED | Edgar Chen [:edgar] | 1275835 | 889230, 1287348, 1301024, 1317658 |
| 1274505 | Remove support of SVG-based custom element | RESOLVED | mozilla50 | FIXED | John Dai[:jdai] | 889230, 1276579, 1396765 | |
| 1275832 | Implement custom element name validation for custom element | RESOLVED | mozilla52 | FIXED | John Dai[:jdai] | 889230, 1275835, 1275839 | |
| 1275833 | Add CustomElementsRegistry interface for custom element | RESOLVED | mozilla50 | FIXED | John Dai[:jdai] | 1289872 | 889230, 1275835, 1275838, 1275839 |
| 1275835 | Implement CustomElementsRegistry define function | RESOLVED | mozilla51 | FIXED | Edgar Chen [:edgar] | 1275832, 1275833 | 889230, 1274159, 1275838, 1275839 |
| 1275838 | Implement CustomElementsRegistry get function | RESOLVED | mozilla52 | FIXED | John Dai[:jdai] | 1275833, 1275835 | 889230 |
| 1275839 | Implement CustomElementsRegistry whenDefined function | RESOLVED | mozilla52 | FIXED | John Dai[:jdai] | 1275832, 1275833, 1275835 | 889230 |
| 1276579 | Revise document.createElement[NS] for custom elements | RESOLVED | mozilla50 | FIXED | Jocelyn Liu [:jocelyn] [:joliu] | 1274505, 1294100, 1318630, 1338889 | 889230, 1276240 |
| 1288306 | Disable custom elements web-platform v0 tests | RESOLVED | mozilla50 | FIXED | Edgar Chen [:edgar] | 889230, 1396765 | |
| 1294100 | TypeError: Argument 2 of Document.createElement can't be converted to a dictionary. | VERIFIED | mozilla51 | FIXED | John Dai[:jdai] | 889230, 1276579 | |
| 1309140 | Rename CustomElementsRegistry to CustomElementRegistry | RESOLVED | mozilla52 | FIXED | John Dai[:jdai] | 889230 | |
| 1341693 | Crash [@mozilla::dom::WindowBinding::get_customElements] | RESOLVED | mozilla54 | FIXED | Edgar Chen [:edgar] | 1340565, 889230 |
12 Total; 0 Open (0%); 11 Resolved (91.67%); 1 Verified (8.33%);
1st Impl. Shipping Blocker: Stage_3 Bugs & Progress (DONE)
| ID | Summary | Status | Target milestone | Resolution | Assigned to | Depends on | Blocks |
|---|---|---|---|---|---|---|---|
| 1121994 | Implement adopted callback for custom elements | RESOLVED | mozilla58 | FIXED | John Dai[:jdai] | 889230, 1293921 | |
| 1315885 | Implement callback reaction for custom element reactions | RESOLVED | mozilla56 | FIXED | John Dai[:jdai] | 1309147, 1325279, 1347446 | 889230, 1293921, 1379573 |
| 1334043 | Implement connected lifecycle callbacks for custom elements | RESOLVED | mozilla58 | FIXED | Jessica Jong [:jessica] (inactive) | 889230, 1293921, 1387125 | |
| 1334044 | Implement disconnected lifecycle callbacks for custom elements | RESOLVED | mozilla58 | FIXED | Jessica Jong [:jessica] (inactive) | 889230, 1293921 | |
| 1334051 | Implement list of observed attributes for custom elements' attributeChanged callbacks | RESOLVED | mozilla57 | FIXED | Jessica Jong [:jessica] (inactive) | 889230, 1293921 | |
| 1340027 | Add annotation with the [CEReactions] attribute | RESOLVED | mozilla56 | FIXED | John Dai[:jdai] | 1293921, 1309147 | 889230 |
| 1392970 | Consider having a reference of the CustomElementDefinition in the custom element itself | RESOLVED | mozilla58 | FIXED | Jessica Jong [:jessica] (inactive) | 889230, 1396567, 1408828, 1410790 |
7 Total; 0 Open (0%); 7 Resolved (100%); 0 Verified (0%);