Diff
Modified: trunk/Source/WebCore/ChangeLog (229484 => 229485)
--- trunk/Source/WebCore/ChangeLog 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebCore/ChangeLog 2018-03-09 22:56:51 UTC (rev 229485)
@@ -1,3 +1,19 @@
+2018-03-09 Jer Noble <[email protected]>
+
+ Unconditionalize more methods in VideoFullscreenInterface (and related classes)
+ https://bugs.webkit.org/show_bug.cgi?id=183501
+
+ Reviewed by Eric Carlson.
+
+ No need for these methods to be PLATFORM(MAC) only.
+
+ * platform/cocoa/PlaybackSessionModel.h:
+ (WebCore::PlaybackSessionModelClient::ensureControlsManager):
+ * platform/ios/VideoFullscreenInterfaceAVKit.h:
+ * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+ (VideoFullscreenInterfaceAVKit::isPlayingVideoInEnhancedFullscreen const):
+ * platform/mac/VideoFullscreenInterfaceMac.h:
+
2018-03-09 Youenn Fablet <[email protected]>
ServiceWorker should respect IDB and DOMCache partitioning
Modified: trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h (229484 => 229485)
--- trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -102,6 +102,7 @@
virtual void wirelessVideoPlaybackDisabledChanged(bool) { }
virtual void mutedChanged(bool) { }
virtual void pictureInPictureActiveChanged(bool) { }
+ virtual void ensureControlsManager() { }
};
}
Modified: trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.h (229484 => 229485)
--- trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -151,6 +151,7 @@
void exitFullscreenHandler(BOOL success, NSError *);
void enterFullscreenHandler(BOOL success, NSError *);
#endif
+ bool isPlayingVideoInEnhancedFullscreen() const;
void setMode(HTMLMediaElementEnums::VideoFullscreenMode);
void clearMode(HTMLMediaElementEnums::VideoFullscreenMode);
Modified: trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm (229484 => 229485)
--- trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -1620,6 +1620,11 @@
m_videoFullscreenModel->fullscreenModeChanged(m_currentMode.mode());
}
+bool VideoFullscreenInterfaceAVKit::isPlayingVideoInEnhancedFullscreen() const
+{
+ return hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenModePictureInPicture) && [playerController() isPlaying];
+}
+
#endif // HAVE(AVKIT)
bool WebCore::supportsPictureInPicture()
Modified: trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.h (229484 => 229485)
--- trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebCore/platform/mac/VideoFullscreenInterfaceMac.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -64,6 +64,7 @@
// PlaybackSessionModelClient
WEBCORE_EXPORT void rateChanged(bool isPlaying, float playbackRate) override;
WEBCORE_EXPORT void externalPlaybackChanged(bool enabled, PlaybackSessionModel::ExternalPlaybackTargetType, const String& localizedDeviceName) override;
+ WEBCORE_EXPORT void ensureControlsManager() override;
// VideoFullscreenModelClient
WEBCORE_EXPORT void hasVideoChanged(bool) final;
@@ -77,7 +78,6 @@
WEBCORE_EXPORT void invalidate();
void requestHideAndExitFullscreen() { }
WEBCORE_EXPORT void preparedToReturnToInline(bool visible, const IntRect& inlineRect, NSWindow *parentWindow);
- WEBCORE_EXPORT void ensureControlsManager();
HTMLMediaElementEnums::VideoFullscreenMode mode() const { return m_mode; }
bool hasMode(HTMLMediaElementEnums::VideoFullscreenMode mode) const { return m_mode & mode; }
Modified: trunk/Source/WebKit/ChangeLog (229484 => 229485)
--- trunk/Source/WebKit/ChangeLog 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/ChangeLog 2018-03-09 22:56:51 UTC (rev 229485)
@@ -1,3 +1,35 @@
+2018-03-09 Jer Noble <[email protected]>
+
+ Unconditionalize more methods in VideoFullscreenInterface (and related classes)
+ https://bugs.webkit.org/show_bug.cgi?id=183501
+
+ Reviewed by Eric Carlson.
+
+ No reason for these methods to be PLATFORM(MAC) only.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _videoControlsManagerDidChange]):
+ * UIProcess/API/Cocoa/WKWebViewInternal.h:
+ * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
+ (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
+ (WebKit::PlaybackSessionManagerProxy::clearPlaybackControlsManager):
+ * UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
+ * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
+ * UIProcess/PageClient.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::isPlayingMediaDidChange):
+ (WebKit::WebPageProxy::handleControlledElementIDResponse const):
+ (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/ios/PageClientImplIOS.h:
+ * UIProcess/ios/PageClientImplIOS.mm:
+ (WebKit::PageClientImpl::videoControlsManagerDidChange):
+ * UIProcess/ios/WKFullScreenWindowControllerIOS.h:
+ * UIProcess/ios/WKFullScreenWindowControllerIOS.mm:
+ (-[WKFullScreenWindowController videoControlsManagerDidChange]):
+ * WebProcess/cocoa/PlaybackSessionManager.mm:
+ (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager):
+
2018-03-09 Per Arne Vollan <[email protected]>
Create CA layer contexts with +remoteContextWithOptions.
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -1564,6 +1564,14 @@
[_scrollView setIndicatorStyle:UIScrollViewIndicatorStyleDefault];
}
+- (void)_videoControlsManagerDidChange
+{
+#if ENABLE(FULLSCREEN_API)
+ if (_fullScreenWindowController)
+ [_fullScreenWindowController videoControlsManagerDidChange];
+#endif
+}
+
- (CGPoint)_adjustedContentOffset:(CGPoint)point
{
CGPoint result = point;
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -114,6 +114,8 @@
- (void)_updateScrollViewBackground;
+- (void)_videoControlsManagerDidChange;
+
- (void)_navigationGestureDidBegin;
- (void)_navigationGestureDidEnd;
- (BOOL)_isNavigationSwipeGestureRecognizer:(UIGestureRecognizer *)recognizer;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -346,7 +346,6 @@
void PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID(uint64_t contextId)
{
-#if PLATFORM(MAC)
if (m_controlsManagerContextId == contextId)
return;
@@ -358,14 +357,10 @@
addClientForContext(m_controlsManagerContextId);
m_page->videoControlsManagerDidChange();
-#else
- UNUSED_PARAM(contextId);
-#endif
}
void PlaybackSessionManagerProxy::clearPlaybackControlsManager()
{
-#if PLATFORM(MAC)
if (!m_controlsManagerContextId)
return;
@@ -372,7 +367,6 @@
removeClientForContext(m_controlsManagerContextId);
m_controlsManagerContextId = 0;
m_page->videoControlsManagerDidChange();
-#endif
}
void PlaybackSessionManagerProxy::resetMediaState(uint64_t contextId)
Modified: trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -118,7 +118,7 @@
void applicationDidBecomeActive();
bool isVisible() const;
-#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
+#if ENABLE(VIDEO_PRESENTATION_MODE)
bool isPlayingVideoInEnhancedFullscreen() const;
#endif
Modified: trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -279,7 +279,7 @@
return false;
}
-#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
+#if ENABLE(VIDEO_PRESENTATION_MODE)
bool VideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen() const
{
for (auto& tuple : m_contextMap.values()) {
Modified: trunk/Source/WebKit/UIProcess/PageClient.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/PageClient.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/PageClient.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -350,10 +350,10 @@
virtual void* immediateActionAnimationControllerForHitTestResult(RefPtr<API::HitTestResult>, uint64_t, RefPtr<API::Object>) = 0;
virtual void didHandleAcceptedCandidate() = 0;
-
- virtual void videoControlsManagerDidChange() = 0;
#endif
+ virtual void videoControlsManagerDidChange() { };
+
#if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS)
virtual WebCore::WebMediaSessionManager& mediaSessionManager() = 0;
#endif
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-03-09 22:56:51 UTC (rev 229485)
@@ -6803,13 +6803,10 @@
if ((oldState & playingMediaMask) != (m_mediaState & playingMediaMask))
m_uiClient->isPlayingMediaDidChange(*this);
-#if PLATFORM(MAC)
if ((oldState & MediaProducer::HasAudioOrVideo) != (m_mediaState & MediaProducer::HasAudioOrVideo))
videoControlsManagerDidChange();
-#endif
}
-#if PLATFORM(MAC)
void WebPageProxy::videoControlsManagerDidChange()
{
m_pageClient.videoControlsManagerDidChange();
@@ -6834,7 +6831,9 @@
void WebPageProxy::handleControlledElementIDResponse(const String& identifier) const
{
+#if PLATFORM(MAC)
m_pageClient.handleControlledElementIDResponse(identifier);
+#endif
}
bool WebPageProxy::isPlayingVideoInEnhancedFullscreen() const
@@ -6845,7 +6844,6 @@
return false;
#endif
}
-#endif
#if PLATFORM(COCOA)
void WebPageProxy::requestActiveNowPlayingSessionInfo(Ref<NowPlayingInfoCallback>&& callback)
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -1129,13 +1129,11 @@
WebCore::MediaProducer::MediaStateFlags mediaStateFlags() const { return m_mediaState; }
void handleAutoplayEvent(WebCore::AutoplayEvent, OptionSet<WebCore::AutoplayEventFlags>);
-#if PLATFORM(MAC)
void videoControlsManagerDidChange();
bool hasActiveVideoForControlsManager() const;
void requestControlledElementID() const;
void handleControlledElementIDResponse(const String&) const;
bool isPlayingVideoInEnhancedFullscreen() const;
-#endif
#if PLATFORM(COCOA)
void requestActiveNowPlayingSessionInfo(Ref<NowPlayingInfoCallback>&&);
Modified: trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -190,6 +190,7 @@
void didCompleteSyntheticClick() override;
void didChangeBackgroundColor() override;
+ void videoControlsManagerDidChange() override;
void refView() override;
void derefView() override;
Modified: trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/ios/PageClientImplIOS.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -742,6 +742,11 @@
[m_webView _updateScrollViewBackground];
}
+void PageClientImpl::videoControlsManagerDidChange()
+{
+ [m_webView _videoControlsManagerDidChange];
+}
+
void PageClientImpl::refView()
{
[m_contentView retain];
Modified: trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h 2018-03-09 22:56:51 UTC (rev 229485)
@@ -53,6 +53,7 @@
- (void)beganEnterFullScreenWithInitialFrame:(CGRect)initialFrame finalFrame:(CGRect)finalFrame;
- (void)beganExitFullScreenWithInitialFrame:(CGRect)initialFrame finalFrame:(CGRect)finalFrame;
- (void)webViewDidRemoveFromSuperviewWhileInFullscreen;
+- (void)videoControlsManagerDidChange;
@end
Modified: trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm (229484 => 229485)
--- trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -847,6 +847,10 @@
[self exitFullscreenImmediately];
}
+- (void)videoControlsManagerDidChange
+{
+}
+
#pragma mark -
#pragma mark Internal Interface
Modified: trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm (229484 => 229485)
--- trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm 2018-03-09 22:43:49 UTC (rev 229484)
+++ trunk/Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm 2018-03-09 22:56:51 UTC (rev 229485)
@@ -250,7 +250,6 @@
void PlaybackSessionManager::setUpPlaybackControlsManager(WebCore::HTMLMediaElement& mediaElement)
{
-#if PLATFORM(MAC)
auto foundIterator = m_mediaElements.find(&mediaElement);
if (foundIterator != m_mediaElements.end()) {
uint64_t contextId = foundIterator->value;
@@ -271,7 +270,6 @@
addClientForContext(m_controlsManagerContextId);
m_page->send(Messages::PlaybackSessionManagerProxy::SetUpPlaybackControlsManagerWithID(m_controlsManagerContextId), m_page->pageID());
-#endif
}
void PlaybackSessionManager::clearPlaybackControlsManager()