Add AVKit fullscreen video interface.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Jan 2014 22:41:25 +0000 (22:41 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Jan 2014 22:41:25 +0000 (22:41 +0000)
commitb1199407d4339070fe17709d52cf1264d1ae86c6
treed0af95a75dff420b06e09bb271b0b3a2bae93565
parentc66b3e6ee7bb8fe68e1c8878beea8b024fb37ffe
Add AVKit fullscreen video interface.
https://bugs.webkit.org/show_bug.cgi?id=126818

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-01-20
Reviewed by Eric Carlson.

Source/WebCore:

No new tests, no observable change in functionality.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
Add ability for fullscreen to borrow the AVPlayerLayer.
* page/Settings.cpp:
* page/Settings.h:
(WebCore::Settings::setMediaPlaybackFullscreenAVKit):
(WebCore::Settings::mediaPlaybackFullscreenAVKit):
Add a disabled setting.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen):
Enabled fullscreen for iOS.
* platform/ios/WebVideoFullscreenControllerAVKit.h: Added.
* platform/ios/WebVideoFullscreenControllerAVKit.mm: Added.
(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController forwardingTargetForSelector:]):
(-[WebAVPlayerController shouldDismissForDone]):
(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController isPlaying]):
(-[WebAVPlayerController setPlaying:]):
(+[WebAVPlayerController keyPathsForValuesAffectingPlaying]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController updateTimingWithCurrentTime:]):
(-[WebAVPlayerController effectiveRate]):
(-[WebAVPlayerController setMediaElement:]):
(-[WebAVPlayerController handleEvent:]):
(-[WebVideoFullscreenController init]):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController setMediaElement:]):
(-[WebVideoFullscreenController mediaElement]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
Add WebAVPlayerController for HTMLMediaElememt to interface with AVPlayerViewController.

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::supportsFullscreenForNode):
Enable *FullscreenForNode for HTMLMediaElement for iOS

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences mediaPlaybackFullscreenAVKit]):
(-[WebPreferences setMediaPlaybackFullscreenAVKit:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
(-[WebView _enterFullscreenForNode:WebCore::]):
* WebView/WebViewInternal.h:
Add a disabled pref mediaPlaybackFullscreenAVKit.
Use WebVideoFullscreenControllerAVKit on iOS

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@162379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed:
Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/html/HTMLMediaElement.h
Source/WebCore/page/Settings.cpp
Source/WebCore/page/Settings.h
Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h [new file with mode: 0644]
Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm [new file with mode: 0644]
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Source/WebKit/mac/WebView/WebPreferences.mm
Source/WebKit/mac/WebView/WebPreferencesPrivate.h
Source/WebKit/mac/WebView/WebView.mm
Source/WebKit/mac/WebView/WebViewInternal.h