TPE DOM/Custom elements

From New wiki
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:


Taipei Main Members

Engineers: Edgar Chen (main contact), John Dai

Meeting Minutes

Sync-up minutes

Roadmap

Summary

We are now at Stage 4, working on performance work, especially on the critical blocker from enabling this feature on Nightly.

Details

[Stage 1] (completed)

  1. Remove support of SVG-based custom element.
  2. Window interface
  3. HTMLElement constructor
    • Support using ES6 classes
    • Construction stack
    • Bug: 1274159
  4. Document interface
    • createElement, createElementNS
    • Bug: 1276579
  5. window.customElements.define

[Stage 2] (completed)

  1. custom element upgrade reactions stack/queue
    • Upgrade reaction
  2. Algorithm of creating an element

[Stage 3] (completed)

  1. Callback reaction queue
  2. Lifecycle callbacks
      • sProcessingStack
      • EnqueueLifecycleCallback
    • connectedCallback
    • disconnectedCallback
    • attributeChangedCallback

[Stage 4] (WE'RE HERE)

  1. Performance work
  2. Enable on Nightly (estimated target 59)

[Stage 5]

  1. Ride to train

[Stage 6 - Backlog]

  1. Mutation algorithms (Shadow dom)
  2. CSS :define
  3. Performance
  4. Web-platform-tests

Project Dashboard

Meta Bugs

<bugzilla>

   {
       "id":["889230"]
   }

</bugzilla>


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>

   {
       "blocks":["889230"],
       "whiteboard":["dom-ce-m2"],
       "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_3 Bugs & Progress (DONE)

<bugzilla>

   {
       "blocks":["889230"],
       "whiteboard":["dom-ce-m3"],
       "status":["NEW","REOPENED","ASSIGNED","RESOLVED","VERIFIED","CLOSED"],
       "include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks"
   }

</bugzilla>