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

Reply via email to