Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0e684f1df5631ee55541f823ebae9be996cd02aa
https://github.com/WebKit/WebKit/commit/0e684f1df5631ee55541f823ebae9be996cd02aa
Author: Jer Noble <[email protected]>
Date: 2026-10-07 (Wed, 07 Oct 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-cover-expected.txt
A LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-cover.html
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-expected.txt
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-iframe-expected.txt
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-iframe.html
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-late-meta-expected.txt
A
LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in-late-meta.html
A LayoutTests/fast/quirks/ios/element-fullscreen-safe-area-opt-in.html
A LayoutTests/fast/quirks/ios/resources/safe-area-opt-in-frame-cover.html
A LayoutTests/fast/quirks/ios/resources/safe-area-opt-in-frame-no-cover.html
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/ios/fast/quirks/active-quirks-by-domain-expected.txt
M LayoutTests/platform/ipad/TestExpectations
M Source/WebCore/bindings/js/JSDOMBindingFacade.cpp
M Source/WebCore/bindings/js/JSDOMBindingFacade.h
M Source/WebCore/bindings/js/ScriptController.cpp
M Source/WebCore/bindings/js/ScriptController.h
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/IDLAttributes.json
M Source/WebCore/dom/Document+Fullscreen.idl
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/dom/DocumentOrShadowRoot+Fullscreen.idl
M Source/WebCore/dom/Element+Fullscreen.idl
M Source/WebCore/page/QuirkBehaviors.yaml
M Source/WebCore/page/QuirkTable.cpp
M Source/WebCore/page/Quirks.cpp
Log Message:
-----------
[iOS] Replace existing fullscreen quirks with viewport-fit:cover driven quirk
rdar://188294786
https://bugs.webkit.org/show_bug.cgi?id=325161
Reviewed by Eric Carlson.
A number of quirks disable the Fullscreen API for individual websites due
primarily to
flawed user experiences on those sites in fullscreen. Particularly, sites do
not adopt
viewport-fit:cover to allow video content to be put outside the "safe-area" of
the
viewport, which on small screens drastically reduces the layout size of video
contents
as compared to native fullscreeen modes.
Replace those existing site quirks with one that directly targets an underlying
cause
of those flawed experiences. Fullscreen API will be disabled for page or
embedded content
that does not adopt viewport-fit:cover.
Because this quirk is contingent on the parsed content of the page rather than
solely its
secure origin, this requires changes to the DOM bindings to allow prototype
methods to be
added and removed depending on the parsed content in the page.
Tests: fast/quirks/element-fullscreen-safe-area-opt-in-cover.html
fast/quirks/element-fullscreen-safe-area-opt-in-iframe.html
fast/quirks/element-fullscreen-safe-area-opt-in-late-meta.html
fast/quirks/element-fullscreen-safe-area-opt-in.html
* LayoutTests/fast/quirks/element-fullscreen-safe-area-opt-in-cover.html: Added.
* LayoutTests/fast/quirks/element-fullscreen-safe-area-opt-in-iframe.html:
Added.
* LayoutTests/fast/quirks/element-fullscreen-safe-area-opt-in-late-meta.html:
Added.
* LayoutTests/fast/quirks/element-fullscreen-safe-area-opt-in.html: Added.
* LayoutTests/fast/quirks/resources/safe-area-opt-in-frame-cover.html: Added.
* LayoutTests/fast/quirks/resources/safe-area-opt-in-frame-no-cover.html: Added.
* Source/WebCore/bindings/js/JSDOMBindingFacade.cpp:
(WebCore::removeRuntimeEnabledProperty):
(WebCore::addRuntimeEnabledProperty):
* Source/WebCore/bindings/js/JSDOMBindingFacade.h:
* Source/WebCore/bindings/js/ScriptController.cpp:
(WebCore::ScriptController::reevaluateQuirkDependentProperties):
* Source/WebCore/bindings/js/ScriptController.h:
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GetQuirkReevaluatableProperties):
(GenerateHeader):
(GenerateImplementation):
* Source/WebCore/bindings/scripts/IDLAttributes.json:
* Source/WebCore/dom/Document+Fullscreen.idl:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::processViewport):
(WebCore::Document::updateSafeAreaInsetOptIn):
(WebCore::Document::finishedParsing):
* Source/WebCore/dom/Document.h:
(WebCore::Document::safeAreaInsetOptIn const):
* Source/WebCore/dom/DocumentOrShadowRoot+Fullscreen.idl:
* Source/WebCore/dom/Element+Fullscreen.idl:
* Source/WebCore/page/QuirkTable.cpp:
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::shouldDisableElementFullscreenQuirk const):
(WebCore::Quirks::determineRelevantQuirks):
Canonical link: https://commits.webkit.org/322993@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications