TPE DOM/Custom elements
Contents
- 1 Introduction
- 2 Taipei Main Members
- 3 Meeting Minutes
- 4 Roadmap
- 5 Project Dashboard
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
Summary
We are now at Stage 4, working on performance work, especially on the critical blocker from enabling this feature on Nightly.
- Estimated nightly version: 59
- Firefox dev-platform intent-to-implement
Details
[Stage 1] (completed)
- 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] (completed)
- 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] (completed)
- Callback reaction queue
- Lifecycle callbacks
- sProcessingStack
- EnqueueLifecycleCallback
- connectedCallback
- disconnectedCallback
- attributeChangedCallback
[Stage 4] (WE'RE HERE)
- Performance work
- Enable on Nightly (estimated target 59)
[Stage 5]
- Ride to train
[Stage 6 - Backlog]
- 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: 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_2 Bugs & Progress (IN PROGRESS)
15 Total; 0 Open (0%); 15 Resolved (100%); 0 Verified (0%);
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%);