Skip to content

Commit

Permalink
Bug 1665215 [wpt PR 25554] - Deny ElementInternals.shadowRoot for pre…
Browse files Browse the repository at this point in the history
…-created shadow roots, a=testonly

Automatic update from web-platform-tests
Deny ElementInternals.shadowRoot for pre-created shadow roots

Per the spec issue [1], this change disallows the use of
ElementInternals.shadowRoot for shadow roots created prior
to the custom element constructor being run. This protects
potentially-closed shadow roots, created outside of the
custom element, from being revealed to the custom element
itself. (Use case unclear, but this was the request.)

[1] WICG/webcomponents#871

Bug: 1042130
Change-Id: I25192256e8b1334d09ea587f29d64f35d4f5f949
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2412470
Commit-Queue: Kouhei Ueno <kouheichromium.org>
Auto-Submit: Mason Freed <masonfreedchromium.org>
Reviewed-by: Kouhei Ueno <kouheichromium.org>
Cr-Commit-Position: refs/heads/master{#807311}

--

wpt-commits: 8e3392df536283e843589c176ffbc7e00e94e64e
wpt-pr: 25554

UltraBlame original commit: 11691695d1b65041eea7dd2470183b95f4335029
  • Loading branch information
marco-c committed Sep 28, 2020
1 parent 6b60b13 commit 6680fc9
Showing 1 changed file with 194 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,200 @@
'
)
;
test
(
(
)
=
>
{
let
constructed
=
false
;
const
element
=
document
.
createElement
(
'
x
-
6
'
)
;
const
sr
=
element
.
attachShadow
(
{
mode
:
'
closed
'
}
)
;
assert_true
(
sr
instanceof
ShadowRoot
)
;
customElements
.
define
(
'
x
-
6
'
class
extends
HTMLElement
{
constructor
(
)
{
super
(
)
;
assert_throws_dom
(
'
NotSupportedError
'
(
)
=
>
this
.
attachShadow
(
{
mode
:
'
open
'
}
)
'
attachShadow
already
called
'
)
;
const
elementInternals
=
this
.
attachInternals
(
)
;
assert_equals
(
elementInternals
.
shadowRoot
null
'
ElementInternals
.
shadowRoot
should
not
be
available
for
pre
-
attached
shadow
'
)
;
constructed
=
true
;
}
}
)
;
assert_false
(
constructed
)
;
customElements
.
upgrade
(
element
)
;
assert_true
(
constructed
'
Failed
to
construct
-
test
failed
'
)
;
assert_equals
(
element
.
shadowRoot
null
'
shadow
root
is
closed
'
)
;
}
'
ElementInternals
.
shadowRoot
doesn
\
'
t
reveal
pre
-
attached
closed
shadowRoot
'
)
;
<
/
script
Expand Down

0 comments on commit 6680fc9

Please sign in to comment.