[webkit-changes] [WebKit/WebKit] d7bab9: Add temporary backdrop workaround for fullscreen e...
Tim Nguyen
noreply at github.com
Wed Nov 2 06:34:42 PDT 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d7bab9d6f7c45b99da17d78a464eac1fedff0ead
https://github.com/WebKit/WebKit/commit/d7bab9d6f7c45b99da17d78a464eac1fedff0ead
Author: Tim Nguyen <ntim at apple.com>
Date: 2022-11-02 (Wed, 02 Nov 2022)
Changed paths:
M Source/WebCore/css/CSSSelector.cpp
M Source/WebCore/css/CSSSelector.h
M Source/WebCore/css/SelectorChecker.cpp
M Source/WebCore/css/SelectorCheckerTestFunctions.h
M Source/WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in
M Source/WebCore/css/fullscreen.css
M Source/WebCore/cssjit/SelectorCompiler.cpp
M Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp
Log Message:
-----------
Add temporary backdrop workaround for fullscreen elements
https://bugs.webkit.org/show_bug.cgi?id=247349
rdar://101600873
Reviewed by Tim Horton.
Removing RenderFullScreen introduced a regression, where content appears behind the fullscreen element.
RenderFullScreen used to solve that by wrapping the fullscreen element renderer with a renderer that has a black background.
The standard way of solving this issue is to add a ::backdrop that has such a background. This will be done once fullscreen
switches to use the top layer.
For now, add a pseudo-class that targets the parent of the fullscreen element, and use ::before to emulate the ::backdrop.
We specifically pick the parent, because it is guaranteed to be able to contain children (and ::before), and to avoid conflict
with any potential ::before on the fullscreen element itself.
* Source/WebCore/css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
* Source/WebCore/css/CSSSelector.h:
* Source/WebCore/css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
* Source/WebCore/css/SelectorCheckerTestFunctions.h:
(WebCore::matchesFullScreenParentPseudoClass):
* Source/WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in:
* Source/WebCore/css/fullscreen.css:
(:-webkit-full-screen-parent::before):
* Source/WebCore/cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):
* Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
Canonical link: https://commits.webkit.org/256226@main
More information about the webkit-changes
mailing list