Bug 1404789 - Stop reconstructing frames for the whole shadow root each time content is inserted in a shadow tree

* Cleanup a bit the ShadowRoot code
* Privatize ShadowRoot methods
* When the shadow tree distribution changes, post a restyle + reframe
* Simplify ShadowRoot::IsPooledNode
* Be a bit better at detecting distribution changes

Tag #1375
This commit is contained in:
Matt A. Tobin 2020-04-17 06:41:00 -04:00 • committed by Roy Tam
commit 1846dde168
7 changed files with 243 additions and 137 deletions

View file

@ -0,0 +1,16 @@
<!doctype html>
<script>
// Test for content redistribution outside of the document.
// Passes if it doesn't assert.
let host = document.createElement('div');
host.innerHTML = "<div id='foo'></div>";
let shadowRoot = host.createShadowRoot();
shadowRoot.innerHTML = "<content select='#foo'></content>";
host.firstElementChild.removeAttribute('id');
// Move to the document, do the same.
document.documentElement.appendChild(host);
host.firstElementChild.setAttribute('id', 'foo');
</script>

View file

@ -0,0 +1,2 @@
<!doctype html>
<iframe style="display: none" src="1404789-1.html"></iframe>

View file

@ -483,3 +483,5 @@ load 1308793.svg
load 1308848-1.html
load 1308848-2.html
asserts(0-1) load 1343606.html # bug 1343948
load 1404789-1.html
load 1404789-2.html