Tracking bug for Imperative Shadow DOM Distribution API. - chromestatus: https://www.chromestatus.com/features/5711021289242624 - Standard Issue: https://github.com/whatwg/html/issues/3534 - straw-man proposal: https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Imperative-Shadow-DOM-Distribution-API.md
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
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
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
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
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
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
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e commit 01261f59a28418c4d63c2afd4de7b2e02e8e8a1e Author: Kyoko Muto <kymuto@google.com> Date: Thu Aug 23 01:57:18 2018 Support slot change event in slotting-manual mode in shadow tree This CL makes slotting-manual mode support slot change event which is already supported in auto mode. BUG:869308 Change-Id: I106d1037036e5e34d552cf7ce17eacd8f453fc9c Reviewed-on: https://chromium-review.googlesource.com/1179555 Reviewed-by: Hayato Ito <hayato@chromium.org> Commit-Queue: Kyoko Muto <kymuto@google.com> Cr-Commit-Position: refs/heads/master@{#585362} [add] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/WebKit/LayoutTests/shadow-dom/imperative-api-slotchange.html [modify] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/WebKit/LayoutTests/shadow-dom/resources/shadow-dom.js [modify] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/blink/renderer/core/dom/slot_assignment.cc [modify] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/blink/renderer/core/dom/slot_assignment.h [modify] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/blink/renderer/core/html/html_slot_element.cc [modify] https://crrev.com/01261f59a28418c4d63c2afd4de7b2e02e8e8a1e/third_party/blink/renderer/core/html/html_slot_element.h
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
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
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
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
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/151f9a47640000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/11d71790e40000
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
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/15f37237640000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/148d8100e40000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/15d1f698e40000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/11376f27640000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/128d8100e40000
π Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/1147137b640000
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
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
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
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
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
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
Comment 1 by hayato@chromium.org
, Jul 31