<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185727] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185727">185727</a></dd>
<dt>Author</dt> <dd>jonlee@apple.com</dd>
<dt>Date</dt> <dd>2015-06-18 16:42:22 -0700 (Thu, 18 Jun 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Update AVKit usage of pip
https://bugs.webkit.org/show_bug.cgi?id=146095
<rdar://problem/21386853>
Reviewed by Eric Carlson.
Source/WebCore:
- Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
- Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
- Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
- Update AVKit calls and AVKitSPI.h
- Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables
* html/HTMLMediaElement.cpp:
* html/HTMLVideoElement.cpp:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
(WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.
* html/MediaElementSession.h:
* page/Settings.cpp:
* page/Settings.in:
* platform/graphics/MediaPlayerEnums.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
* platform/spi/mac/AVFoundationSPI.h:
Source/WebKit/mac:
- Rename preference key
- Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
* WebCoreSupport/WebSystemInterface.mm:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
(-[WebPreferences setAllowsAlternateFullscreen:]):
(-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
(-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
Source/WebKit2:
- Rename preference key
- Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.
(WKPreferencesSetAllowsAlternateFullscreen): Deleted.
(WKPreferencesGetAllowsAlternateFullscreen): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
(-[WKWebView _isShowingVideoOptimized]): Deleted.
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
(shouldAllowPictureInPictureMediaPlayback): Renamed.
(shouldAllowAlternateFullscreen): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
(WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/ios/WebVideoFullscreenManager.mm:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaElementSessioncpp">trunk/Source/WebCore/html/MediaElementSession.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaElementSessionh">trunk/Source/WebCore/html/MediaElementSession.h</a></li>
<li><a href="#trunkSourceWebCorepageSettingscpp">trunk/Source/WebCore/page/Settings.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSettingsin">trunk/Source/WebCore/page/Settings.in</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayerEnumsh">trunk/Source/WebCore/platform/graphics/MediaPlayerEnums.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenControllerAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKith">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformspicocoaAVKitSPIh">trunk/Source/WebCore/platform/spi/cocoa/AVKitSPI.h</a></li>
<li><a href="#trunkSourceWebCoreplatformspimacAVFoundationSPIh">trunk/Source/WebCore/platform/spi/mac/AVFoundationSPI.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferenceKeysPrivateh">trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferencesmm">trunk/Source/WebKit/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferencesPrivateh">trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedWebPreferencesDefinitionsh">trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencescpp">trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh">trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSmm">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxyh">trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymessagesin">trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymm">trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessiosWebVideoFullscreenManagermm">trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/ChangeLog        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -1,3 +1,33 @@
</span><ins>+2015-06-18 Jon Lee <jonlee@apple.com>
+
+ Update AVKit usage of pip
+ https://bugs.webkit.org/show_bug.cgi?id=146095
+ <rdar://problem/21386853>
+
+ Reviewed by Eric Carlson.
+
+ - Rename enum VideoFullscreenModeOptimized to VideoFullscreenModePictureInPicture
+ - Rename MediaElementSession::allowsAlternateFullscreen to allowsPictureInPicture
+ - Rename Settings::allowsAlternateFullscreen to allowsPictureInPictureMediaPlayback
+ - Update AVKit calls and AVKitSPI.h
+ - Rename WebVideoFullscreenInterfaceAVKit delegate functions and member variables
+
+ * html/HTMLMediaElement.cpp:
+ * html/HTMLVideoElement.cpp:
+ * html/MediaElementSession.cpp:
+ (WebCore::MediaElementSession::allowsPictureInPicture): Renamed.
+ (WebCore::MediaElementSession::allowsAlternateFullscreen): Deleted.
+ * html/MediaElementSession.h:
+ * page/Settings.cpp:
+ * page/Settings.in:
+ * platform/graphics/MediaPlayerEnums.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ * platform/ios/WebVideoFullscreenControllerAVKit.mm:
+ * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove unused setIsOptimized.
+ * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+ * platform/spi/cocoa/AVKitSPI.h: Remove unused typedef.
+ * platform/spi/mac/AVFoundationSPI.h:
+
</ins><span class="cx"> 2015-06-18 Jeremy Jones <jeremyj@apple.com>
</span><span class="cx">
</span><span class="cx"> Fix crash when entering fullscreen during exit fullscreen animation.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -6212,7 +6212,7 @@
</span><span class="cx"> {
</span><span class="cx"> if (m_videoFullscreenMode == VideoFullscreenModeStandard)
</span><span class="cx"> return PlatformMediaSession::Fullscreen;
</span><del>- if (m_videoFullscreenMode & VideoFullscreenModeOptimized)
</del><ins>+ if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture)
</ins><span class="cx"> return PlatformMediaSession::Optimized;
</span><span class="cx"> if (m_videoFullscreenMode == VideoFullscreenModeNone)
</span><span class="cx"> return PlatformMediaSession::Normal;
</span><span class="lines">@@ -6285,7 +6285,7 @@
</span><span class="cx"> if (m_player && m_player->isCurrentPlaybackTargetWireless())
</span><span class="cx"> return true;
</span><span class="cx"> #endif
</span><del>- if (m_videoFullscreenMode & VideoFullscreenModeOptimized)
</del><ins>+ if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture)
</ins><span class="cx"> return true;
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> if (m_videoFullscreenMode == VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported() && isPlaying())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -369,7 +369,7 @@
</span><span class="cx"> return mediaSession().fullscreenPermitted(*this) && supportsFullscreen();
</span><span class="cx">
</span><span class="cx"> if (mode == presentationModePictureInPicture())
</span><del>- return wkIsOptimizedFullscreenSupported() && mediaSession().allowsAlternateFullscreen(*this) && supportsFullscreen();
</del><ins>+ return wkIsOptimizedFullscreenSupported() && mediaSession().allowsPictureInPicture(*this) && supportsFullscreen();
</ins><span class="cx">
</span><span class="cx"> if (mode == presentationModeInline())
</span><span class="cx"> return !mediaSession().requiresFullscreenForVideoPlayback(*this);
</span><span class="lines">@@ -392,7 +392,7 @@
</span><span class="cx"> if (mode == presentationModeFullscreen())
</span><span class="cx"> enterFullscreen(VideoFullscreenModeStandard);
</span><span class="cx"> else if (mode == presentationModePictureInPicture())
</span><del>- enterFullscreen(VideoFullscreenModeOptimized);
</del><ins>+ enterFullscreen(VideoFullscreenModePictureInPicture);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String HTMLVideoElement::webkitPresentationMode() const
</span><span class="lines">@@ -402,7 +402,7 @@
</span><span class="cx"> if (mode == VideoFullscreenModeStandard)
</span><span class="cx"> return presentationModeFullscreen();
</span><span class="cx">
</span><del>- if (mode & VideoFullscreenModeOptimized)
</del><ins>+ if (mode & VideoFullscreenModePictureInPicture)
</ins><span class="cx"> return presentationModePictureInPicture();
</span><span class="cx">
</span><span class="cx"> if (mode == VideoFullscreenModeNone)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaElementSessioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaElementSession.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaElementSession.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/html/MediaElementSession.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -379,10 +379,10 @@
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool MediaElementSession::allowsAlternateFullscreen(const HTMLMediaElement& element) const
</del><ins>+bool MediaElementSession::allowsPictureInPicture(const HTMLMediaElement& element) const
</ins><span class="cx"> {
</span><span class="cx"> Settings* settings = element.document().settings();
</span><del>- return settings && settings->allowsAlternateFullscreen();
</del><ins>+ return settings && settings->allowsPictureInPictureMediaPlayback();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaElementSessionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaElementSession.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaElementSession.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/html/MediaElementSession.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> bool requiresFullscreenForVideoPlayback(const HTMLMediaElement&) const;
</span><del>- WEBCORE_EXPORT bool allowsAlternateFullscreen(const HTMLMediaElement&) const;
</del><ins>+ WEBCORE_EXPORT bool allowsPictureInPicture(const HTMLMediaElement&) const;
</ins><span class="cx"> MediaPlayer::Preload effectivePreloadForElement(const HTMLMediaElement&) const;
</span><span class="cx">
</span><span class="cx"> void mediaEngineUpdated(const HTMLMediaElement&);
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/page/Settings.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx"> static const bool defaultScrollingTreeIncludesFrames = false;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-static const bool defaultAllowsAlternateFullscreen = true;
</del><ins>+static const bool defaultAllowsPictureInPictureMediaPlayback = true;
</ins><span class="cx">
</span><span class="cx"> static const double defaultIncrementalRenderingSuppressionTimeoutInSeconds = 5;
</span><span class="cx"> #if USE(UNIFIED_TEXT_CHECKING)
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.in (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.in        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/page/Settings.in        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> requiresUserGestureForMediaPlayback initial=defaultRequiresUserGestureForMediaPlayback
</span><span class="cx"> audioPlaybackRequiresUserGesture initial=defaultAudioPlaybackRequiresUserGesture
</span><span class="cx"> allowsInlineMediaPlayback initial=defaultAllowsInlineMediaPlayback
</span><del>-allowsAlternateFullscreen initial=defaultAllowsAlternateFullscreen
</del><ins>+allowsPictureInPictureMediaPlayback initial=defaultAllowsPictureInPictureMediaPlayback
</ins><span class="cx"> passwordEchoEnabled initial=false
</span><span class="cx"> suppressesIncrementalRendering initial=false
</span><span class="cx"> incrementalRenderingSuppressionTimeoutInSeconds type=double, initial=defaultIncrementalRenderingSuppressionTimeoutInSeconds
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayerEnumsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayerEnums.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayerEnums.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayerEnums.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> enum {
</span><span class="cx"> VideoFullscreenModeNone = 0,
</span><span class="cx"> VideoFullscreenModeStandard = 1 << 0,
</span><del>- VideoFullscreenModeOptimized = 1 << 1,
</del><ins>+ VideoFullscreenModePictureInPicture = 1 << 1,
</ins><span class="cx"> };
</span><span class="cx"> typedef uint32_t VideoFullscreenMode;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -693,8 +693,8 @@
</span><span class="cx"> [m_videoInlineLayer insertSublayer:m_videoLayer.get() atIndex:0];
</span><span class="cx"> [m_videoLayer setFrame:m_videoInlineLayer.get().bounds];
</span><span class="cx"> }
</span><del>- if ([m_videoLayer respondsToSelector:@selector(setEnterOptimizedFullscreenModeEnabled:)])
- [m_videoLayer setEnterOptimizedFullscreenModeEnabled:(player()->fullscreenMode() & MediaPlayer::VideoFullscreenModeOptimized)];
</del><ins>+ if ([m_videoLayer respondsToSelector:@selector(setPIPModeEnabled:)])
+ [m_videoLayer setPIPModeEnabled:(player()->fullscreenMode() & MediaPlayer::VideoFullscreenModePictureInPicture)];
</ins><span class="cx"> #else
</span><span class="cx"> [m_videoLayer setFrame:CGRectMake(0, 0, defaultSize.width(), defaultSize.height())];
</span><span class="cx"> #endif
</span><span class="lines">@@ -1186,8 +1186,8 @@
</span><span class="cx">
</span><span class="cx"> void MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode(MediaPlayer::VideoFullscreenMode mode)
</span><span class="cx"> {
</span><del>- if (m_videoLayer && [m_videoLayer respondsToSelector:@selector(setEnterOptimizedFullscreenModeEnabled:)])
- [m_videoLayer setEnterOptimizedFullscreenModeEnabled:(mode & MediaPlayer::VideoFullscreenModeOptimized)];
</del><ins>+ if (m_videoLayer && [m_videoLayer respondsToSelector:@selector(setPIPModeEnabled:)])
+ [m_videoLayer setPIPModeEnabled:(mode & MediaPlayer::VideoFullscreenModePictureInPicture)];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> NSArray *MediaPlayerPrivateAVFoundationObjC::timedMetadata() const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenControllerAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -518,11 +518,11 @@
</span><span class="cx"> m_model->setVideoElement(m_videoElement.get());
</span><span class="cx"> m_videoFullscreenLayer = [CALayer layer];
</span><span class="cx">
</span><del>- bool allowsAlternateFullscreen = m_videoElement->mediaSession().allowsAlternateFullscreen(*m_videoElement.get());
</del><ins>+ bool allowsPictureInPicture = m_videoElement->mediaSession().allowsPictureInPicture(*m_videoElement.get());
</ins><span class="cx"> IntRect videoElementClientRect = m_videoElement->clientRect();
</span><span class="cx">
</span><del>- dispatch_async(dispatch_get_main_queue(), [strongThis, this, videoElementClientRect, viewRef, mode, allowsAlternateFullscreen] {
- m_interface->setupFullscreen(*m_videoFullscreenLayer.get(), videoElementClientRect, viewRef.get(), mode, allowsAlternateFullscreen);
</del><ins>+ dispatch_async(dispatch_get_main_queue(), [strongThis, this, videoElementClientRect, viewRef, mode, allowsPictureInPicture] {
+ m_interface->setupFullscreen(*m_videoFullscreenLayer.get(), videoElementClientRect, viewRef.get(), mode, allowsPictureInPicture);
</ins><span class="cx"> });
</span><span class="cx"> });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKith"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> WEBCORE_EXPORT virtual void setLegibleMediaSelectionOptions(const Vector<WTF::String>& options, uint64_t selectedIndex) override;
</span><span class="cx"> WEBCORE_EXPORT virtual void setExternalPlayback(bool enabled, ExternalPlaybackTargetType, WTF::String localizedDeviceName) override;
</span><span class="cx">
</span><del>- WEBCORE_EXPORT virtual void setupFullscreen(PlatformLayer&, const IntRect& initialRect, UIView *, HTMLMediaElementEnums::VideoFullscreenMode, bool allowOptimizedFullscreen);
</del><ins>+ WEBCORE_EXPORT virtual void setupFullscreen(PlatformLayer&, const IntRect& initialRect, UIView *, HTMLMediaElementEnums::VideoFullscreenMode, bool allowsPictureInPicturePlayback);
</ins><span class="cx"> WEBCORE_EXPORT virtual void enterFullscreen();
</span><span class="cx"> WEBCORE_EXPORT virtual void exitFullscreen(const IntRect& finalRect);
</span><span class="cx"> WEBCORE_EXPORT virtual void cleanupFullscreen();
</span><span class="lines">@@ -100,17 +100,16 @@
</span><span class="cx"> WEBCORE_EXPORT virtual void preparedToReturnToInline(bool visible, const IntRect& inlineRect);
</span><span class="cx">
</span><span class="cx"> HTMLMediaElementEnums::VideoFullscreenMode mode() const { return m_mode; }
</span><del>- bool allowOptimizedFullscreen() const { return m_allowOptimizedFullscreen; }
- void setIsOptimized(bool);
- WEBCORE_EXPORT bool mayAutomaticallyShowVideoOptimized() const;
</del><ins>+ bool allowsPictureInPicturePlayback() const { return m_allowsPictureInPicturePlayback; }
+ WEBCORE_EXPORT bool mayAutomaticallyShowVideoPictureInPicture() const;
</ins><span class="cx"> void fullscreenMayReturnToInline(std::function<void(bool)> callback);
</span><span class="cx">
</span><del>- void willStartOptimizedFullscreen();
- void didStartOptimizedFullscreen();
- void failedToStartOptimizedFullscreen();
- void willStopOptimizedFullscreen();
- void didStopOptimizedFullscreen();
- void prepareForOptimizedFullscreenStopWithCompletionHandler(void (^)(BOOL));
</del><ins>+ void willStartPictureInPicture();
+ void didStartPictureInPicture();
+ void failedToStartPictureInPicture();
+ void willStopPictureInPicture();
+ void didStopPictureInPicture();
+ void prepareForPictureInPictureStopWithCompletionHandler(void (^)(BOOL));
</ins><span class="cx">
</span><span class="cx"> void setMode(HTMLMediaElementEnums::VideoFullscreenMode);
</span><span class="cx"> void clearMode(HTMLMediaElementEnums::VideoFullscreenMode);
</span><span class="lines">@@ -120,7 +119,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> WEBCORE_EXPORT WebVideoFullscreenInterfaceAVKit();
</span><span class="cx"> void beginSession();
</span><del>- void enterFullscreenOptimized();
</del><ins>+ void enterPictureInPicture();
</ins><span class="cx"> void enterFullscreenStandard();
</span><span class="cx">
</span><span class="cx"> RetainPtr<WebAVPlayerController> m_playerController;
</span><span class="lines">@@ -138,7 +137,7 @@
</span><span class="cx"> RetainPtr<UIWindow> m_parentWindow;
</span><span class="cx"> HTMLMediaElementEnums::VideoFullscreenMode m_mode { HTMLMediaElementEnums::VideoFullscreenModeNone };
</span><span class="cx"> std::function<void(bool)> m_prepareToInlineCallback;
</span><del>- bool m_allowOptimizedFullscreen { false };
</del><ins>+ bool m_allowsPictureInPicturePlayback { false };
</ins><span class="cx"> bool m_exitRequested { false };
</span><span class="cx"> bool m_exitCompleted { false };
</span><span class="cx"> bool m_enterRequested { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -191,35 +191,35 @@
</span><span class="cx"> return self.playerControllerProxy;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewControllerWillStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController
</del><ins>+- (void)playerViewControllerWillStartPictureInPicture:(AVPlayerViewController *)playerViewController
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><del>- self.fullscreenInterface->willStartOptimizedFullscreen();
</del><ins>+ self.fullscreenInterface->willStartPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewControllerDidStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController
</del><ins>+- (void)playerViewControllerDidStartPictureInPicture:(AVPlayerViewController *)playerViewController
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><del>- self.fullscreenInterface->didStartOptimizedFullscreen();
</del><ins>+ self.fullscreenInterface->didStartPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewControllerFailedToStartOptimizedFullscreen:(AVPlayerViewController *)playerViewController withError:(NSError *)error
</del><ins>+- (void)playerViewControllerFailedToStartPictureInPicture:(AVPlayerViewController *)playerViewController withError:(NSError *)error
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><span class="cx"> UNUSED_PARAM(error);
</span><del>- self.fullscreenInterface->failedToStartOptimizedFullscreen();
</del><ins>+ self.fullscreenInterface->failedToStartPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewControllerWillStopOptimizedFullscreen:(AVPlayerViewController *)playerViewController
</del><ins>+- (void)playerViewControllerWillStopPictureInPicture:(AVPlayerViewController *)playerViewController
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><del>- self.fullscreenInterface->willStopOptimizedFullscreen();
</del><ins>+ self.fullscreenInterface->willStopPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewControllerDidStopOptimizedFullscreen:(AVPlayerViewController *)playerViewController
</del><ins>+- (void)playerViewControllerDidStopPictureInPicture:(AVPlayerViewController *)playerViewController
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><del>- self.fullscreenInterface->didStopOptimizedFullscreen();
</del><ins>+ self.fullscreenInterface->didStopPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (BOOL)playerViewController:(AVPlayerViewController *)playerViewController shouldExitFullScreenWithReason:(AVPlayerViewControllerExitFullScreenReason)reason
</span><span class="lines">@@ -236,10 +236,10 @@
</span><span class="cx"> return NO;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler
</del><ins>+- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler
</ins><span class="cx"> {
</span><span class="cx"> UNUSED_PARAM(playerViewController);
</span><del>- self.fullscreenInterface->prepareForOptimizedFullscreenStopWithCompletionHandler(completionHandler);
</del><ins>+ self.fullscreenInterface->prepareForPictureInPictureStopWithCompletionHandler(completionHandler);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)play:(id)sender
</span><span class="lines">@@ -547,9 +547,9 @@
</span><span class="cx"> return [NSSet setWithObjects:@"externalPlaybackActive", nil];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (BOOL)isOptimizedFullscreenPossible
</del><ins>+- (BOOL)isPictureInPicturePossible
</ins><span class="cx"> {
</span><del>- return self.fullscreenInterface->allowOptimizedFullscreen();
</del><ins>+ return self.fullscreenInterface->allowsPictureInPicturePlayback();
</ins><span class="cx"> }
</span><span class="cx"> @end
</span><span class="cx">
</span><span class="lines">@@ -876,12 +876,12 @@
</span><span class="cx"> [m_videoLayerContainer.get() setHidden:enabled];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer& videoLayer, const WebCore::IntRect& initialRect, UIView* parentView, HTMLMediaElementEnums::VideoFullscreenMode mode, bool allowOptimizedFullscreen)
</del><ins>+void WebVideoFullscreenInterfaceAVKit::setupFullscreen(PlatformLayer& videoLayer, const WebCore::IntRect& initialRect, UIView* parentView, HTMLMediaElementEnums::VideoFullscreenMode mode, bool allowsPictureInPicturePlayback)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(mode != HTMLMediaElementEnums::VideoFullscreenModeNone);
</span><span class="cx"> LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::setupFullscreen(%p)", this);
</span><span class="cx">
</span><del>- m_allowOptimizedFullscreen = allowOptimizedFullscreen;
</del><ins>+ m_allowsPictureInPicturePlayback = allowsPictureInPicturePlayback;
</ins><span class="cx">
</span><span class="cx"> [CATransaction begin];
</span><span class="cx"> [CATransaction setDisableActions:YES];
</span><span class="lines">@@ -919,7 +919,7 @@
</span><span class="cx"> [m_playerViewController setShowsPlaybackControls:NO];
</span><span class="cx"> [m_playerViewController setPlayerController:(AVPlayerController *)m_playerController.get()];
</span><span class="cx"> [m_playerViewController setDelegate:m_playerController.get()];
</span><del>- [m_playerViewController setAllowsOptimizedFullscreen:allowOptimizedFullscreen];
</del><ins>+ [m_playerViewController setAllowsPictureInPicturePlayback:m_allowsPictureInPicturePlayback];
</ins><span class="cx">
</span><span class="cx"> [m_videoLayerContainer setPlayerViewController:m_playerViewController.get()];
</span><span class="cx">
</span><span class="lines">@@ -951,22 +951,22 @@
</span><span class="cx"> m_enterRequested = true;
</span><span class="cx">
</span><span class="cx"> [m_videoLayerContainer setBackgroundColor:[[getUIColorClass() blackColor] CGColor]];
</span><del>- if (mode() == HTMLMediaElementEnums::VideoFullscreenModeOptimized)
- enterFullscreenOptimized();
</del><ins>+ if (mode() == HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)
+ enterPictureInPicture();
</ins><span class="cx"> else if (mode() == HTMLMediaElementEnums::VideoFullscreenModeStandard)
</span><span class="cx"> enterFullscreenStandard();
</span><span class="cx"> else
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::enterPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::enterPictureInPicture(%p)", this);
</ins><span class="cx">
</span><del>- if ([m_playerViewController isOptimizedFullscreenPossible])
- [m_playerViewController startOptimizedFullscreen];
</del><ins>+ if ([m_playerViewController isPictureInPicturePossible])
+ [m_playerViewController startPictureInPicture];
</ins><span class="cx"> else
</span><del>- failedToStartOptimizedFullscreen();
</del><ins>+ failedToStartPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard()
</span><span class="lines">@@ -1004,14 +1004,14 @@
</span><span class="cx"> [[m_playerViewController view] layoutIfNeeded];
</span><span class="cx">
</span><span class="cx">
</span><del>- if (isMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized)) {
</del><ins>+ if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture)) {
</ins><span class="cx"> [m_window setHidden:NO];
</span><del>- [m_playerViewController stopOptimizedFullscreen];
- } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized | HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
</del><ins>+ [m_playerViewController stopPictureInPicture];
+ } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture | HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
</ins><span class="cx"> RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
</span><span class="cx"> [m_playerViewController exitFullScreenAnimated:NO completionHandler:[strongThis, this] (BOOL, NSError*) {
</span><span class="cx"> [m_window setHidden:NO];
</span><del>- [m_playerViewController stopOptimizedFullscreen];
</del><ins>+ [m_playerViewController stopPictureInPicture];
</ins><span class="cx"> }];
</span><span class="cx"> } else if (isMode(HTMLMediaElementEnums::VideoFullscreenModeStandard)) {
</span><span class="cx"> RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
</span><span class="lines">@@ -1054,8 +1054,8 @@
</span><span class="cx"> [m_playerViewController setDelegate:nil];
</span><span class="cx"> [m_playerViewController setPlayerController:nil];
</span><span class="cx">
</span><del>- if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized))
- [m_playerViewController stopOptimizedFullscreen];
</del><ins>+ if (hasMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture))
+ [m_playerViewController stopPictureInPicture];
</ins><span class="cx"> if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
</span><span class="cx"> [m_playerViewController exitFullScreenAnimated:NO completionHandler:[] (BOOL, NSError *) { }];
</span><span class="cx">
</span><span class="lines">@@ -1099,7 +1099,7 @@
</span><span class="cx"> if (!m_enterRequested)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized))
</del><ins>+ if (hasMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen(%p)", this);
</span><span class="lines">@@ -1127,7 +1127,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized() const
</del><ins>+bool WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture() const
</ins><span class="cx"> {
</span><span class="cx"> return [m_playerController isPlaying] && m_mode == HTMLMediaElementEnums::VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported();
</span><span class="cx"> }
</span><span class="lines">@@ -1139,17 +1139,17 @@
</span><span class="cx"> m_fullscreenChangeObserver->fullscreenMayReturnToInline();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen(%p)", this);
- setMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture(%p)", this);
+ setMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
</ins><span class="cx">
</span><span class="cx"> if (!hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
</span><span class="cx"> fullscreenMayReturnToInline([strongThis, this](bool visible) {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen - lambda(%p) - visible(%s)", this, boolString(visible));
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture - lambda(%p) - visible(%s)", this, boolString(visible));
</ins><span class="cx">
</span><span class="cx"> if (!visible) {
</span><span class="cx"> [m_window setHidden:YES];
</span><span class="lines">@@ -1167,9 +1167,9 @@
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture(%p)", this);
</ins><span class="cx"> [m_playerViewController setShowsPlaybackControls:YES];
</span><span class="cx"> [m_window setHidden:YES];
</span><span class="cx">
</span><span class="lines">@@ -1177,9 +1177,9 @@
</span><span class="cx"> m_fullscreenChangeObserver->didEnterFullscreen();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::failedToStartOptimizedFullscreen(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture(%p)", this);
</ins><span class="cx"> [m_playerViewController setShowsPlaybackControls:YES];
</span><span class="cx">
</span><span class="cx"> if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
</span><span class="lines">@@ -1194,18 +1194,18 @@
</span><span class="cx"> m_videoFullscreenModel->requestExitFullscreen();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture(%p)", this);
</ins><span class="cx"> [m_window setHidden:NO];
</span><span class="cx">
</span><span class="cx"> if (m_videoFullscreenModel)
</span><span class="cx"> m_videoFullscreenModel->requestExitFullscreen();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen()
</del><ins>+void WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture()
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture(%p)", this);
</ins><span class="cx"> if (hasMode(HTMLMediaElementEnums::VideoFullscreenModeStandard))
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -1214,20 +1214,20 @@
</span><span class="cx"> [m_videoLayerContainer setBackgroundColor:[[getUIColorClass() clearColor] CGColor]];
</span><span class="cx"> [[m_playerViewController view] setBackgroundColor:[getUIColorClass() clearColor]];
</span><span class="cx">
</span><del>- clearMode(HTMLMediaElementEnums::VideoFullscreenModeOptimized);
</del><ins>+ clearMode(HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
</ins><span class="cx"> [m_window setHidden:YES];
</span><span class="cx">
</span><span class="cx"> if (m_fullscreenChangeObserver)
</span><span class="cx"> m_fullscreenChangeObserver->didExitFullscreen();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler(void (^completionHandler)(BOOL restored))
</del><ins>+void WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler(void (^completionHandler)(BOOL restored))
</ins><span class="cx"> {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler(%p)", this);
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler(%p)", this);
</ins><span class="cx"> RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
</span><span class="cx"> RetainPtr<id> strongCompletionHandler = adoptNS([completionHandler copy]);
</span><span class="cx"> fullscreenMayReturnToInline([strongThis, strongCompletionHandler](bool restored) {
</span><del>- LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler lambda(%p) - restored(%s)", strongThis.get(), boolString(restored));
</del><ins>+ LOG(Fullscreen, "WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler lambda(%p) - restored(%s)", strongThis.get(), boolString(restored));
</ins><span class="cx"> void (^completionHandler)(BOOL restored) = strongCompletionHandler.get();
</span><span class="cx"> completionHandler(restored);
</span><span class="cx"> });
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspicocoaAVKitSPIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/spi/cocoa/AVKitSPI.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/cocoa/AVKitSPI.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/spi/cocoa/AVKitSPI.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -78,20 +78,18 @@
</span><span class="cx"> AVPlayerViewControllerExitFullScreenReasonRemoteControlStopEventReceived = 3,
</span><span class="cx"> };
</span><span class="cx"> - (BOOL)playerViewController:(AVPlayerViewController *)playerViewController shouldExitFullScreenWithReason:(AVPlayerViewControllerExitFullScreenReason)reason;
</span><del>-- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler;
</del><ins>+- (void)playerViewController:(AVPlayerViewController *)playerViewController restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(void (^)(BOOL restored))completionHandler;
</ins><span class="cx"> @end
</span><span class="cx">
</span><del>-typedef NSInteger AVPlayerViewControllerOptimizedFullscreenStopReason;
-
</del><span class="cx"> @interface AVPlayerViewController (Details)
</span><span class="cx"> - (instancetype)initWithVideoLayer:(CALayer <AVVideoLayer> *)videoLayer;
</span><span class="cx"> - (void)enterFullScreenAnimated:(BOOL)animated completionHandler:(void (^)(BOOL success, NSError *))completionHandler;
</span><span class="cx"> - (void)exitFullScreenAnimated:(BOOL)animated completionHandler:(void (^)(BOOL success, NSError *))completionHandler;
</span><span class="cx">
</span><del>-- (BOOL)isOptimizedFullscreenPossible;
-- (void)startOptimizedFullscreen;
-- (void)stopOptimizedFullscreen;
-- (void)setAllowsOptimizedFullscreen:(BOOL)allowsOptimizedFullscreen;
</del><ins>+- (BOOL)isPictureInPicturePossible;
+- (void)startPictureInPicture;
+- (void)stopPictureInPicture;
+- (void)setAllowsPictureInPicturePlayback:(BOOL)allow;
</ins><span class="cx">
</span><span class="cx"> @property (nonatomic, strong) AVPlayerController *playerController;
</span><span class="cx"> @property (nonatomic, weak) id <AVPlayerViewControllerDelegate> delegate;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspimacAVFoundationSPIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/spi/mac/AVFoundationSPI.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/mac/AVFoundationSPI.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebCore/platform/spi/mac/AVFoundationSPI.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -66,8 +66,8 @@
</span><span class="cx">
</span><span class="cx"> #if !HAVE(AVKIT) || !USE(APPLE_INTERNAL_SDK) || __IPHONE_OS_VERSION_MIN_REQUIRED < 90000
</span><span class="cx">
</span><del>-@interface AVPlayerLayer (AVPlayerLayerOptimizedFullscreenModeSupportPrivate)
-- (void)setEnterOptimizedFullscreenModeEnabled:(BOOL)flag;
</del><ins>+@interface AVPlayerLayer (AVPlayerLayerPictureInPictureModeSupportPrivate)
+- (void)setPIPModeEnabled:(BOOL)flag;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2015-06-18 Jon Lee <jonlee@apple.com>
+
+ Update AVKit usage of pip
+ https://bugs.webkit.org/show_bug.cgi?id=146095
+ <rdar://problem/21386853>
+
+ Reviewed by Eric Carlson.
+
+ - Rename preference key
+ - Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ (-[WebPreferences allowsAlternateFullscreen]): Call allowsPictureInPictureMediaPlayback.
+ (-[WebPreferences setAllowsAlternateFullscreen:]):
+ (-[WebPreferences allowsPictureInPictureMediaPlayback]): Added.
+ (-[WebPreferences setAllowsPictureInPictureMediaPlayback:]):
+ * WebView/WebPreferencesPrivate.h:
+ * WebView/WebView.mm:
+
</ins><span class="cx"> 2015-06-18 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> Remove shouldInterruptJavaScript
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> #define WebKitHixie76WebSocketProtocolEnabledKey @"WebKitHixie76WebSocketProtocolEnabled"
</span><span class="cx"> #define WebKitRequiresUserGestureForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackRequiresUserGesture"
</span><span class="cx"> #define WebKitAllowsInlineMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsInline"
</span><del>-#define WebKitAllowsAlternateFullscreenPreferenceKey @"WebKitAllowsAlternateFullscreen"
</del><ins>+#define WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey @"WebKitAllowsPictureInPictureMediaPlayback"
</ins><span class="cx"> #define WebKitAllowsAirPlayForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsAirPlay"
</span><span class="cx"> #define WebKitMockScrollbarsEnabledPreferenceKey @"WebKitMockScrollbarsEnabled"
</span><span class="cx"> #define WebKitShouldDisplaySubtitlesPreferenceKey @"WebKitShouldDisplaySubtitles"
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -546,7 +546,7 @@
</span><span class="cx"> #if ENABLE(WIRELESS_TARGET_PLAYBACK)
</span><span class="cx"> [NSNumber numberWithBool:YES], WebKitAllowsAirPlayForMediaPlaybackPreferenceKey,
</span><span class="cx"> #endif
</span><del>- [NSNumber numberWithBool:YES], WebKitAllowsAlternateFullscreenPreferenceKey,
</del><ins>+ [NSNumber numberWithBool:YES], WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey,
</ins><span class="cx"> [NSNumber numberWithBool:YES], WebKitRequestAnimationFrameEnabledPreferenceKey,
</span><span class="cx"> [NSNumber numberWithBool:NO], WebKitWantsBalancedSetDefersLoadingBehaviorKey,
</span><span class="cx"> [NSNumber numberWithBool:NO], WebKitDiagnosticLoggingEnabledKey,
</span><span class="lines">@@ -2197,14 +2197,24 @@
</span><span class="cx">
</span><span class="cx"> - (BOOL)allowsAlternateFullscreen
</span><span class="cx"> {
</span><del>- return [self _boolValueForKey:WebKitAllowsAlternateFullscreenPreferenceKey];
</del><ins>+ return [self allowsPictureInPictureMediaPlayback];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)setAllowsAlternateFullscreen:(BOOL)flag
</span><span class="cx"> {
</span><del>- [self _setBoolValue:flag forKey:WebKitAllowsAlternateFullscreenPreferenceKey];
</del><ins>+ [self setAllowsPictureInPictureMediaPlayback:flag];
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+- (BOOL)allowsPictureInPictureMediaPlayback
+{
+ return [self _boolValueForKey:WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey];
+}
+
+- (void)setAllowsPictureInPictureMediaPlayback:(BOOL)flag
+{
+ [self _setBoolValue:flag forKey:WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey];
+}
+
</ins><span class="cx"> - (BOOL)mockScrollbarsEnabled
</span><span class="cx"> {
</span><span class="cx"> return [self _boolValueForKey:WebKitMockScrollbarsEnabledPreferenceKey];
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -253,6 +253,9 @@
</span><span class="cx"> - (void)setAllowsAlternateFullscreen:(BOOL)flag;
</span><span class="cx"> - (BOOL)allowsAlternateFullscreen;
</span><span class="cx">
</span><ins>+- (void)setAllowsPictureInPictureMediaPlayback:(BOOL)flag;
+- (BOOL)allowsPictureInPictureMediaPlayback;
+
</ins><span class="cx"> - (NSString *)pictographFontFamily;
</span><span class="cx"> - (void)setPictographFontFamily:(NSString *)family;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -851,11 +851,11 @@
</span><span class="cx"> return shouldAllowDisplayAndRunningOfInsecureContent;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static bool shouldAllowAlternateFullscreen()
</del><ins>+static bool shouldAllowPictureInPictureMediaPlayback()
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
</span><del>- static bool shouldAllowAlternateFullscreen = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
- return shouldAllowAlternateFullscreen;
</del><ins>+ static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
+ return shouldAllowPictureInPictureMediaPlayback;
</ins><span class="cx"> #else
</span><span class="cx"> return false;
</span><span class="cx"> #endif
</span><span class="lines">@@ -2294,7 +2294,7 @@
</span><span class="cx">
</span><span class="cx"> settings.setRequiresUserGestureForMediaPlayback([preferences mediaPlaybackRequiresUserGesture]);
</span><span class="cx"> settings.setAllowsInlineMediaPlayback([preferences mediaPlaybackAllowsInline]);
</span><del>- settings.setAllowsAlternateFullscreen([preferences allowsAlternateFullscreen] && shouldAllowAlternateFullscreen());
</del><ins>+ settings.setAllowsPictureInPictureMediaPlayback([preferences allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback());
</ins><span class="cx"> settings.setSuppressesIncrementalRendering([preferences suppressesIncrementalRendering]);
</span><span class="cx"> settings.setBackspaceKeyNavigationEnabled([preferences backspaceKeyNavigationEnabled]);
</span><span class="cx"> settings.setWantsBalancedSetDefersLoadingBehavior([preferences wantsBalancedSetDefersLoadingBehavior]);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2015-06-18 Jon Lee <jonlee@apple.com>
+
+ Update AVKit usage of pip
+ https://bugs.webkit.org/show_bug.cgi?id=146095
+ <rdar://problem/21386853>
+
+ Reviewed by Eric Carlson.
+
+ - Rename preference key
+ - Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback
+
+ * Shared/WebPreferencesDefinitions.h:
+ * UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls.
+ (WKPreferencesSetAllowsAlternateFullscreen): Deleted.
+ (WKPreferencesGetAllowsAlternateFullscreen): Deleted.
+ * UIProcess/API/C/WKPreferencesRefPrivate.h:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _isShowingVideoPictureInPicture]): Renamed.
+ (-[WKWebView _isShowingVideoOptimized]): Deleted.
+ (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed.
+ (-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted.
+ (shouldAllowPictureInPictureMediaPlayback): Renamed.
+ (shouldAllowAlternateFullscreen): Deleted.
+ * UIProcess/API/Cocoa/WKWebViewInternal.h:
+ * UIProcess/ios/PageClientImplIOS.mm:
+ * UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables.
+ * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
+ * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
+ (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed.
+ (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted.
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ * WebProcess/WebPage/WebPage.cpp:
+ * WebProcess/ios/WebVideoFullscreenManager.mm:
+
</ins><span class="cx"> 2015-06-18 Jeremy Jones <jeremyj@apple.com>
</span><span class="cx">
</span><span class="cx"> Fix crash when entering fullscreen during exit fullscreen animation.
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesDefinitionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx"> macro(AVFoundationEnabled, isAVFoundationEnabled, Bool, bool, true) \
</span><span class="cx"> macro(RequiresUserGestureForMediaPlayback, requiresUserGestureForMediaPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK) \
</span><span class="cx"> macro(AllowsInlineMediaPlayback, allowsInlineMediaPlayback, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK) \
</span><del>- macro(AllowsAlternateFullscreen, allowsAlternateFullscreen, Bool, bool, true) \
</del><ins>+ macro(AllowsPictureInPictureMediaPlayback, allowsPictureInPictureMediaPlayback, Bool, bool, true) \
</ins><span class="cx"> macro(AllowsAirPlayForMediaPlayback, allowsAirPlayForMediaPlayback, Bool, bool, true) \
</span><span class="cx"> macro(InspectorStartsAttached, inspectorStartsAttached, Bool, bool, true) \
</span><span class="cx"> macro(ShowsToolTipOverTruncatedText, showsToolTipOverTruncatedText, Bool, bool, false) \
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -748,16 +748,6 @@
</span><span class="cx"> return toImpl(preferencesRef)->allowsInlineMediaPlayback();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WKPreferencesSetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef, bool flag)
-{
- toImpl(preferencesRef)->setAllowsAlternateFullscreen(flag);
-}
-
-bool WKPreferencesGetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef)
-{
- return toImpl(preferencesRef)->allowsAlternateFullscreen();
-}
-
</del><span class="cx"> void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag)
</span><span class="cx"> {
</span><span class="cx"> toImpl(preferencesRef)->setShowsToolTipOverTruncatedText(flag);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -179,10 +179,6 @@
</span><span class="cx"> WK_EXPORT void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef);
</span><span class="cx">
</span><del>-// Defaults to true.
-WK_EXPORT void WKPreferencesSetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef, bool flag);
-WK_EXPORT bool WKPreferencesGetAllowsAlternateFullscreen(WKPreferencesRef preferencesRef);
-
</del><span class="cx"> // Defaults to false.
</span><span class="cx"> WK_EXPORT void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -242,15 +242,15 @@
</span><span class="cx"> return deviceOrientationForUIInterfaceOrientation([[UIApplication sharedApplication] statusBarOrientation]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (BOOL)_isShowingVideoOptimized
</del><ins>+- (BOOL)_isShowingVideoPictureInPicture
</ins><span class="cx"> {
</span><span class="cx"> if (!_page || !_page->videoFullscreenManager())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return _page->videoFullscreenManager()->hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenModeOptimized);
</del><ins>+ return _page->videoFullscreenManager()->hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenModePictureInPicture);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-- (BOOL)_mayAutomaticallyShowVideoOptimized
</del><ins>+- (BOOL)_mayAutomaticallyShowVideoPictureInPicture
</ins><span class="cx"> {
</span><span class="cx"> #if (__IPHONE_OS_VERSION_MIN_REQUIRED <= 80200) || !HAVE(AVKIT)
</span><span class="cx"> return false;
</span><span class="lines">@@ -258,15 +258,15 @@
</span><span class="cx"> if (!_page || !_page->videoFullscreenManager())
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return _page->videoFullscreenManager()->mayAutomaticallyShowVideoOptimized();
</del><ins>+ return _page->videoFullscreenManager()->mayAutomaticallyShowVideoPictureInPicture();
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static bool shouldAllowAlternateFullscreen()
</del><ins>+static bool shouldAllowPictureInPictureMediaPlayback()
</ins><span class="cx"> {
</span><span class="cx"> #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
</span><del>- static bool shouldAllowAlternateFullscreen = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
- return shouldAllowAlternateFullscreen;
</del><ins>+ static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
+ return shouldAllowPictureInPictureMediaPlayback;
</ins><span class="cx"> #else
</span><span class="cx"> return false;
</span><span class="cx"> #endif
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx"> webPageConfiguration.alwaysRunsAtForegroundPriority = [_configuration _alwaysRunsAtForegroundPriority];
</span><span class="cx">
</span><span class="cx"> webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
</span><del>- webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsAlternateFullscreenKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowAlternateFullscreen()));
</del><ins>+ webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback()));
</ins><span class="cx"> webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -98,8 +98,8 @@
</span><span class="cx"> - (void)_didFinishLoadForMainFrame;
</span><span class="cx"> - (void)_didSameDocumentNavigationForMainFrame:(WebKit::SameDocumentNavigationType)navigationType;
</span><span class="cx">
</span><del>-- (BOOL)_isShowingVideoOptimized;
-- (BOOL)_mayAutomaticallyShowVideoOptimized;
</del><ins>+- (BOOL)_isShowingVideoPictureInPicture;
+- (BOOL)_mayAutomaticallyShowVideoPictureInPicture;
</ins><span class="cx">
</span><span class="cx"> - (void)_updateScrollViewBackground;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -185,10 +185,10 @@
</span><span class="cx"> if (isViewInWindow() && !m_contentView.isBackground)
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- if ([m_webView _isShowingVideoOptimized])
</del><ins>+ if ([m_webView _isShowingVideoPictureInPicture])
</ins><span class="cx"> return true;
</span><span class="cx">
</span><del>- if ([m_webView _mayAutomaticallyShowVideoOptimized])
</del><ins>+ if ([m_webView _mayAutomaticallyShowVideoPictureInPicture])
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> return false;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx">
</span><span class="cx"> void requestHideAndExitFullscreen();
</span><span class="cx"> bool hasMode(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) const;
</span><del>- bool mayAutomaticallyShowVideoOptimized() const;
</del><ins>+ bool mayAutomaticallyShowVideoPictureInPicture() const;
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class WebVideoFullscreenModelContext;
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx"> WebCore::WebVideoFullscreenInterfaceAVKit& ensureInterface(uint64_t contextId);
</span><span class="cx">
</span><span class="cx"> // Messages from WebVideoFullscreenManager
</span><del>- void setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode, bool allowOptimizedFullscreen);
</del><ins>+ void setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode, bool allowsPictureInPicture);
</ins><span class="cx"> void resetMediaState(uint64_t contextId);
</span><span class="cx"> void setCurrentTime(uint64_t contextId, double currentTime, double hostTime);
</span><span class="cx"> void setBufferedTime(uint64_t contextId, double bufferedTime);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> SetExternalPlaybackProperties(uint64_t contextId, bool enabled, uint32_t targetType, String localizedDeviceName)
</span><span class="cx"> SetDuration(uint64_t contextId, double duration)
</span><span class="cx"> SetRate(uint64_t contextId, bool isPlaying, double rate)
</span><del>- SetupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, WebCore::IntRect initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowOptimizedFullscreen)
</del><ins>+ SetupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, WebCore::IntRect initialRect, float hostingScaleFactor, WebCore::HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowsPictureInPicture)
</ins><span class="cx"> EnterFullscreen(uint64_t contextId)
</span><span class="cx"> ExitFullscreen(uint64_t contextId, WebCore::IntRect finalRect)
</span><span class="cx"> CleanupFullscreen(uint64_t contextId)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebVideoFullscreenManagerProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized() const
</del><ins>+bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture() const
</ins><span class="cx"> {
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="lines">@@ -266,10 +266,10 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized() const
</del><ins>+bool WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture() const
</ins><span class="cx"> {
</span><span class="cx"> for (auto& tuple : m_contextMap.values()) {
</span><del>- if (std::get<1>(tuple)->mayAutomaticallyShowVideoOptimized())
</del><ins>+ if (std::get<1>(tuple)->mayAutomaticallyShowVideoPictureInPicture())
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx"> return false;
</span><span class="lines">@@ -306,7 +306,7 @@
</span><span class="cx">
</span><span class="cx"> #pragma mark Messages from WebVideoFullscreenManager
</span><span class="cx">
</span><del>-void WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingDeviceScaleFactor, HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowOptimizedFullscreen)
</del><ins>+void WebVideoFullscreenManagerProxy::setupFullscreenWithID(uint64_t contextId, uint32_t videoLayerID, const WebCore::IntRect& initialRect, float hostingDeviceScaleFactor, HTMLMediaElementEnums::VideoFullscreenMode videoFullscreenMode, bool allowsPictureInPicture)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(videoLayerID);
</span><span class="cx"> RefPtr<WebVideoFullscreenModelContext> model;
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> UIView *parentView = downcast<RemoteLayerTreeDrawingAreaProxy>(*m_page->drawingArea()).remoteLayerTreeHost().rootLayer();
</span><del>- interface->setupFullscreen(*model->layerHost(), initialRect, parentView, videoFullscreenMode, allowOptimizedFullscreen);
</del><ins>+ interface->setupFullscreen(*model->layerHost(), initialRect, parentView, videoFullscreenMode, allowsPictureInPicture);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebVideoFullscreenManagerProxy::resetMediaState(uint64_t contextId)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -2799,7 +2799,7 @@
</span><span class="cx"> settings.setAccelerated2dCanvasEnabled(store.getBoolValueForKey(WebPreferencesKey::accelerated2dCanvasEnabledKey()));
</span><span class="cx"> settings.setRequiresUserGestureForMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForMediaPlaybackKey()));
</span><span class="cx"> settings.setAllowsInlineMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackKey()));
</span><del>- settings.setAllowsAlternateFullscreen(store.getBoolValueForKey(WebPreferencesKey::allowsAlternateFullscreenKey()));
</del><ins>+ settings.setAllowsPictureInPictureMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey()));
</ins><span class="cx"> settings.setMockScrollbarsEnabled(store.getBoolValueForKey(WebPreferencesKey::mockScrollbarsEnabledKey()));
</span><span class="cx"> settings.setHyperlinkAuditingEnabled(store.getBoolValueForKey(WebPreferencesKey::hyperlinkAuditingEnabledKey()));
</span><span class="cx"> settings.setRequestAnimationFrameEnabled(store.getBoolValueForKey(WebPreferencesKey::requestAnimationFrameEnabledKey()));
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessiosWebVideoFullscreenManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm (185726 => 185727)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm        2015-06-18 23:38:55 UTC (rev 185726)
+++ trunk/Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm        2015-06-18 23:42:22 UTC (rev 185727)
</span><span class="lines">@@ -240,9 +240,9 @@
</span><span class="cx"> return;
</span><span class="cx"> interface->setIsAnimating(true);
</span><span class="cx">
</span><del>- bool allowOptimizedFullscreen = videoElement.mediaSession().allowsAlternateFullscreen(videoElement);
</del><ins>+ bool allowsPictureInPicture = videoElement.mediaSession().allowsPictureInPicture(videoElement);
</ins><span class="cx">
</span><del>- m_page->send(Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), clientRectForElement(&videoElement), m_page->deviceScaleFactor(), interface->fullscreenMode(), allowOptimizedFullscreen), m_page->pageID());
</del><ins>+ m_page->send(Messages::WebVideoFullscreenManagerProxy::SetupFullscreenWithID(contextId, interface->layerHostingContext()->contextID(), clientRectForElement(&videoElement), m_page->deviceScaleFactor(), interface->fullscreenMode(), allowsPictureInPicture), m_page->pageID());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebVideoFullscreenManager::exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement& videoElement)
</span></span></pre>
</div>
</div>
</body>
</html>