Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c9b695e3635533e21568064262dc1bca261c51ae
https://github.com/WebKit/WebKit/commit/c9b695e3635533e21568064262dc1bca261c51ae
Author: Chris Dumez <[email protected]>
Date: 2022-10-04 (Tue, 04 Oct 2022)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/PAL/pal/ios/UIKitSoftLink.h
M Source/WebCore/PAL/pal/ios/UIKitSoftLink.mm
M Source/WebCore/Sources.txt
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/Exception.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/page/PageConfiguration.cpp
M Source/WebCore/page/PageConfiguration.h
M Source/WebCore/page/ScreenOrientation.cpp
M Source/WebCore/page/ScreenOrientation.h
M Source/WebCore/page/ScreenOrientationLockType.h
M Source/WebCore/page/ScreenOrientationType.h
A Source/WebCore/platform/ScreenOrientationManager.h
A Source/WebCore/platform/ScreenOrientationProvider.cpp
A Source/WebCore/platform/ScreenOrientationProvider.h
A Source/WebCore/platform/ios/ScreenOrientationProviderIOS.mm
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
M Source/WebKit/Sources.txt
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/APIUIClient.h
M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
M
Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm
M Source/WebKit/UIProcess/Cocoa/UIDelegate.h
M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
A Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp
A Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.h
A Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.messages.in
A Source/WebKit/UIProcess/ios/WebScreenOrientationManagerProxyIOS.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
A Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.cpp
A Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.h
A
Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.messages.in
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
Log Message:
-----------
[iOS][WK2] Add initial implementation for the Screen Orientation API
https://bugs.webkit.org/show_bug.cgi?id=245999
Reviewed by Wenson Hsieh.
Add initial implementation for the Screen Orientation API on WebKit2 / iOS:
- https://w3c.github.io/screen-orientation/#dom-screenorientation-type
-
https://w3c.github.io/screen-orientation/#angle-attribute-get-orientation-angle
- https://w3c.github.io/screen-orientation/#Screen-orientation-change
I tested manually on device that the API is working as intended.
The feature is still behind an experimental feature flag, off by defaut.
Things that are missing and will be implemented in a follow-up:
- Test harness changes for automated testing
- Pre-conditions for locking / unlocking (e.g. user gesture, full screen)
* Source/WebCore/Headers.cmake:
* Source/WebCore/PAL/pal/ios/UIKitSoftLink.h:
* Source/WebCore/PAL/pal/ios/UIKitSoftLink.mm:
* Source/WebCore/Sources.txt:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/Exception.h:
(WebCore::Exception::encode const):
(WebCore::Exception::decode):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::screenOrientationManager const):
* Source/WebCore/page/Page.h:
* Source/WebCore/page/PageConfiguration.cpp:
* Source/WebCore/page/PageConfiguration.h:
* Source/WebCore/page/ScreenOrientation.cpp:
(WebCore::ScreenOrientation::ScreenOrientation):
(WebCore::ScreenOrientation::~ScreenOrientation):
(WebCore::ScreenOrientation::manager const):
(WebCore::ScreenOrientation::lock):
(WebCore::ScreenOrientation::unlock):
(WebCore::ScreenOrientation::type const):
(WebCore::ScreenOrientation::angle const):
(WebCore::ScreenOrientation::visibilityStateChanged):
(WebCore::ScreenOrientation::shouldListenForChangeNotification const):
(WebCore::ScreenOrientation::screenOrientationDidChange):
(WebCore::ScreenOrientation::suspend):
(WebCore::ScreenOrientation::resume):
(WebCore::ScreenOrientation::stop):
* Source/WebCore/page/ScreenOrientation.h:
* Source/WebCore/page/ScreenOrientationLockType.h:
* Source/WebCore/page/ScreenOrientationType.h:
* Source/WebCore/platform/ScreenOrientationManager.h: Copied from
Source/WebCore/page/ScreenOrientationLockType.h.
(WebCore::ScreenOrientationManager::~ScreenOrientationManager):
(WebCore::ScreenOrientationManager::Observer::~Observer):
* Source/WebCore/platform/ScreenOrientationProvider.cpp: Added.
(WebCore::globalProvider):
(WebCore::ScreenOrientationProvider::getOrCreate):
(WebCore::ScreenOrientationProvider::~ScreenOrientationProvider):
(WebCore::ScreenOrientationProvider::addObserver):
(WebCore::ScreenOrientationProvider::removeObserver):
(WebCore::ScreenOrientationProvider::screenOrientationDidChange):
(WebCore::ScreenOrientationProvider::currentOrientation):
(WebCore::ScreenOrientationProvider::platformCurrentOrientation):
(WebCore::ScreenOrientationProvider::platformStartListeningForChanges):
(WebCore::ScreenOrientationProvider::platformStopListeningForChanges):
(WebCore::ScreenOrientationProvider::platformDestroy):
* Source/WebCore/platform/ScreenOrientationProvider.h: Copied from
Source/WebCore/page/ScreenOrientation.h.
(WebCore::ScreenOrientationProvider::Observer::~Observer):
* Source/WebCore/platform/ios/ScreenOrientationProviderIOS.mm: Added.
(currentOrientationFromCurrentUIDevice):
(-[WebScreenOrientationObserver initWithProvider:]):
(-[WebScreenOrientationObserver dealloc]):
(-[WebScreenOrientationObserver _screenOrientationDidChange]):
(WebCore::ScreenOrientationProvider::platformCurrentOrientation):
(WebCore::ScreenOrientationProvider::platformStartListeningForChanges):
(WebCore::ScreenOrientationProvider::platformStopListeningForChanges):
(WebCore::ScreenOrientationProvider::platformDestroy):
* Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources-output.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.cpp: Added.
(WebKit::WebScreenOrientationManagerProxy::WebScreenOrientationManagerProxy):
(WebKit::WebScreenOrientationManagerProxy::~WebScreenOrientationManagerProxy):
(WebKit::WebScreenOrientationManagerProxy::currentOrientation):
(WebKit::WebScreenOrientationManagerProxy::lock):
(WebKit::WebScreenOrientationManagerProxy::unlock):
(WebKit::WebScreenOrientationManagerProxy::screenOrientationDidChange):
(WebKit::WebScreenOrientationManagerProxy::setShouldSendChangeNotification):
* Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.h: Copied from
Source/WebCore/page/ScreenOrientation.h.
* Source/WebKit/UIProcess/WebScreenOrientationManagerProxy.messages.in: Copied
from Source/WebCore/page/ScreenOrientationType.h.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.cpp:
Added.
(WebKit::WebScreenOrientationManager::WebScreenOrientationManager):
(WebKit::WebScreenOrientationManager::~WebScreenOrientationManager):
(WebKit::WebScreenOrientationManager::currentOrientation):
(WebKit::WebScreenOrientationManager::orientationDidChange):
(WebKit::WebScreenOrientationManager::lock):
(WebKit::WebScreenOrientationManager::unlock):
(WebKit::WebScreenOrientationManager::addObserver):
(WebKit::WebScreenOrientationManager::removeObserver):
* Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.h: Copied
from Source/WebCore/page/ScreenOrientationLockType.h.
*
Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.messages.in:
Copied from Source/WebCore/page/ScreenOrientationType.h.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
Canonical link: https://commits.webkit.org/255155@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes