TPE DOM/Custom elements: Difference between revisions
(→Project Dashboard: dom-ce-m2 dashboard) |
(→Roadmap: backlog update) |
||
| (12 intermediate revisions by the same user not shown) | |||
| Line 22: | Line 22: | ||
== Roadmap == | == Roadmap == | ||
[Stage 1] | === Summary === | ||
We are now at Stage 4, working on performance work, especially on the [https://bugzilla.mozilla.org/show_bug.cgi?id=1392974 critical blocker] from enabling this feature on Nightly. | |||
* Estimated nightly version: 59 | |||
* Firefox dev-platform [https://groups.google.com/d/msg/mozilla.dev.platform/BI3I0U7TDw0/6-W39tXpBAAJ intent-to-implement] | |||
=== Details === | |||
[Stage 1] (completed) | |||
# Remove support of SVG-based custom element. | # Remove support of SVG-based custom element. | ||
#* Bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=1274505 1274505] | #* Bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=1274505 1274505] | ||
| Line 38: | Line 44: | ||
#window.customElements.define | #window.customElements.define | ||
#*Bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=1275835 1275835] | #*Bug: [https://bugzilla.mozilla.org/show_bug.cgi?id=1275835 1275835] | ||
[Stage 2] (completed) | |||
#custom element reactions stack/queue | #custom element upgrade reactions stack/queue | ||
#*Upgrade reaction | #*Upgrade reaction | ||
#Algorithm of creating an element | #Algorithm of creating an element | ||
| Line 48: | Line 51: | ||
#*Revise consumers (createElement[NS] and HTML parser accordingly | #*Revise consumers (createElement[NS] and HTML parser accordingly | ||
#**HTML parser: https://dxr.mozilla.org/mozilla-central/source/parser/html/nsHtml5TreeOperation.cpp#335 | #**HTML parser: https://dxr.mozilla.org/mozilla-central/source/parser/html/nsHtml5TreeOperation.cpp#335 | ||
[Stage 3] (completed) | |||
#Callback reaction queue | |||
#Lifecycle callbacks | #Lifecycle callbacks | ||
#**sProcessingStack | |||
#**EnqueueLifecycleCallback | |||
#*connectedCallback | #*connectedCallback | ||
#*disconnectedCallback | #*disconnectedCallback | ||
#*attributeChangedCallback | #*attributeChangedCallback | ||
[Stage | [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) | #Mutation algorithms (Shadow dom) | ||
#*Spec: | #*Spec: | ||
#**https://dom.spec.whatwg.org/#mutation-algorithms | #**https://dom.spec.whatwg.org/#mutation-algorithms | ||
#**https://w3c.github.io/webcomponents/spec/custom/#dom-mutation-algorithms | #**https://w3c.github.io/webcomponents/spec/custom/#dom-mutation-algorithms | ||
# | #[https://bugzilla.mozilla.org/show_bug.cgi?id=1331334 CSS :define] | ||
#Performance | |||
#[https://bugzilla.mozilla.org/show_bug.cgi?id=1419295 Web-platform-tests] | |||
# | |||
# | |||
== Project Dashboard == | == Project Dashboard == | ||
| Line 71: | Line 81: | ||
</bugzilla> | </bugzilla> | ||
=== Stage_2 Bugs & Progress === | |||
=== 1st Impl. Shipping Blocker: Performance issues (INPROGRESS) === | |||
<bugzilla> | |||
{ | |||
"blocks":["1396567"], | |||
"status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"], | |||
"include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks" | |||
} | |||
</bugzilla> | |||
=== Post 1st Ship: Stage_4 Bugs & Progress (BACKLOG) === | |||
<bugzilla> | |||
{ | |||
"blocks":["889230"], | |||
"whiteboard":["dom-ce-m4"], | |||
"status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"], | |||
"include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks" | |||
} | |||
</bugzilla> | |||
=== What Have Been DONE === | |||
==== 1st Impl. Shipping Blocker: Stage_1 Bugs & Progress (DONE) ==== | |||
<bugzilla> | |||
{ | |||
"blocks":["889230"], | |||
"whiteboard":["dom-ce-m1"], | |||
"status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"], | |||
"include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks" | |||
} | |||
</bugzilla> | |||
=== 1st Impl. Shipping Blocker: Stage_2 Bugs & Progress (IN PROGRESS)=== | |||
<bugzilla> | <bugzilla> | ||
{ | { | ||
| Line 81: | Line 122: | ||
</bugzilla> | </bugzilla> | ||
==== 1st Impl. Shipping Blocker: Stage_3 Bugs & Progress (DONE) ==== | |||
=== | |||
<bugzilla> | <bugzilla> | ||
{ | { | ||
"blocks":["889230"], | "blocks":["889230"], | ||
"whiteboard":["dom-ce- | "whiteboard":["dom-ce-m3"], | ||
"status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"], | "status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"], | ||
"include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks" | "include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks" | ||
} | } | ||
</bugzilla> | </bugzilla> | ||
Latest revision as of 03:37, 4 December 2017
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%);