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>