New issue
Advanced search Search tips

Issue 869308 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Tracking bug for "Imperative Shadow DOM Distribution API"

Project Member Reported by hayato@chromium.org, Jul 31

Issue description

Labels: OWP-Type-NewAPI
Labels: -Pri-3 Pri-2
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4a9072bd09ed3c9e7d0d257652b65b7b82961f89

commit 4a9072bd09ed3c9e7d0d257652b65b7b82961f89
Author: Hayato Ito <hayato@chromium.org>
Date: Tue Aug 07 03:33:27 2018

Add a basic test for imperative shadow dom distribution API, which fails at this point

See crbug.com/869308 for details.

Bug: 869308
Change-Id: Ie83796a1e281dcdc25267637ddfe2d7b1d658da3
Reviewed-on: https://chromium-review.googlesource.com/1164152
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581123}
[modify] https://crrev.com/4a9072bd09ed3c9e7d0d257652b65b7b82961f89/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/4a9072bd09ed3c9e7d0d257652b65b7b82961f89/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html

Owner: kymuto@google.com
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/41f06ea813b84aafeb536a070f1c9fcbe8e07534

commit 41f06ea813b84aafeb536a070f1c9fcbe8e07534
Author: Kyoko Muto <kymuto@google.com>
Date: Mon Aug 13 07:50:50 2018

Support optional parameter, |slotting|, in element.attachShadow

As the first step of implementing "Imperative Shadow DOM Distribution API",
this CL makes element.attachShadow take an optional parameter, |slotting|,
which should be 'manual' or 'auto'.

This CL also introduces new Runtime flag, ManualSlotting, to guard the new
feature.

BUG=869308

Change-Id: I71b115886c07c0090bef16b66da48c88e723a622
Reviewed-on: https://chromium-review.googlesource.com/1166767
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582524}
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/core/dom/element.cc
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/core/dom/element.h
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/core/dom/shadow_root.cc
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/core/dom/shadow_root.h
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/core/dom/shadow_root_init.idl
[modify] https://crrev.com/41f06ea813b84aafeb536a070f1c9fcbe8e07534/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0fd72b878bb8e5fef918b9a836d760d6cecc4150

commit 0fd72b878bb8e5fef918b9a836d760d6cecc4150
Author: Kyoko Muto <kymuto@google.com>
Date: Wed Aug 15 06:27:39 2018

Add Assign function

As the second step of implementing "Imperative Shadow DOM Distribution API",
this CL make assign function to assign nodes to slot in manual slotting mode.

This CL also introduces HeapVector for each slot
to store the nodes that assign introduced.

BUG=869308

Change-Id: I9b02a70f601364123fb565221d3def760408bc2a
Reviewed-on: https://chromium-review.googlesource.com/1166925
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Kyoko Muto <kymuto@google.com>
Cr-Commit-Position: refs/heads/master@{#583178}
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/dom/shadow_root.cc
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/dom/shadow_root.h
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/html/html_slot_element.cc
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/html/html_slot_element.h
[modify] https://crrev.com/0fd72b878bb8e5fef918b9a836d760d6cecc4150/third_party/blink/renderer/core/html/html_slot_element.idl

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75f3875b7bb7b1e5223f68d775a9c2269b28add8

commit 75f3875b7bb7b1e5223f68d775a9c2269b28add8
Author: Kyoko Muto <kymuto@google.com>
Date: Wed Aug 15 10:59:26 2018

Add SlottingChildTable in ShadowTree for manual-slotting mode

This CL make Hashmap in ShadowTree to connect nodes to slot in manual slotting mode.

BUG=869308

Change-Id: I59e6bfcb1dc2a91cf3344623bbbf6f7c8545af0a
Reviewed-on: https://chromium-review.googlesource.com/1174133
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Kyoko Muto <kymuto@google.com>
Cr-Commit-Position: refs/heads/master@{#583212}
[modify] https://crrev.com/75f3875b7bb7b1e5223f68d775a9c2269b28add8/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/75f3875b7bb7b1e5223f68d775a9c2269b28add8/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/75f3875b7bb7b1e5223f68d775a9c2269b28add8/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/75f3875b7bb7b1e5223f68d775a9c2269b28add8/third_party/blink/renderer/core/html/html_slot_element.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2110cb5bbc023adf9bf293a93bafb5c37ec27032

commit 2110cb5bbc023adf9bf293a93bafb5c37ec27032
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Aug 17 09:36:55 2018

Redesign assign function in slotting-manual mode in shadow DOM

In this CL, the design for "Imperative Shadow DOM Distribution API" is changed
as nodes choose first slot in shadow tree in tree-order.

This CL also delete Hashmap in shadow tree because it is already unused.

BUG=869308

Change-Id: I1e95919b22e2aba26ef52a97059442770e9778ea
Reviewed-on: https://chromium-review.googlesource.com/1176890
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Kyoko Muto <kymuto@google.com>
Cr-Commit-Position: refs/heads/master@{#584001}
[modify] https://crrev.com/2110cb5bbc023adf9bf293a93bafb5c37ec27032/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/2110cb5bbc023adf9bf293a93bafb5c37ec27032/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/2110cb5bbc023adf9bf293a93bafb5c37ec27032/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/2110cb5bbc023adf9bf293a93bafb5c37ec27032/third_party/blink/renderer/core/html/html_slot_element.cc
[modify] https://crrev.com/2110cb5bbc023adf9bf293a93bafb5c37ec27032/third_party/blink/renderer/core/html/html_slot_element.h

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2bb33080f133dc1eecf472cadba2754afe97303f

commit 2bb33080f133dc1eecf472cadba2754afe97303f
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Aug 17 11:53:48 2018

Add a test for check in manual-slotting mode in shadow DOM

Nodes are assigned to a slot only when nodes are host's children
and the slot is in the shadow tree.

BUG:869308

Change-Id: I10b9b58725d7550a7174a3f4a8e769a9f0c39996
Reviewed-on: https://chromium-review.googlesource.com/1176896
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584026}
[modify] https://crrev.com/2bb33080f133dc1eecf472cadba2754afe97303f/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 23

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5c5308e8385330fcaf2a404beece87266cddb06

commit b5c5308e8385330fcaf2a404beece87266cddb06
Author: Kyoko Muto <kymuto@google.com>
Date: Thu Aug 23 07:06:36 2018

Add crash test in manual-slotting mode in shadow dom

For the help of 'supportting slot change event', this CL add crash test
in the case of removing a slot after another slot's removal.

Bug: 869308

Change-Id: I27ae390bc7ea051eae8b33fa68ad85319311113f
Reviewed-on: https://chromium-review.googlesource.com/1186203
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Kyoko Muto <kymuto@google.com>
Cr-Commit-Position: refs/heads/master@{#585417}
[add] https://crrev.com/b5c5308e8385330fcaf2a404beece87266cddb06/third_party/WebKit/LayoutTests/shadow-dom/crashes/imperative-api.html

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e449fc971e6962de6b5e2ccfc54a687183098199

commit e449fc971e6962de6b5e2ccfc54a687183098199
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Sep 07 02:06:12 2018

Compare <detail>/<summary> with imperative Shadow DOM Distribution API vs without

In this Cl, we reuse the "backend" of the imperative Shadow DOM Distribution API
for a new custom element, <my-detail>/<my-summary>.

In addition, we add reftest and perftests to compare the custom element,
<my-detail>/<my-summary> to built-in custom element, <detail>/<summary>.

perftest result: built-in element (ave)0.635 ms/new element (ave)1.030 ms

Bug: 869308
Change-Id: If3304c65382bc5ad57f4cfe59b1d1a623a22c471
Reviewed-on: https://chromium-review.googlesource.com/1192783
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589409}
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/custom-detail-summary.js
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/test-custom-detail-summary-expected.html
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/test-custom-detail-summary.html
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/blink/perf_tests/shadow_dom/custom-detail-summary.js
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/blink/perf_tests/shadow_dom/imperative-api-custom-detail-summary.html
[add] https://crrev.com/e449fc971e6962de6b5e2ccfc54a687183098199/third_party/blink/perf_tests/shadow_dom/imperative-api-detail-summary.html

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44c33d2a7308cf9437a8276797e1a9618a563c6a

commit 44c33d2a7308cf9437a8276797e1a9618a563c6a
Author: Kyoko Muto <kymuto@google.com>
Date: Mon Sep 10 12:52:11 2018

Add a performance test for manual slotting mode in shadow root

To check the performance in manual-slotting mode, this CL introduces micro
benchmark test.

Bug: 869308
Change-Id: I4232588640a38e90e10e30a8e48e6b2b7923bc80
Reviewed-on: https://chromium-review.googlesource.com/1184738
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589895}
[add] https://crrev.com/44c33d2a7308cf9437a8276797e1a9618a563c6a/third_party/blink/perf_tests/shadow_dom/imperative-api.html

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7ad39081f5640b164aab32551b2121adc620f7d6

commit 7ad39081f5640b164aab32551b2121adc620f7d6
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Sep 14 06:05:29 2018

Add some perftests for imperative shadow DOM distribution API

For the help of comparing two implementation design of "Imperative Shadow DOM
Distribution API", this CL introduces some performance tests.

Some of the tests are micro benchmark tests for each function, assign, assignSlot, assignElements,
insertBefore, and appendChild, that manual slotting mode uses.
In another tests, the performance of the new custom element, <my-detail>/<my-summary> are testes
when assigned nodes are over 100.
In addition, some algorithmγ€€for the new custom element are added to do the previous tests.

Bug: 869308
Change-Id: Ib2ad2f2ea304d0f7ddbb25b5b85e739af7ee465b
Reviewed-on: https://chromium-review.googlesource.com/1214964
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591293}
[modify] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/custom-detail-summary.js
[modify] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/custom-detail-summary.js
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/declarative-api.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-appendchild.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-assign.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-assigned-elements.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-assigned-slot.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-custom-detail-summary-large.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-detail-summary-large.html
[modify] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-detail-summary.html
[add] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api-insertbefore.html
[modify] https://crrev.com/7ad39081f5640b164aab32551b2121adc620f7d6/third_party/blink/perf_tests/shadow_dom/imperative-api.html

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8f4319405a56a25ff4bdc7c980b186d472a19805

commit 8f4319405a56a25ff4bdc7c980b186d472a19805
Author: Hayato Ito <hayato@chromium.org>
Date: Wed Sep 19 12:52:52 2018

Remove tests which no longer fail from TestExpectations

They no longer fail.

BUG= 392771 ,869308

Change-Id: I8c9dd48eb481ade4626327f737c8e577da577665
Reviewed-on: https://chromium-review.googlesource.com/1233105
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592373}
[modify] https://crrev.com/8f4319405a56a25ff4bdc7c980b186d472a19805/third_party/WebKit/LayoutTests/TestExpectations

πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/11d71790e40000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/151f9a47640000
Project Member

Comment 26 by bugdroid1@chromium.org, Sep 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2

commit c8c9ce1b40cce9193bfd620f7ad949f7551bfda2
Author: Kyoko Muto <kymuto@google.com>
Date: Thu Sep 20 09:13:13 2018

Reimplement imperative shadowdom API for better performance

In this CL, we add hashset that control all the assigned slots
in the shadowroot for each node.
Thanks to this hashset we can find the assigned slot for each
node in O(1) order, instead of searching all the slot for each
shadow root.
Other changes about slot change event will be added in separate
CL.

Bug: 869308

See design doc at https://docs.google.com/document/d/1n2iDNkI5bF4B5eefxa0SRSyS_RVchvTNSqezvA4PyF4/edit#heading=h.dkp0e2job8nf

Change-Id: I60284316902417efd692988b449fe660af8349c5
Reviewed-on: https://chromium-review.googlesource.com/1195298
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592731}
[modify] https://crrev.com/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2/third_party/blink/renderer/core/html/html_slot_element.cc
[modify] https://crrev.com/c8c9ce1b40cce9193bfd620f7ad949f7551bfda2/third_party/blink/renderer/core/html/html_slot_element.h

πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/1147137b640000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/15f37237640000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/128d8100e40000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/148d8100e40000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/15d1f698e40000
πŸ“ Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/11376f27640000
Project Member

Comment 33 by bugdroid1@chromium.org, Sep 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03c1a559253973aba98f15200f4ed08366c7c80d

commit 03c1a559253973aba98f15200f4ed08366c7c80d
Author: Kyoko Muto <kymuto@google.com>
Date: Thu Sep 20 13:59:59 2018

Reimplement imperative shadowdom API for supporting slot change event

In this CL, we reuse hashset that control all the assigned slots
in the shadowroot for each node, added previous CL.
Thanks to the hashset we can find the assigned slot for each
node in O(1) order, instead of searching all the slot for each
shadow root when we call slot change event.

We will improve this implementation in another CL.

Result of perftests:
https://pinpoint-dot-chromeperf.appspot.com/job/151f9a47640000

Previous implementation CL: crrev.com/c/1179555

See design doc at
https://docs.google.com/document/d/1n2iDNkI5bF4B5eefxa0SRSyS_RVchvTNSqezvA4PyF4/edit?usp=sharing

Bug: 869308
Change-Id: I96fc4c50d9083eca199c7849db0097e73436983d
Reviewed-on: https://chromium-review.googlesource.com/1201513
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592785}
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-slotchange.html
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/WebKit/LayoutTests/shadow-dom/imperative-api.html
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/blink/renderer/core/html/html_slot_element.cc
[modify] https://crrev.com/03c1a559253973aba98f15200f4ed08366c7c80d/third_party/blink/renderer/core/html/html_slot_element.h

Project Member

Comment 34 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5421adcf5cc5a4f0029ccb957fc36f506d6bd3e7

commit 5421adcf5cc5a4f0029ccb957fc36f506d6bd3e7
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Sep 21 08:58:03 2018

Add button to a custom element, <my-detail>/<my-summary>

In this Cl, we add a button to emulate other <summary><details> features in addition to
create my custom elements, <my-detail>/<my-summary>, with the imperative Shadow DOM
Distribution API.

Furthermore, the reftest is also changed because the appearance is changed due to these addition.

Previous implementation CL: crrev.com/c/1192783

Bug: 869308
Change-Id: I4131321879524a236aefd4e2f1c846dafc548aa0
Reviewed-on: https://chromium-review.googlesource.com/1220969
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593126}
[modify] https://crrev.com/5421adcf5cc5a4f0029ccb957fc36f506d6bd3e7/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/custom-detail-summary.js
[modify] https://crrev.com/5421adcf5cc5a4f0029ccb957fc36f506d6bd3e7/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/test-custom-detail-summary-expected.html
[modify] https://crrev.com/5421adcf5cc5a4f0029ccb957fc36f506d6bd3e7/third_party/WebKit/LayoutTests/shadow-dom/imperative-apis/test-custom-detail-summary.html

Project Member

Comment 35 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d23d2a343fddc2c6647edf5b57e306d04db2b38a

commit d23d2a343fddc2c6647edf5b57e306d04db2b38a
Author: Kyoko Muto <kymuto@google.com>
Date: Fri Sep 21 13:45:36 2018

Fix slotchange event issues for imperative shadowdom API

In this CL, We add the functions that support to call slotchange event when nodes are
assigned from assign function.

Previous implementation CL: crrev.com/c/1201513

Bug: 869308

Change-Id: I44cfc94c26141630aa82ea725566a8c7273eacf5
Reviewed-on: https://chromium-review.googlesource.com/1226477
Commit-Queue: Kyoko Muto <kymuto@google.com>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593166}
[add] https://crrev.com/d23d2a343fddc2c6647edf5b57e306d04db2b38a/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-notslotchange.html
[modify] https://crrev.com/d23d2a343fddc2c6647edf5b57e306d04db2b38a/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/d23d2a343fddc2c6647edf5b57e306d04db2b38a/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/d23d2a343fddc2c6647edf5b57e306d04db2b38a/third_party/blink/renderer/core/html/html_slot_element.cc

Owner: hayato@chromium.org
Project Member

Comment 37 by bugdroid1@chromium.org, Sep 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0a0eff74b4cc8684a29d4554bd7ac771fb0af42

commit c0a0eff74b4cc8684a29d4554bd7ac771fb0af42
Author: Hayato Ito <hayato@chromium.org>
Date: Fri Sep 28 08:59:38 2018

Organize html_slot_element.h

No behavior change. Re-oder declarations so that related functions are grouped together.

Bug: 869308
Change-Id: I63db39350291cef18deb96c6a4bb9d1a27eedfcd
Reviewed-on: https://chromium-review.googlesource.com/1250822
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595027}
[modify] https://crrev.com/c0a0eff74b4cc8684a29d4554bd7ac771fb0af42/third_party/blink/renderer/core/html/html_slot_element.h

Project Member

Comment 38 by bugdroid1@chromium.org, Oct 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7557571215dc2eeef269570e8e685a9aec71fa8e

commit 7557571215dc2eeef269570e8e685a9aec71fa8e
Author: Hayato Ito <hayato@chromium.org>
Date: Wed Oct 10 04:25:48 2018

Drop slotchange event support from imperative Shadow DOM distribution APIs

Given that it is turned out that the semantics can be too complex if we would support slotchange
event in the standard for imperative Shadow DOM, let's drop the support tentatively until we can
get more insights. That would reduce the maintenance cost.

If we find a good way to define the semantics in the standard and get web developers' feedback for
needs, we can recover the support anytime.

This CL also simplifies the implementation of imperative shadow dom distribution APIs,
as necessary.

BUG=869308

Change-Id: I97ae1bc5f945f3809c2e419539ff14c6c6f515a9
Reviewed-on: https://chromium-review.googlesource.com/c/1264356
Commit-Queue: Hayato Ito <hayato@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598210}
[delete] https://crrev.com/ff4a8c01cf386f5cc81de0c1c2e6e1bd36025454/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-notslotchange.html
[delete] https://crrev.com/ff4a8c01cf386f5cc81de0c1c2e6e1bd36025454/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-notslotchangefornotassignfunction.html
[delete] https://crrev.com/ff4a8c01cf386f5cc81de0c1c2e6e1bd36025454/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-slotchange.html
[modify] https://crrev.com/7557571215dc2eeef269570e8e685a9aec71fa8e/third_party/blink/renderer/core/dom/slot_assignment.cc
[modify] https://crrev.com/7557571215dc2eeef269570e8e685a9aec71fa8e/third_party/blink/renderer/core/dom/slot_assignment.h
[modify] https://crrev.com/7557571215dc2eeef269570e8e685a9aec71fa8e/third_party/blink/renderer/core/html/html_slot_element.cc
[modify] https://crrev.com/7557571215dc2eeef269570e8e685a9aec71fa8e/third_party/blink/renderer/core/html/html_slot_element.h

Sign in to add a comment