Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9696329f7af6ec156b6f45ae41d811da8fa0eeee
      
https://github.com/WebKit/WebKit/commit/9696329f7af6ec156b6f45ae41d811da8fa0eeee
  Author: Tim Nguyen <[email protected]>
  Date:   2022-12-09 (Fri, 09 Dec 2022)

  Changed paths:
    R 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/selectors/modal-pseudo-class-expected.txt
    R 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-shadow-dom-expected.txt
    R 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt
    M Source/WebCore/dom/DocumentFullscreen.cpp
    M Source/WebCore/dom/DocumentFullscreen.h
    M Source/WebCore/dom/FullscreenManager.cpp
    M Source/WebCore/dom/FullscreenManager.h
    M 
Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp

  Log Message:
  -----------
  Properly resolve fullscreen API promises
https://bugs.webkit.org/show_bug.cgi?id=248879
rdar://103074395

Reviewed by Chris Dumez.

- exitFullscreen() promises should resolve in 
FullscreenManager::finishExitFullscreen().
- requestFullscreen() promises should resolve in 
FullscreenManager::willEnterFullscreen().

Store a pendingPromise field for async operations, and ensure there's only one 
promise at once, by rejecting the previous operation if it is still pending
(meaning the previous operation failed, since it is overriden by the new one).

We resolve this pending promise at the same time as emitting the fullscreen 
change/error events.

Removed mac-wk1 baselines that were due to this bug.

* 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/selectors/modal-pseudo-class-expected.txt:
 Removed.
* 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-shadow-dom-expected.txt:
 Removed.
* 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element-expected.txt:
 Removed.
* Source/WebCore/dom/DocumentFullscreen.cpp:
(WebCore::DocumentFullscreen::exitFullscreen):
(WebCore::DocumentFullscreen::webkitExitFullscreen):
* Source/WebCore/dom/DocumentFullscreen.h:
(WebCore::DocumentFullscreen::webkitExitFullscreen): Deleted.
* Source/WebCore/dom/FullscreenManager.cpp:
(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::exitFullscreen):
(WebCore::FullscreenManager::willEnterFullscreen):
(WebCore::FullscreenManager::didExitFullscreen): Since 257456@main, 
cancelFullscreen now shares codepath with exitFullscreen, making the 
exitingDocument variable not needed.
(WebCore::FullscreenManager::notifyAboutFullscreenChangeOrError):
(WebCore::FullscreenManager::exitRemovedFullscreenElementIfNeeded):
(WebCore::FullscreenManager::clear):
(WebCore::FullscreenManager::dispatchFullscreenChangeEvents): Deleted.
* Source/WebCore/dom/FullscreenManager.h:
* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:
(webkit_dom_document_webkit_exit_fullscreen):

Canonical link: https://commits.webkit.org/257668@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to