Commit b3fb62ea authored by Rune Lillesveen's avatar Rune Lillesveen Committed by Commit Bot

Invalidate :fullscreen using invalidation sets.

Invalidation was done for :-webkit-full-screen, but not the standardized
:fullscreen pseudo class.

Issue created for making :-webkit-full-screen an alias: 1085151

Bug: 1082663
Change-Id: I17ce7da26158fe6ea37c02241938861658960f84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2209217Reviewed-by: default avatarXiaocheng Hu <xiaochengh@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#770799}
parent 55d6fd8c
......@@ -74,6 +74,7 @@ void FullscreenElementChanged(Document& document,
DCHECK_NE(old_element, Fullscreen::FullscreenElementFrom(document));
old_element->PseudoStateChanged(CSSSelector::kPseudoFullScreen);
old_element->PseudoStateChanged(CSSSelector::kPseudoFullscreen);
old_element->SetContainsFullScreenElement(false);
old_element->SetContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(
......@@ -84,6 +85,7 @@ void FullscreenElementChanged(Document& document,
DCHECK_EQ(new_element, Fullscreen::FullscreenElementFrom(document));
new_element->PseudoStateChanged(CSSSelector::kPseudoFullScreen);
new_element->PseudoStateChanged(CSSSelector::kPseudoFullscreen);
// OOPIF: For RequestType::PrefixedForCrossProcessDescendant, |new_element|
// is the iframe element for the out-of-process frame that contains the
......
<!DOCTYPE html>
<title>Invalidate :fullscreen based style</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<style>
#pass {
color: red;
}
:root:fullscreen #pass {
color: green;
}
</style>
<div id="pass">Should be green</div>
<script>
async_test(t => {
document.onfullscreenchange = t.step_func_done(() => {
assert_equals(document.fullscreenElement, document.documentElement);
assert_equals(getComputedStyle(pass).color, "rgb(0, 128, 0)", "Green when :root is fullscreened.");
});
document.documentElement.addEventListener('click', t.step_func(() => {
document.documentElement.requestFullscreen();
}), {once: true});
assert_equals(getComputedStyle(pass).color, "rgb(255, 0, 0)", "Initially red.");
test_driver.click(document.documentElement);
});
</script>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment