New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Partial ShadowDOM support #22743
Merged
+2,080
−701
Merged
Partial ShadowDOM support #22743
Changes from all commits
Commits
Show all changes
83 commits
Select commit
Hold shift + click to select a range
cbcf21c
DocumentOrShadowRoot mixin
ferjm 18ae0fc
ShadowRoot interface
ferjm 4304ee2
Partial ShadowRoot implementation of DocumentOrShadowRoot
ferjm 569b4fc
Element attachShadow implementation
ferjm 9022bd3
IS_IN_SHADOW_TREE flag
ferjm 091fcbe
Node shadow root owner
ferjm ffdc9d2
Expose Element.AttachShadow under dom.shadowdom.enabled pref
ferjm f3e7073
Test DOM isolation for shadow trees
ferjm 4897584
Unify DocumentOrShadowRoot implementation
ferjm 640fc04
Implement shadow-including root, set node as in doc when connected. M…
ferjm 441357b
Add is_connected flag to node and use it to replace most uses of is_i…
ferjm ea69bbc
Node retargeting algorithm
ferjm 4740ce5
Make note_dirty_descendants jump around shadow roots
ferjm df81deb
Set connected flag not only on elements
ferjm 1b03635
Bind/unbind shadow host children to/from tree
ferjm c48ad0f
Introduce concept of composed parent node
ferjm d6ddb08
Do not care about shadow roots when getting root element
ferjm 6a85409
Throw NotSupported when trying to deep clone a shadow root
ferjm f6ba165
Throw when trying to import or adopt a shadow root
ferjm 2e5c058
Implement concept of shadow including tree order
ferjm be06f1e
Always get browsing context from document
ferjm 7c9e8aa
First bits of shadow dom layout
ferjm d2e1a3a
Adapt traversals for shadow dom
ferjm 0d6bd24
Move stylesheets related code to DocumentOrShadowRoot
ferjm 3bb50cc
ShadowRoot stylesheet list
ferjm 23b92d5
Remove stylesheets ownership from DocumentOrShadowRoot
ferjm e9f0e76
Implement TShadowRoot::style_data
ferjm cd07574
Expose a way to flush shadow root stylesheets from layout
ferjm 18c1b8f
Register/unregister shadow roots in documents when they are connected
ferjm 519cc2c
Invalidate and flush shadow tree stylesheets where needed
ferjm 47872cd
Do not add shadow tree styles to stylist
ferjm 8641866
Fix Document.Element(s)FromPoint
ferjm 07e2f41
Retarget result of shadowRoot.element(s)FromPoint
ferjm efce282
Return composed parent node. Fixes style sharing panics
ferjm f097233
Update test expectations and whitelist ShadowRoot interface
ferjm 067acdf
Update size of tests with shadow root size
ferjm 2515966
Fix formatting issues
ferjm 0d2f65b
Shadow DOM layout and style reftest
ferjm e66438d
Fix the way the IS_CONNECTED flag is set
ferjm d7b6a6f
Do not set dirty out-of-doc nodes
ferjm 39c96ac
Remove IS_CONNECTED flag when node is removed from the doc
ferjm 57fa6b1
Update expectations for cssom tests
ferjm 00178af
Derive PartialEq for ServoShadowRoot
ferjm a841c71
Minor layout thread cleanups:
ferjm 2674a3e
Flush shadow roots stylesheets only if they changed
ferjm 3ccd622
Introduce ShadowIncluding enum for tree traversals
ferjm 3dd3815
Make StyleSheetListOwner implement JSTraceable
ferjm d77b9c6
Add invalidate_stylesheets to StyleSheetsListOwner trait
ferjm 67c90a0
Relax attachShadow restrictions for user agent widgets
ferjm 3e63655
Make ServoShadowRoot.flush_stylesheets unsafe
ferjm 3e53962
Do not send RemoveStyleSheet message for shadow roots
ferjm 8b353ee
Make StylesheetSet an enum instead of a trait object
ferjm 2350f0e
Make StyleSheetListOwner an enum instead of a trait object
ferjm 5426996
Derive MallocSizeOf for QuirksMode
ferjm ea1fe15
Do not store composed parent node
ferjm ccf8a43
Document owner_shadow_root
ferjm 740aae0
Register named elements in either the document or shadow tree
ferjm 813b242
Introduce BindContext with in_doc and connected flags
ferjm 6af4729
Introduce NodeRareData and ElementRareData
ferjm a9019da
Move mutation observers list to NodeRareData
ferjm c75da61
Add custom elements related stuff into ElementRareData
ferjm 1427c43
Update size of tests after *RareData changes
ferjm b8925a0
Set IS_CONNECTED flag on host and children instead of on containing s…
ferjm 0313e38
Tweak list of shadow roots attached to doc
ferjm bdd2f32
Minor tweaks: rename composed_parent_node_ref, remove or update outda…
ferjm 5be6779
Revert style/dom_apis changes
ferjm 5a165c6
Move is_connected function from style to layout, where it is used
ferjm efbfc0f
Make devtools find node by unique id function include shadow trees
ferjm 0ca4792
Revert changes in sheet_set_methods macro
ferjm 8eba587
Merge Node::shadow_including_inclusive_ancestors into inclusive_ances…
ferjm 890297e
Optimize Node::GetRootNode
ferjm f606963
Update tests manifest
ferjm 6bf1ca2
Make Node and Element rare_data an Option
ferjm 59c634b
Set dirty descendants if node is connected
ferjm ccc4f7c
Add dom.shadowdom.enabled to preferences list
ferjm 3f312f7
Set dirty descendants flag only for elements
ferjm 9df1c2f
Revert unnecessary format changes
ferjm e4f34fd
Rename StylesheetSet to StylesheetSetRef
ferjm 9d52fef
Rename shadow_root_from_node to containing_shadow_root
ferjm d0b2e82
Move StylesheetSetRef to script
ferjm 9b2eb77
Do not lazy initialize RareData on its getters
ferjm 68bee1c
Final nits; fix custom elements rare data usage; s/owner_s_r/containi…
ferjm 37e88e7
Set self as containing_shadow_root for shadow roots
ferjm File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.
Oops, something went wrong.
ProTip!
Use n and p to navigate between commits in a pull request.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
This is ok for now. It'd be good to introduce the concept of flat tree in a more formal way, but...