Changeset 207820 in webkit
- Timestamp:
- Oct 25, 2016 8:52:25 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r207816 r207820 1 2016-10-19 Jer Noble <jer.noble@apple.com> 2 3 Add WKWebView fullscreen delegate SPI 4 https://bugs.webkit.org/show_bug.cgi?id=163674 5 6 Reviewed by Anders Carlsson. 7 8 Add a new SPI property to WKWebView allowing clients to be notified when fullscreen mode enters and exits. 9 10 * UIProcess/API/APIFullscreenClient.h: Added. 11 (API::FullscreenClient::~FullscreenClient): 12 (API::FullscreenClient::willEnterFullscreen): 13 (API::FullscreenClient::didEnterFullscreen): 14 (API::FullscreenClient::willExitFullscreen): 15 (API::FullscreenClient::didExitFullscreen): 16 * UIProcess/API/Cocoa/WKWebView.mm: 17 (-[WKWebView _initializeWithConfiguration:]): 18 (-[WKWebView _setFullscreenDelegate:]): 19 (-[WKWebView _fullscreenDelegate]): 20 (-[WKWebView _isInFullscreen]): 21 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 22 * UIProcess/API/Cocoa/_WKFullscreenDelegate.h: Added. 23 * UIProcess/Cocoa/FullscreenClient.h: Added. 24 (WebKit::FullscreenClient::~FullscreenClient): 25 * UIProcess/Cocoa/FullscreenClient.mm: Added. 26 (WebKit::FullscreenClient::FullscreenClient): 27 (WebKit::FullscreenClient::delegate): 28 (WebKit::FullscreenClient::setDelegate): 29 (WebKit::FullscreenClient::willEnterFullscreen): 30 (WebKit::FullscreenClient::didEnterFullscreen): 31 (WebKit::FullscreenClient::willExitFullscreen): 32 (WebKit::FullscreenClient::didExitFullscreen): 33 * UIProcess/WebFullScreenManagerProxy.cpp: 34 (WebKit::WebFullScreenManagerProxy::willEnterFullScreen): 35 (WebKit::WebFullScreenManagerProxy::didEnterFullScreen): 36 (WebKit::WebFullScreenManagerProxy::willExitFullScreen): 37 (WebKit::WebFullScreenManagerProxy::didExitFullScreen): 38 * UIProcess/WebPageProxy.cpp: 39 (WebKit::WebPageProxy::WebPageProxy): 40 (WebKit::WebPageProxy::setFullscreenClient): 41 (WebKit::WebPageProxy::fullScreenManager): Deleted. 42 * UIProcess/WebPageProxy.h: 43 (WebKit::WebPageProxy::fullscreenClient): 44 * WebKit2.xcodeproj/project.pbxproj: 45 1 46 2016-10-25 Carlos Garcia Campos <cgarcia@igalia.com> 2 47 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r207708 r207820 35 35 #import "DiagnosticLoggingClient.h" 36 36 #import "FindClient.h" 37 #import "FullscreenClient.h" 37 38 #import "LegacySessionStateCoding.h" 38 39 #import "Logging.h" … … 68 69 #import "WebCertificateInfo.h" 69 70 #import "WebFormSubmissionListenerProxy.h" 71 #import "WebFullScreenManagerProxy.h" 70 72 #import "WebKitSystemInterface.h" 71 73 #import "WebPageGroup.h" … … 78 80 #import "_WKFindDelegate.h" 79 81 #import "_WKFrameHandleInternal.h" 82 #import "_WKFullscreenDelegate.h" 80 83 #import "_WKHitTestResultInternal.h" 81 84 #import "_WKInputDelegate.h" … … 550 553 _page->setFindClient(std::make_unique<WebKit::FindClient>(self)); 551 554 _page->setDiagnosticLoggingClient(std::make_unique<WebKit::DiagnosticLoggingClient>(self)); 555 556 #if ENABLE(FULLSCREEN_API) 557 _page->setFullscreenClient(std::make_unique<WebKit::FullscreenClient>(self)); 558 #endif 552 559 553 560 pageToViewMap().add(_page.get(), self); … … 3923 3930 } 3924 3931 3932 - (void)_setFullscreenDelegate:(id<_WKFullscreenDelegate>)delegate 3933 { 3934 #if ENABLE(FULLSCREEN_API) 3935 static_cast<WebKit::FullscreenClient&>(_page->fullscreenClient()).setDelegate(delegate); 3936 #endif 3937 } 3938 3939 - (id<_WKFullscreenDelegate>)_fullscreenDelegate 3940 { 3941 #if ENABLE(FULLSCREEN_API) 3942 return static_cast<WebKit::FullscreenClient&>(_page->fullscreenClient()).delegate().autorelease()); 3943 #else 3944 return nullptr; 3945 #endif 3946 } 3947 3948 - (BOOL)_isInFullscreen 3949 { 3950 #if ENABLE(FULLSCREEN_API) 3951 return _page->fullScreenManager() && _page->fullScreenManager()->isFullScreen(); 3952 #else 3953 return false; 3954 #endif 3955 } 3956 3925 3957 #pragma mark iOS-specific methods 3926 3958 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r207512 r207820 64 64 @protocol _WKFindDelegate; 65 65 @protocol _WKInputDelegate; 66 @protocol _WKFullscreenDelegate; 66 67 67 68 @interface WKWebView (WKPrivate) … … 244 245 245 246 @property (nonatomic, readonly) BOOL _webProcessIsResponsive WK_API_AVAILABLE(macosx(10.12), ios(10.0)); 247 248 @property (nonatomic, setter=_setFullscreenDelegate:) id<_WKFullscreenDelegate> _fullscreenDelegate WK_API_AVAILABLE(macos(10.13)); 249 @property (nonatomic, readonly) BOOL _isInFullscreen WK_API_AVAILABLE(macos(WK_MAC_TBA)); 246 250 247 251 @end -
trunk/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp
r207439 r207820 29 29 #if ENABLE(FULLSCREEN_API) 30 30 31 #include "APIFullscreenClient.h" 31 32 #include "WebFullScreenManagerMessages.h" 32 33 #include "WebFullScreenManagerProxyMessages.h" … … 57 58 void WebFullScreenManagerProxy::willEnterFullScreen() 58 59 { 60 m_page->fullscreenClient().willEnterFullscreen(m_page); 59 61 m_page->process().send(Messages::WebFullScreenManager::WillEnterFullScreen(), m_page->pageID()); 60 62 } … … 62 64 void WebFullScreenManagerProxy::didEnterFullScreen() 63 65 { 66 m_page->fullscreenClient().didEnterFullscreen(m_page); 64 67 m_page->process().send(Messages::WebFullScreenManager::DidEnterFullScreen(), m_page->pageID()); 65 68 } … … 67 70 void WebFullScreenManagerProxy::willExitFullScreen() 68 71 { 72 m_page->fullscreenClient().willExitFullscreen(m_page); 69 73 m_page->process().send(Messages::WebFullScreenManager::WillExitFullScreen(), m_page->pageID()); 70 74 } … … 72 76 void WebFullScreenManagerProxy::didExitFullScreen() 73 77 { 78 m_page->fullscreenClient().didExitFullscreen(m_page); 74 79 m_page->process().send(Messages::WebFullScreenManager::DidExitFullScreen(), m_page->pageID()); 75 80 } -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r207764 r207820 34 34 #include "APIFormClient.h" 35 35 #include "APIFrameInfo.h" 36 #include "APIFullscreenClient.h" 36 37 #include "APIGeometry.h" 37 38 #include "APIHistoryClient.h" … … 341 342 , m_userAgent(standardUserAgent()) 342 343 , m_treatsSHA1CertificatesAsInsecure(m_configuration->treatsSHA1SignedCertificatesAsInsecure()) 344 #if ENABLE(FULLSCREEN_API) 345 , m_fullscreenClient(std::make_unique<API::FullscreenClient>()) 346 #endif 343 347 #if PLATFORM(IOS) 344 348 , m_hasReceivedLayerTreeTransactionAfterDidCommitLoad(true) … … 4271 4275 { 4272 4276 return m_fullScreenManager.get(); 4277 } 4278 4279 void WebPageProxy::setFullscreenClient(std::unique_ptr<API::FullscreenClient> client) 4280 { 4281 m_fullscreenClient = WTFMove(client); 4273 4282 } 4274 4283 #endif -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r207764 r207820 128 128 class FindMatchesClient; 129 129 class FormClient; 130 class FullscreenClient; 130 131 class HistoryClient; 131 132 class LoaderClient; … … 330 331 #if ENABLE(FULLSCREEN_API) 331 332 WebFullScreenManagerProxy* fullScreenManager(); 333 334 API::FullscreenClient& fullscreenClient() const { return *m_fullscreenClient; } 335 void setFullscreenClient(std::unique_ptr<API::FullscreenClient>); 332 336 #endif 333 337 #if (PLATFORM(IOS) && HAVE(AVKIT)) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)) … … 1606 1610 #if ENABLE(FULLSCREEN_API) 1607 1611 RefPtr<WebFullScreenManagerProxy> m_fullScreenManager; 1612 std::unique_ptr<API::FullscreenClient> m_fullscreenClient; 1608 1613 #endif 1609 1614 #if (PLATFORM(IOS) && HAVE(AVKIT)) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)) -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r207813 r207820 1760 1760 CD73BA4E131ACDB700EEDED2 /* WebFullScreenManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD73BA48131ACD8E00EEDED2 /* WebFullScreenManagerMessageReceiver.cpp */; }; 1761 1761 CD73BA53131B645B00EEDED2 /* WebFullScreenManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD73BA37131A29FE00EEDED2 /* WebFullScreenManager.cpp */; }; 1762 CD78E1141DB7D7ED0014A2DE /* FullscreenClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD78E1121DB7D7ED0014A2DE /* FullscreenClient.mm */; }; 1763 CD78E1151DB7D7ED0014A2DE /* FullscreenClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CD78E1131DB7D7ED0014A2DE /* FullscreenClient.h */; }; 1764 CD78E1171DB7DC0A0014A2DE /* APIFullscreenClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CD78E1161DB7DC0A0014A2DE /* APIFullscreenClient.h */; }; 1765 CD78E1191DB7E5AD0014A2DE /* _WKFullscreenDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD78E1181DB7E5AD0014A2DE /* _WKFullscreenDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1762 1766 CDA041F41ACE2105004A13EC /* BackBoardServicesSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CDA041F31ACE2105004A13EC /* BackBoardServicesSPI.h */; }; 1763 1767 CDA29A1A1CBDBF4100901CCF /* WebPlaybackSessionManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDA29A181CBDBF4100901CCF /* WebPlaybackSessionManager.mm */; }; … … 3902 3906 CD73BA49131ACD8E00EEDED2 /* WebFullScreenManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFullScreenManagerMessages.h; sourceTree = "<group>"; }; 3903 3907 CD73BA4A131ACD8F00EEDED2 /* WebFullScreenManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFullScreenManagerProxyMessages.h; sourceTree = "<group>"; }; 3908 CD78E1121DB7D7ED0014A2DE /* FullscreenClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FullscreenClient.mm; sourceTree = "<group>"; }; 3909 CD78E1131DB7D7ED0014A2DE /* FullscreenClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FullscreenClient.h; sourceTree = "<group>"; }; 3910 CD78E1161DB7DC0A0014A2DE /* APIFullscreenClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIFullscreenClient.h; sourceTree = "<group>"; }; 3911 CD78E1181DB7E5AD0014A2DE /* _WKFullscreenDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKFullscreenDelegate.h; sourceTree = "<group>"; }; 3904 3912 CDA041F31ACE2105004A13EC /* BackBoardServicesSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackBoardServicesSPI.h; sourceTree = "<group>"; }; 3905 3913 CDA29A181CBDBF4100901CCF /* WebPlaybackSessionManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPlaybackSessionManager.mm; sourceTree = "<group>"; }; … … 4803 4811 00B9661818E25AE100CE1F88 /* FindClient.h */, 4804 4812 00B9661718E25AE100CE1F88 /* FindClient.mm */, 4813 CD78E1121DB7D7ED0014A2DE /* FullscreenClient.mm */, 4814 CD78E1131DB7D7ED0014A2DE /* FullscreenClient.h */, 4805 4815 0F0C365918C0555800F607D7 /* LayerRepresentation.h */, 4806 4816 1ABC3DF41899E437004F0626 /* NavigationState.h */, … … 5184 5194 2E7A94491BBD95C600945547 /* _WKFocusedElementInfo.h */, 5185 5195 37A64E5618F38F4600EB30F1 /* _WKFormInputSession.h */, 5196 CD78E1181DB7E5AD0014A2DE /* _WKFullscreenDelegate.h */, 5186 5197 37A64E5418F38E3C00EB30F1 /* _WKInputDelegate.h */, 5187 5198 2D790A9C1AD7050D00AB90B3 /* _WKLayoutMode.h */, … … 6255 6266 2DF9EEE31A781FB400B6CFBE /* APIFrameInfo.cpp */, 6256 6267 2DF9EEE41A781FB400B6CFBE /* APIFrameInfo.h */, 6268 CD78E1161DB7DC0A0014A2DE /* APIFullscreenClient.h */, 6257 6269 2DABA7751A82B42100EF0F1A /* APIHistoryClient.h */, 6258 6270 93A88B421BC8828C00ABA5C2 /* APIHitTestResult.cpp */, … … 7529 7541 1A4A93B71AEB08EA00150E9C /* _WKWebsiteDataStoreInternal.h in Headers */, 7530 7542 A115DC72191D82DA00DA8072 /* _WKWebViewPrintFormatter.h in Headers */, 7543 CD78E1191DB7E5AD0014A2DE /* _WKFullscreenDelegate.h in Headers */, 7531 7544 A19DD3C01D07D16800AC823B /* _WKWebViewPrintFormatterInternal.h in Headers */, 7532 7545 A182D5B51BE6BD250087A7CC /* AccessibilityIOS.h in Headers */, … … 8276 8289 1AB8A1F418400B8F00E9AE69 /* WKPageFindClient.h in Headers */, 8277 8290 1AB8A1F618400B9D00E9AE69 /* WKPageFindMatchesClient.h in Headers */, 8291 CD78E1151DB7D7ED0014A2DE /* FullscreenClient.h in Headers */, 8278 8292 1AB8A1F018400B0000E9AE69 /* WKPageFormClient.h in Headers */, 8279 8293 BC7B633712A45ABA00D174A4 /* WKPageGroup.h in Headers */, … … 8307 8321 0FCB4E6618BBE3D9000FCFC9 /* WKPrintingView.h in Headers */, 8308 8322 BCBAACEB145225E30053F82F /* WKProcessGroup.h in Headers */, 8323 CD78E1171DB7DC0A0014A2DE /* APIFullscreenClient.h in Headers */, 8309 8324 BCBAACED145225E30053F82F /* WKProcessGroupPrivate.h in Headers */, 8310 8325 1A15841A189044F50017616C /* WKProcessPool.h in Headers */, … … 9214 9229 831EEBBE1BD85C4300BB64C3 /* NetworkCacheSpeculativeLoad.cpp in Sources */, 9215 9230 832AE2531BE2E8CD00FAAE10 /* NetworkCacheSpeculativeLoadManager.cpp in Sources */, 9231 CD78E1141DB7D7ED0014A2DE /* FullscreenClient.mm in Sources */, 9216 9232 83BDCCB91AC5FDB6003F6441 /* NetworkCacheStatistics.cpp in Sources */, 9217 9233 E4436ED01A0D040B00EAD204 /* NetworkCacheStorage.cpp in Sources */, -
trunk/Tools/ChangeLog
r207805 r207820 1 2016-10-19 Jer Noble <jer.noble@apple.com> 2 3 Add WKWebView fullscreen delegate SPI 4 https://bugs.webkit.org/show_bug.cgi?id=163674 5 6 Reviewed by Anders Carlsson. 7 8 Add a new API test which verifies that the fullscreen delegate receives notifications. 9 10 * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.mm: 11 (-[FullscreenDelegateMessageHandler userContentController:didReceiveScriptMessage:]): 12 (-[FullscreenDelegateMessageHandler _webViewWillEnterFullscreen:]): 13 (-[FullscreenDelegateMessageHandler _webViewDidEnterFullscreen:]): 14 (-[FullscreenDelegateMessageHandler _webViewWillExitFullscreen:]): 15 (-[FullscreenDelegateMessageHandler _webViewDidExitFullscreen:]): 16 (TestWebKitAPI::TEST): 17 1 18 2016-10-24 Alex Christensen <achristensen@webkit.org> 2 19 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r207648 r207820 474 474 CD59F53419E9110D00CF1835 /* file-with-mse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53219E910AA00CF1835 /* file-with-mse.html */; }; 475 475 CD59F53519E9110D00CF1835 /* test-mse.mp4 in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD59F53319E910BC00CF1835 /* test-mse.mp4 */; }; 476 CD78E11D1DB7EA660014A2DE /* FullscreenDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD78E11A1DB7EA360014A2DE /* FullscreenDelegate.mm */; }; 477 CD78E11E1DB7EE2A0014A2DE /* FullscreenDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD78E11B1DB7EA360014A2DE /* FullscreenDelegate.html */; }; 476 478 CD9E292E1C90C33F000BB800 /* audio-only.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = CD9E292D1C90C1BA000BB800 /* audio-only.html */; }; 477 479 CDBFCC451A9FF45300A7B691 /* FullscreenZoomInitialFrame.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDBFCC431A9FF44800A7B691 /* FullscreenZoomInitialFrame.mm */; }; … … 568 570 AD57AC221DA7466E00FF1BDE /* many-iframes.html in Copy Resources */, 569 571 F415086D1DA040C50044BE9B /* play-audio-on-click.html in Copy Resources */, 572 CD78E11E1DB7EE2A0014A2DE /* FullscreenDelegate.html in Copy Resources */, 570 573 F4F137921D9B683E002BEC57 /* large-video-test-now-playing.html in Copy Resources */, 571 574 837A35F11D9A1E7D00663C57 /* DownloadRequestBlobURL.html in Copy Resources */, … … 1188 1191 CD59F53319E910BC00CF1835 /* test-mse.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "test-mse.mp4"; sourceTree = "<group>"; }; 1189 1192 CD773F711C5057DB0002257C /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; }; 1193 CD78E11A1DB7EA360014A2DE /* FullscreenDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FullscreenDelegate.mm; sourceTree = "<group>"; }; 1194 CD78E11B1DB7EA360014A2DE /* FullscreenDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = FullscreenDelegate.html; sourceTree = "<group>"; }; 1190 1195 CD89D0381C4EDB2A00040A04 /* WebCoreNSURLSession.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreNSURLSession.mm; sourceTree = "<group>"; }; 1191 1196 CD9E292B1C90A71F000BB800 /* RequiresUserActionForPlayback.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RequiresUserActionForPlayback.mm; sourceTree = "<group>"; }; … … 1394 1399 2D8104CB1BEC13E70020DA46 /* FindInPage.mm */, 1395 1400 2D1FE0AF1AD465C1006CD9E6 /* FixedLayoutSize.mm */, 1401 CD78E11A1DB7EA360014A2DE /* FullscreenDelegate.mm */, 1396 1402 3F1B52681D3D7129008D60C4 /* FullscreenLayoutConstraints.mm */, 1397 1403 CDE195B31CFE0ADE0053D256 /* FullscreenTopContentInset.mm */, … … 1553 1559 93575C551D30366E000D604D /* focus-inputs.html */, 1554 1560 F4F405BA1D4C0CF8007A9707 /* full-size-autoplaying-video-with-audio.html */, 1561 CD78E11B1DB7EA360014A2DE /* FullscreenDelegate.html */, 1555 1562 3FBD1B491D39D1DB00E6D6FA /* FullscreenLayoutConstraints.html */, 1556 1563 CDE195B21CFE0ADE0053D256 /* FullscreenTopContentInset.html */, … … 2541 2548 536770341CC8022800D425B1 /* WebScriptObjectDescription.mm in Sources */, 2542 2549 7CCE7ED41A411A7E00447C4C /* WebViewCanPasteURL.mm in Sources */, 2550 CD78E11D1DB7EA660014A2DE /* FullscreenDelegate.mm in Sources */, 2543 2551 7C83E0421D0A63FD00FEBCF3 /* WebViewCloseInsideDidFinishLoadForFrame.mm in Sources */, 2544 2552 7CCE7ED51A411A7E00447C4C /* WebViewDidCreateJavaScriptContext.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.