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
Set self as containing_shadow_root for shadow roots
37e88e7
Select commit
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
Merged
Partial ShadowDOM support #22743
Set self as containing_shadow_root for shadow roots
Jan 18, 2019
Jan 21, 2019
Jan 21, 2019
Jan 22, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 24, 2019
Jan 24, 2019
Jan 25, 2019
Jan 27, 2019
Jan 28, 2019
Jan 28, 2019
Jan 28, 2019
Jan 28, 2019
Jan 29, 2019
Jan 29, 2019
Jan 29, 2019
Jan 29, 2019
Jan 30, 2019
Jan 30, 2019
Jan 31, 2019
Feb 1, 2019
Feb 4, 2019
Feb 5, 2019
Feb 8, 2019
Feb 11, 2019
Feb 12, 2019
Feb 12, 2019
Feb 13, 2019
Feb 13, 2019
Feb 14, 2019
Feb 14, 2019
Feb 18, 2019
Feb 18, 2019
Feb 19, 2019
Feb 19, 2019
Feb 19, 2019
Feb 19, 2019
Feb 19, 2019
Feb 20, 2019
Feb 20, 2019
Feb 20, 2019
Feb 20, 2019
Feb 21, 2019
Feb 21, 2019
Feb 21, 2019
Feb 21, 2019
Feb 21, 2019
Feb 28, 2019
Feb 28, 2019
Mar 1, 2019
Mar 1, 2019
Mar 1, 2019
Mar 4, 2019
Mar 4, 2019
Mar 5, 2019
Mar 5, 2019
Mar 6, 2019
Mar 6, 2019
Mar 6, 2019
Mar 6, 2019
Mar 6, 2019
Mar 6, 2019
Mar 7, 2019
Mar 7, 2019
Mar 7, 2019
Mar 7, 2019
Mar 7, 2019
Mar 7, 2019
Mar 8, 2019
Mar 8, 2019
Mar 8, 2019
Mar 23, 2019
Mar 25, 2019
Mar 26, 2019
Apr 22, 2019
Apr 22, 2019
Apr 22, 2019
Apr 22, 2019
Apr 23, 2019
Apr 26, 2019
Apr 29, 2019
37e88e7
Select commit
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
Travis CI / Travis CI - Pull Request
succeeded
Apr 29, 2019
in
41m 27s
Build Passed
The build passed, just like the previous build.
Details
This is a pull request build.
It is running a build against the merge commit, after merging #22743 [WIP] Partial ShadowDOM support: ShadowRoot.
Any changes that have been made to the master branch before the build ran are also included.
Jobs and Stages
This build has two jobs, running in parallel.
| Job | ENV | OS | State |
|---|---|---|---|
| Linux | passed | ||
| \["CC=gcc-6 CXX=g++-6 CCACHE=\/usr\/bin\/ccache RUSTFLAGS=-Dwarnings CARGO\_INCREMENTAL=0"\] | Linux | passed |
Build Configuration
| Build Option | Setting |
|---|---|
| Language | Python |
| Operating System | Linux (Trusty) |
| Python Version | 2.7 |
Build Configuration
{
"dist": "trusty",
"group": "stable",
"matrix": {
"include": [
{
"dist": "trusty",
"sudo": false,
"cache": false,
"script": [
"./mach test-tidy --no-progress --all",
"./mach test-tidy --no-progress --self-test",
"python ./etc/memory_reports_over_time.py --test",
"bash etc/ci/check_no_panic.sh"
],
"before_install": [
"curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y",
"pip install virtualenv",
"source ~/.profile"
]
},
{
"env": "CC=gcc-6 CXX=g++-6 CCACHE=/usr/bin/ccache RUSTFLAGS=-Dwarnings CARGO_INCREMENTAL=0",
"dist": "xenial",
"sudo": 9000,
"cache": {
"directories": [
".servo",
"$HOME/.cargo",
"$HOME/.rustup",
"$HOME/.ccache"
]
},
"addons": {
"apt": {
"sources": [
"ubuntu-toolchain-r-test"
],
"packages": [
"autoconf2.13",
"cmake",
"gcc-6",
"g++-6",
"gperf",
"libosmesa6-dev",
"libglu1-mesa-dev",
"libgles2-mesa-dev",
"python-virtualenv",
"xorg-dev",
"ccache",
"libdbus-glib-1-dev",
"libedit-dev",
"libglib2.0-dev"
]
}
},
"script": [
"./mach build -d --verbose -p servo",
"./mach test-unit",
"./mach clean",
"bash etc/ci/lockfile_changed.sh"
],
"before_cache": [
"./mach clean-nightlies --keep 2 --force",
"./mach clean-cargo-cache --keep 2 --force",
"rm -rf $HOME/.cargo/registry",
"rm -rf $HOME/.servo/target"
],
"before_install": [
"sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y",
"sudo add-apt-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main' -y",
"sudo apt-get update -q",
"sudo apt-get install clang-3.9 llvm-3.9-dev llvm-3.9-runtime libunwind8-dev -y",
"pip install virtualenv",
"curl -L http://servo-deps.s3.amazonaws.com/gstreamer/gstreamer-1.14-x86_64-linux-gnu.20190213.tar.gz | tar xz",
"sed -i \"s;prefix=/opt/gst;prefix=$PWD/gst;g\" $PWD/gst/lib/pkgconfig/*.pc",
"export PKG_CONFIG_PATH=$PWD/gst/lib/pkgconfig",
"export GST_PLUGIN_SYSTEM_PATH=$PWD/gst/lib/gstreamer-1.0",
"export GST_PLUGIN_SCANNER=$PWD/gst/libexec/gstreamer-1.0/gst-plugin-scanner",
"export PATH=$PATH:$PWD/gst/bin",
"export LD_LIBRARY_PATH=$PWD/gst/lib:$LD_LIBRARY_PATH",
"export LLVM_CONFIG=llvm-config-3.9",
"curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y",
"source ~/.profile"
]
}
],
"fast_finish": true
},
"python": 2.7,
".result": "configured",
"branches": {
"only": [
"master"
]
},
"language": "python"
}