Changeset 221466 in webkit
- Timestamp:
- Aug 31, 2017, 6:47:33 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r221465 r221466 1 2017-08-31 Alex Christensen <achristensen@webkit.org> 2 3 Add WKUIDelegatePrivate equivalent of WKPageUIClient's isPlayingAudioDidChange 4 https://bugs.webkit.org/show_bug.cgi?id=176203 5 <rdar://problem/29270035> 6 7 Reviewed by Tim Horton. 8 9 * UIProcess/API/APIUIClient.h: 10 (API::UIClient::isPlayingMediaDidChange): 11 (API::UIClient::isPlayingAudioDidChange): Deleted. 12 * UIProcess/API/C/WKPage.cpp: 13 (WKPageSetPageUIClient): 14 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 15 * UIProcess/Cocoa/UIDelegate.h: 16 * UIProcess/Cocoa/UIDelegate.mm: 17 (WebKit::UIDelegate::setDelegate): 18 (WebKit::UIDelegate::UIClient::isPlayingMediaDidChange): 19 * UIProcess/WebPageProxy.cpp: 20 (WebKit::WebPageProxy::isPlayingMediaDidChange): 21 1 22 2017-08-31 Alex Christensen <achristensen@webkit.org> 2 23 -
trunk/Source/WebKit/UIProcess/API/APIUIClient.h
r221216 r221466 147 147 virtual void pinnedStateDidChange(WebKit::WebPageProxy&) { } 148 148 149 virtual void isPlaying AudioDidChange(WebKit::WebPageProxy&) { }149 virtual void isPlayingMediaDidChange(WebKit::WebPageProxy&, bool) { } 150 150 virtual void mediaCaptureStateDidChange(WebCore::MediaProducer::MediaStateFlags) { } 151 151 virtual void handleAutoplayEvent(WebKit::WebPageProxy&, WebCore::AutoplayEvent, OptionSet<WebCore::AutoplayEventFlags>) { } -
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
r221216 r221466 2060 2060 } 2061 2061 2062 void isPlaying AudioDidChange(WebPageProxy& page) final2062 void isPlayingMediaDidChange(WebPageProxy& page, bool) final 2063 2063 { 2064 2064 if (!m_client.isPlayingAudioDidChange) -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
r221433 r221466 150 150 - (void)_webView:(WKWebView *)webView didNotHandleWheelEvent:(NSEvent *)event WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 151 151 - (void)_webView:(WKWebView *)webView handleAutoplayEvent:(_WKAutoplayEvent)event withFlags:(_WKAutoplayEventFlags)flags WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 152 - (void)_webView:(WKWebView *)webView isPlayingMediaDidChange:(BOOL)playingMedia WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 152 153 - (void)_webView:(WKWebView *)webView didClickAutoFillButtonWithUserInfo:(id <NSSecureCoding>)userInfo WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 153 154 - (void)_webView:(WKWebView *)webView saveDataToFile:(NSData *)data suggestedFilename:(NSString *)suggestedFilename mimeType:(NSString *)mimeType originatingURL:(NSURL *)url WK_API_AVAILABLE(macosx(WK_MAC_TBA)); -
trunk/Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp
r219871 r221466 218 218 } 219 219 220 void isPlaying AudioDidChange(WebPageProxy&) override220 void isPlayingMediaDidChange(WebPageProxy&, bool) final 221 221 { 222 222 webkitWebViewIsPlayingAudioChanged(m_webView); -
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.h
r221433 r221466 101 101 void focus(WebPageProxy*) final; 102 102 void unfocus(WebPageProxy*) final; 103 void isPlayingMediaDidChange(WebKit::WebPageProxy&, bool) final; 103 104 void didNotHandleWheelEvent(WebPageProxy*, const NativeWebWheelEvent&) final; 104 105 void handleAutoplayEvent(WebPageProxy&, WebCore::AutoplayEvent, OptionSet<WebCore::AutoplayEventFlags>) final; … … 151 152 bool webViewTakeFocus : 1; 152 153 bool webViewDidNotHandleWheelEvent : 1; 154 bool webViewIsPlayingMediaDidChange : 1; 153 155 bool webViewHandleAutoplayEventWithFlags : 1; 154 156 bool webViewDidClickAutoFillButtonWithUserInfo : 1; -
trunk/Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
r221433 r221466 108 108 m_delegateMethods.webViewTakeFocus = [delegate respondsToSelector:@selector(_webView:takeFocus:)]; 109 109 m_delegateMethods.webViewDidNotHandleWheelEvent = [delegate respondsToSelector:@selector(_webView:didNotHandleWheelEvent:)]; 110 m_delegateMethods.webViewIsPlayingMediaDidChange = [delegate respondsToSelector:@selector(_webView:isPlayingMediaDidChange:)]; 110 111 m_delegateMethods.webViewHandleAutoplayEventWithFlags = [delegate respondsToSelector:@selector(_webView:handleAutoplayEvent:withFlags:)]; 111 112 m_delegateMethods.webViewDidClickAutoFillButtonWithUserInfo = [delegate respondsToSelector:@selector(_webView:didClickAutoFillButtonWithUserInfo:)]; … … 464 465 465 466 [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView didNotHandleWheelEvent:event.nativeEvent()]; 467 } 468 469 void UIDelegate::UIClient::isPlayingMediaDidChange(WebKit::WebPageProxy&, bool isPlaying) 470 { 471 if (!m_uiDelegate.m_delegateMethods.webViewIsPlayingMediaDidChange) 472 return; 473 474 auto delegate = m_uiDelegate.m_delegate.get(); 475 if (!delegate) 476 return; 477 478 [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView isPlayingMediaDidChange:isPlaying]; 466 479 } 467 480 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r221465 r221466 6581 6581 playingMediaMask |= WebCore::MediaProducer::MediaCaptureMask; 6582 6582 if ((oldState & playingMediaMask) != (m_mediaState & playingMediaMask)) 6583 m_uiClient->isPlaying AudioDidChange(*this);6583 m_uiClient->isPlayingMediaDidChange(*this, (m_mediaState & playingMediaMask)); 6584 6584 6585 6585 #if PLATFORM(MAC) -
trunk/Tools/ChangeLog
r221465 r221466 1 2017-08-31 Alex Christensen <achristensen@webkit.org> 2 3 Add WKUIDelegatePrivate equivalent of WKPageUIClient's isPlayingAudioDidChange 4 https://bugs.webkit.org/show_bug.cgi?id=176203 5 <rdar://problem/29270035> 6 7 Reviewed by Tim Horton. 8 9 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: 10 (-[MediaDelegate _webView:isPlayingMediaDidChange:]): 11 (-[MediaDelegate webView:didFinishNavigation:]): 12 (TEST): 13 1 14 2017-08-31 Alex Christensen <achristensen@webkit.org> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm
r221433 r221466 34 34 #import "WKWebViewConfigurationExtras.h" 35 35 #import <Carbon/Carbon.h> 36 #import <WebKit/WKPreferencesPrivate.h> 36 37 #import <WebKit/WKUIDelegatePrivate.h> 37 #import <WebKit/WKWebView .h>38 #import <WebKit/WKWebViewPrivate.h> 38 39 #import <wtf/RetainPtr.h> 39 40 #import <wtf/mac/AppKitCompatibilityDeclarations.h> … … 89 90 90 91 ASSERT_EQ(webViewFromDelegateCallback, createdWebView); 92 } 93 94 @interface MediaDelegate : NSObject <WKUIDelegatePrivate> 95 @end 96 97 @implementation MediaDelegate 98 99 - (void)_webView:(WKWebView *)webView isPlayingMediaDidChange:(BOOL)playingMedia 100 { 101 ASSERT_TRUE(playingMedia); 102 done = true; 103 } 104 105 @end 106 107 TEST(WebKit2, WKWebViewIsPlayingMedia) 108 { 109 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 800, 600) configuration:[[[WKWebViewConfiguration alloc] init] autorelease]]); 110 auto delegate = adoptNS([[MediaDelegate alloc] init]); 111 [webView setUIDelegate:delegate.get()]; 112 [webView synchronouslyLoadTestPageNamed:@"file-with-video"]; 113 [webView evaluateJavaScript:@"playVideo()" completionHandler:nil]; 114 TestWebKitAPI::Util::run(&done); 91 115 } 92 116
Note:
See TracChangeset
for help on using the changeset viewer.