<!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>[185472] 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/185472">185472</a></dd>
<dt>Author</dt> <dd>jonlee@apple.com</dd>
<dt>Date</dt> <dd>2015-06-11 13:53:49 -0700 (Thu, 11 Jun 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Update media controls JS and CSS to use picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=145827
<rdar://problem/21311576>
Reviewed by Dean Jackson.
Source/WebCore:
* English.lproj/mediaControlsLocalizedStrings.js: Update localized strings.
Add a string for the placeholder text, and for the aria-label of the
placard.
* Modules/mediacontrols/MediaControlsHost.idl: Remove uncalled functions.
* Modules/mediacontrols/MediaControlsHost.h: Also remove optimizedFullscreenSupported(),
which was never used.
* Modules/mediacontrols/MediaControlsHost.cpp: Remove uncalled functions and media part IDs.
(WebCore::MediaControlsHost::enterFullscreenOptimized): Deleted.
(WebCore::MediaControlsHost::mediaUIImageData): Deleted.
* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-picture-in-picture-button): Update pseudo-element name.
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
* Modules/mediacontrols/mediaControlsApple.js: Update global variable name, and classes.
(Controller.prototype.createControls): Update button name. Add aria-label to the placeholder.
(Controller.prototype.updateFullscreenButtons):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.handlePictureInPictureButtonClicked): Update handler names.
(Controller.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
* Modules/mediacontrols/mediaControlsiOS.css: Rename pseudo-element.
(audio::-webkit-media-controls-picture-in-picture-button): Add mask images.
(audio::-webkit-media-controls-picture-in-picture-button:active):
(video::-webkit-media-controls-picture-in-picture-button):
(video::-webkit-media-controls-picture-in-picture-button.return-from-picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture):
(audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture):
(audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.
(video::-webkit-media-controls-optimized-fullscreen-button): Deleted.
(audio::-webkit-media-controls-wireless-playback-status.optimized): Deleted. The placard
pseudo-element should be updated from wireless-playback-status to just playback-status
since it serves both for pip and AirPlay.
(audio::-webkit-media-controls-wireless-playback-text-top.optimized): Deleted.
(audio::-webkit-media-controls-wireless-playback-text-bottom.optimized): Deleted.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.createControls): Update button names.
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.handlePictureInPictureButtonClicked): Update handler name.
(ControllerIOS.prototype.handlePictureInPictureTouchStart):
(ControllerIOS.prototype.handlePictureInPictureTouchEnd):
(ControllerIOS.prototype.handlePictureInPictureTouchCancel):
(ControllerIOS.prototype.handlePresentationModeChange): Remove changes to the inline bg
image style, and rely on the CSS to fill those in. Use localized strings for the placard.
Move the aria-label to createControls().
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchStart): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchEnd): Deleted.
(ControllerIOS.prototype.handleOptimizedFullscreenTouchCancel): Deleted.
* html/HTMLMediaElement.cpp: Remove enterFullscreenOptimized since it is never called.
(WebCore::HTMLMediaElement::enterFullscreenOptimized): Deleted.
* html/HTMLMediaElement.h:
* platform/ios/WebCoreSystemInterfaceIOS.h: Remove wkGetMediaUIImageData.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Remove calls to wkGetMediaUIImageData.
Source/WebKit/mac:
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.
Source/WebKit2:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted GetMediaUIImageData.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreEnglishlprojmediaControlsLocalizedStringsjs">trunk/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsMediaControlsHostidl">trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsmediaControlsApplecss">trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsmediaControlsApplejs">trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsmediaControlsiOScss">trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css</a></li>
<li><a href="#trunkSourceWebCoreModulesmediacontrolsmediaControlsiOSjs">trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementh">trunk/Source/WebCore/html/HTMLMediaElement.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSh">trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm">trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm">trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/ChangeLog        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -1,3 +1,71 @@
</span><ins>+2015-06-11 Jon Lee <jonlee@apple.com>
+
+ Update media controls JS and CSS to use picture-in-picture
+ https://bugs.webkit.org/show_bug.cgi?id=145827
+ <rdar://problem/21311576>
+
+ Reviewed by Dean Jackson.
+
+ * English.lproj/mediaControlsLocalizedStrings.js: Update localized strings.
+ Add a string for the placeholder text, and for the aria-label of the
+ placard.
+
+ * Modules/mediacontrols/MediaControlsHost.idl: Remove uncalled functions.
+ * Modules/mediacontrols/MediaControlsHost.h: Also remove optimizedFullscreenSupported(),
+ which was never used.
+ * Modules/mediacontrols/MediaControlsHost.cpp: Remove uncalled functions and media part IDs.
+ (WebCore::MediaControlsHost::enterFullscreenOptimized): Deleted.
+ (WebCore::MediaControlsHost::mediaUIImageData): Deleted.
+
+ * Modules/mediacontrols/mediaControlsApple.css:
+ (audio::-webkit-media-controls-picture-in-picture-button): Update pseudo-element name.
+ (audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
+ * Modules/mediacontrols/mediaControlsApple.js: Update global variable name, and classes.
+ (Controller.prototype.createControls): Update button name. Add aria-label to the placeholder.
+ (Controller.prototype.updateFullscreenButtons):
+ (Controller.prototype.updateLayoutForDisplayedWidth):
+ (Controller.prototype.handlePictureInPictureButtonClicked): Update handler names.
+ (Controller.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
+
+ * Modules/mediacontrols/mediaControlsiOS.css: Rename pseudo-element.
+ (audio::-webkit-media-controls-picture-in-picture-button): Add mask images.
+ (audio::-webkit-media-controls-picture-in-picture-button:active):
+ (video::-webkit-media-controls-picture-in-picture-button):
+ (video::-webkit-media-controls-picture-in-picture-button.return-from-picture-in-picture):
+ (audio::-webkit-media-controls-wireless-playback-status.picture-in-picture):
+ (audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture):
+ (audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture):
+ (audio::-webkit-media-controls-optimized-fullscreen-button): Deleted.
+ (audio::-webkit-media-controls-optimized-fullscreen-button:active): Deleted.
+ (video::-webkit-media-controls-optimized-fullscreen-button): Deleted.
+ (audio::-webkit-media-controls-wireless-playback-status.optimized): Deleted. The placard
+ pseudo-element should be updated from wireless-playback-status to just playback-status
+ since it serves both for pip and AirPlay.
+ (audio::-webkit-media-controls-wireless-playback-text-top.optimized): Deleted.
+ (audio::-webkit-media-controls-wireless-playback-text-bottom.optimized): Deleted.
+ * Modules/mediacontrols/mediaControlsiOS.js:
+ (ControllerIOS.prototype.createControls): Update button names.
+ (ControllerIOS.prototype.configureInlineControls):
+ (ControllerIOS.prototype.handlePictureInPictureButtonClicked): Update handler name.
+ (ControllerIOS.prototype.handlePictureInPictureTouchStart):
+ (ControllerIOS.prototype.handlePictureInPictureTouchEnd):
+ (ControllerIOS.prototype.handlePictureInPictureTouchCancel):
+ (ControllerIOS.prototype.handlePresentationModeChange): Remove changes to the inline bg
+ image style, and rely on the CSS to fill those in. Use localized strings for the placard.
+ Move the aria-label to createControls().
+ (ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): Deleted.
+ (ControllerIOS.prototype.handleOptimizedFullscreenTouchStart): Deleted.
+ (ControllerIOS.prototype.handleOptimizedFullscreenTouchEnd): Deleted.
+ (ControllerIOS.prototype.handleOptimizedFullscreenTouchCancel): Deleted.
+
+ * html/HTMLMediaElement.cpp: Remove enterFullscreenOptimized since it is never called.
+ (WebCore::HTMLMediaElement::enterFullscreenOptimized): Deleted.
+ * html/HTMLMediaElement.h:
+ * platform/ios/WebCoreSystemInterfaceIOS.h: Remove wkGetMediaUIImageData.
+ * platform/ios/WebCoreSystemInterfaceIOS.mm:
+ * rendering/RenderThemeIOS.mm:
+ (WebCore::RenderThemeIOS::mediaControlsStyleSheet): Remove calls to wkGetMediaUIImageData.
+
</ins><span class="cx"> 2015-06-11 Dean Jackson <dino@apple.com>
</span><span class="cx">
</span><span class="cx"> Add an appearance keyword for wireless playback / airplay icon
</span></span></pre></div>
<a id="trunkSourceWebCoreEnglishlprojmediaControlsLocalizedStringsjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> 'Captions': 'Captions',
</span><span class="cx"> 'Choose Wireless Display': 'Choose Wireless Display',
</span><span class="cx"> 'Display Full Screen': 'Display Full Screen',
</span><del>- 'Display Optimized Full Screen': 'Display Optimized Full Screen',
</del><ins>+ 'Display Picture in Picture': 'Display Picture in Picture',
</ins><span class="cx"> 'Duration': 'Duration',
</span><span class="cx"> 'Elapsed': 'Elapsed',
</span><span class="cx"> 'Error': 'Error',
</span><span class="lines">@@ -31,8 +31,10 @@
</span><span class="cx"> 'Start Playback': 'Start Playback',
</span><span class="cx"> 'Subtitles': 'Subtitles',
</span><span class="cx"> 'Suspended': 'Suspended',
</span><ins>+ 'This video is playing in Picture in Picture': 'This video is playing in Picture in Picture',
</ins><span class="cx"> 'Unmute': 'Unmute',
</span><span class="cx"> 'Video Playback': 'Video Playback',
</span><ins>+ 'Video Playback Placeholder': 'Video Playback Placeholder',
</ins><span class="cx"> 'Volume': 'Volume',
</span><span class="cx"> 'Waiting': 'Waiting'
</span><span class="cx"> };
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -188,14 +188,7 @@
</span><span class="cx"> if (m_textTrackContainer)
</span><span class="cx"> m_textTrackContainer->exitedFullscreen();
</span><span class="cx"> }
</span><del>-
-void MediaControlsHost::enterFullscreenOptimized()
-{
-#if PLATFORM(IOS)
- m_mediaElement->enterFullscreenOptimized();
-#endif
-}
-
</del><ins>+
</ins><span class="cx"> void MediaControlsHost::updateCaptionDisplaySizes()
</span><span class="cx"> {
</span><span class="cx"> if (m_textTrackContainer)
</span><span class="lines">@@ -278,27 +271,6 @@
</span><span class="cx"> m_mediaElement->setMediaControlsDependOnPageScaleFactor(value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String MediaControlsHost::mediaUIImageData(const String& partID) const
-{
-#if PLATFORM(IOS)
- if (partID == "optimized-fullscreen-button")
- return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenButton);
-
- if (partID == "optimized-fullscreen-return-button")
- return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenReturnButton);
-
- if (partID == "optimized-fullscreen-placeholder")
- return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenPlaceholder);
-
- if (partID == "optimized-fullscreen-placeholder-text")
- return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenPlaceholderText);
-#else
- UNUSED_PARAM(partID);
-#endif
-
- return emptyString();
-}
-
</del><span class="cx"> String MediaControlsHost::generateUUID() const
</span><span class="cx"> {
</span><span class="cx"> return createCanonicalUUIDString();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -70,9 +70,6 @@
</span><span class="cx"> void updateCaptionDisplaySizes();
</span><span class="cx"> void enteredFullscreen();
</span><span class="cx"> void exitedFullscreen();
</span><del>- void enterFullscreenOptimized();
- bool optimizedFullscreenSupported();
- String mediaUIImageData(const String&) const;
</del><span class="cx">
</span><span class="cx"> String externalDeviceDisplayName() const;
</span><span class="cx"> String externalDeviceType() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsMediaControlsHostidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -29,13 +29,6 @@
</span><span class="cx"> "tvout"
</span><span class="cx"> };
</span><span class="cx">
</span><del>-enum MediaUIPartID {
- "optimized-fullscreen-button",
- "optimized-fullscreen-return-button",
- "optimized-fullscreen-placeholder",
- "optimized-fullscreen-placeholder-text"
-};
-
</del><span class="cx"> [
</span><span class="cx"> NoInterfaceObject,
</span><span class="cx"> Conditional=MEDIA_CONTROLS_SCRIPT,
</span><span class="lines">@@ -62,8 +55,6 @@
</span><span class="cx"> void updateTextTrackContainer();
</span><span class="cx"> void enteredFullscreen();
</span><span class="cx"> void exitedFullscreen();
</span><del>- void enterFullscreenOptimized();
- DOMString mediaUIImageData(MediaUIPartID partID);
</del><span class="cx">
</span><span class="cx"> DOMString generateUUID();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsmediaControlsApplecss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -437,8 +437,8 @@
</span><span class="cx"> margin-top: 6px;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-video::-webkit-media-controls-optimized-fullscreen-button,
-audio::-webkit-media-controls-optimized-fullscreen-button {
</del><ins>+video::-webkit-media-controls-picture-in-picture-button,
+audio::-webkit-media-controls-picture-in-picture-button {
</ins><span class="cx"> background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" transform="rotate(90,0,0)"><linearGradient id="gradient" x2="0" y2="100%" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="rgb(216, 216, 216)"/><stop offset="0.4375" stop-color="rgb(216, 216, 216)"/><stop offset="0.4375" stop-color="rgb(208, 208, 208)"/><stop offset="0.5" stop-color="rgb(208, 208, 208)"/><stop offset="0.5" stop-color="rgb(200, 200, 200)"/><stop offset="1" stop-color="rgb(208, 208, 208)"/></linearGradient><path d="M 7,8 m 0,6 -2,-2 -2,2 c 0,0 -1,1 -2,0 -1,-1 0,-2 0,-2 l 2,-2 -2,-2 6,0 z" style="fill:url(#gradient) "/><path d="M 8,7 m 0,-6 2,2 2,-2 c
0,0 1,-1 2,0 1,1 0,2 0,2 l -2,2 2,2 -6,0 z" style="fill:url(#gradient) "/></svg>');
</span><span class="cx"> margin: 0 7px;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsmediaControlsApplejs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">
</span><span class="cx"> /* Globals */
</span><span class="cx"> Controller.gSimulateWirelessPlaybackTarget = false; // Used for testing when there are no wireless targets.
</span><del>-Controller.gSimulateOptimizedFullscreenAvailable = false; // Used for testing when optimized fullscreen is not available.
</del><ins>+Controller.gSimulatePictureInPictureAvailable = false; // Used for testing when picture-in-picture is not available.
</ins><span class="cx">
</span><span class="cx"> Controller.prototype = {
</span><span class="cx">
</span><span class="lines">@@ -99,10 +99,10 @@
</span><span class="cx"> list: 'list',
</span><span class="cx"> muteBox: 'mute-box',
</span><span class="cx"> muted: 'muted',
</span><del>- optimized: 'optimized',
</del><span class="cx"> paused: 'paused',
</span><ins>+ pictureInPicture: 'picture-in-picture',
</ins><span class="cx"> playing: 'playing',
</span><del>- returnFromOptimized: 'return-from-optimized',
</del><ins>+ returnFromPictureInPicture: 'return-from-picture-in-picture',
</ins><span class="cx"> selected: 'selected',
</span><span class="cx"> show: 'show',
</span><span class="cx"> small: 'small',
</span><span class="lines">@@ -464,14 +464,15 @@
</span><span class="cx"> fullscreenButton.setAttribute('aria-label', this.UIString('Display Full Screen'));
</span><span class="cx"> this.listenFor(fullscreenButton, 'click', this.handleFullscreenButtonClicked);
</span><span class="cx">
</span><del>- var optimizedFullscreenButton = this.controls.optimizedFullscreenButton = document.createElement('button');
- optimizedFullscreenButton.setAttribute('pseudo', '-webkit-media-controls-optimized-fullscreen-button');
- optimizedFullscreenButton.setAttribute('aria-label', this.UIString('Display Optimized Full Screen'));
- this.listenFor(optimizedFullscreenButton, 'click', this.handleOptimizedFullscreenButtonClicked);
</del><ins>+ var pictureInPictureButton = this.controls.pictureInPictureButton = document.createElement('button');
+ pictureInPictureButton.setAttribute('pseudo', '-webkit-media-controls-picture-in-picture-button');
+ pictureInPictureButton.setAttribute('aria-label', this.UIString('Display Picture in Picture'));
+ this.listenFor(pictureInPictureButton, 'click', this.handlePictureInPictureButtonClicked);
</ins><span class="cx">
</span><span class="cx"> var inlinePlaybackPlaceholder = this.controls.inlinePlaybackPlaceholder = document.createElement('div');
</span><span class="cx"> inlinePlaybackPlaceholder.setAttribute('pseudo', '-webkit-media-controls-wireless-playback-status');
</span><del>- if (!Controller.gSimulateOptimizedFullscreenAvailable)
</del><ins>+ inlinePlaybackPlaceholder.setAttribute('aria-label', this.UIString('Video Playback Placeholder'));
+ if (!Controller.gSimulatePictureInPictureAvailable)
</ins><span class="cx"> inlinePlaybackPlaceholder.classList.add(this.ClassNames.hidden);
</span><span class="cx">
</span><span class="cx"> var inlinePlaybackPlaceholderText = this.controls.inlinePlaybackPlaceholderText = document.createElement('div');
</span><span class="lines">@@ -1025,7 +1026,7 @@
</span><span class="cx"> {
</span><span class="cx"> var shouldBeHidden = !this.video.webkitSupportsFullscreen || !this.hasVideo();
</span><span class="cx"> this.controls.fullscreenButton.classList.toggle(this.ClassNames.hidden, shouldBeHidden && !this.isFullScreen());
</span><del>- this.controls.optimizedFullscreenButton.classList.toggle(this.ClassNames.hidden, shouldBeHidden);
</del><ins>+ this.controls.pictureInPictureButton.classList.toggle(this.ClassNames.hidden, shouldBeHidden);
</ins><span class="cx"> this.setNeedsUpdateForDisplayedWidth();
</span><span class="cx"> this.updateLayoutForDisplayedWidth();
</span><span class="cx"> },
</span><span class="lines">@@ -1441,7 +1442,7 @@
</span><span class="cx">
</span><span class="cx"> // Filter all the buttons which are not explicitly hidden.
</span><span class="cx"> var buttons = [this.controls.playButton, this.controls.rewindButton, this.controls.captionButton,
</span><del>- this.controls.fullscreenButton, this.controls.optimizedFullscreenButton,
</del><ins>+ this.controls.fullscreenButton, this.controls.pictureInPictureButton,
</ins><span class="cx"> this.controls.wirelessTargetPicker, this.controls.muteBox];
</span><span class="cx"> var visibleButtons = buttons.filter(this.isControlVisible, this);
</span><span class="cx">
</span><span class="lines">@@ -1455,7 +1456,7 @@
</span><span class="cx"> this.controls.remainingTime.classList.toggle(this.ClassNames.dropped, shouldDropTimeline);
</span><span class="cx">
</span><span class="cx"> // Then controls in the following order:
</span><del>- var removeOrder = [this.controls.wirelessTargetPicker, this.controls.optimizedFullscreenButton,
</del><ins>+ var removeOrder = [this.controls.wirelessTargetPicker, this.controls.pictureInPictureButton,
</ins><span class="cx"> this.controls.captionButton, this.controls.muteBox, this.controls.rewindButton,
</span><span class="cx"> this.controls.fullscreenButton];
</span><span class="cx"> removeOrder.forEach(function(control) {
</span><span class="lines">@@ -1884,7 +1885,7 @@
</span><span class="cx"> this.hideTimer = setTimeout(this.hideControls.bind(this), this.HideControlsDelay);
</span><span class="cx"> },
</span><span class="cx">
</span><del>- handleOptimizedFullscreenButtonClicked: function(event) {
</del><ins>+ handlePictureInPictureButtonClicked: function(event) {
</ins><span class="cx"> },
</span><span class="cx">
</span><span class="cx"> currentPlaybackTargetIsWireless: function() {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsmediaControlsiOScss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -225,8 +225,8 @@
</span><span class="cx"> audio::-webkit-media-controls-fullscreen-button,
</span><span class="cx"> audio::-webkit-media-controls-wireless-playback-picker-button,
</span><span class="cx"> video::-webkit-media-controls-wireless-playback-picker-button,
</span><del>-video::-webkit-media-controls-optimized-fullscreen-button,
-audio::-webkit-media-controls-optimized-fullscreen-button {
</del><ins>+video::-webkit-media-controls-picture-in-picture-button,
+audio::-webkit-media-controls-picture-in-picture-button {
</ins><span class="cx"> -webkit-appearance: none;
</span><span class="cx"> display: block;
</span><span class="cx"> padding: 0;
</span><span class="lines">@@ -250,8 +250,8 @@
</span><span class="cx"> audio::-webkit-media-controls-fullscreen-button:active,
</span><span class="cx"> audio::-webkit-media-controls-wireless-playback-picker-button:active,
</span><span class="cx"> video::-webkit-media-controls-wireless-playback-picker-button:active,
</span><del>-video::-webkit-media-controls-optimized-fullscreen-button:active,
-audio::-webkit-media-controls-optimized-fullscreen-button:active {
</del><ins>+video::-webkit-media-controls-picture-in-picture-button:active,
+audio::-webkit-media-controls-picture-in-picture-button:active {
</ins><span class="cx"> mix-blend-mode: normal;
</span><span class="cx"> opacity: 1;
</span><span class="cx"> background-color: white;
</span><span class="lines">@@ -320,14 +320,20 @@
</span><span class="cx"> background-color: -apple-system-blue;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-/* ================== OPTIMIZED FULLSCREEN BUTTON ====================== */
</del><ins>+/* ================== PICTURE IN PICTURE BUTTON ====================== */
</ins><span class="cx">
</span><del>-video::-webkit-media-controls-optimized-fullscreen-button {
</del><ins>+video::-webkit-media-controls-picture-in-picture-button {
</ins><span class="cx"> width: 35px;
</span><span class="cx"> height: 44px;
</span><span class="cx"> -webkit-order: 5;
</span><ins>+ -webkit-mask-size: 23px 18px;
+ -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAkCAYAAAD2IghRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANhJREFUeNrslzEOwjAMRR2UA3AQ7sLKwsTEglg6sTIgLgs7qCZBRbIsWpDayHH1v/SHJmn0ZFutHYiIqX4F+cDMtCCncgseh1JiLJ5lxH+Br2qGZ2Gpa/IjeVMZ1/ur0ndgLdaeydsvF9/7LrYEz7oo+J0X8Kyz2GuT917As04K/uAFPKtR5xov4FnHLuIy+i7AqavxVr1jAh7H/HbRZE3QZGndBvaW1k1Z6VqdHtjzIBELZrHoKIfRzbpUxqY4IOJzLpWAiAMc4AAHOMAB/m9T9Bn1veklwACtBYmnlYBaIQAAAABJRU5ErkJggg==');
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+video::-webkit-media-controls-picture-in-picture-button.return-from-picture-in-picture {
+ -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAkCAYAAAD2IghRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAOZJREFUeNpiZGBg+M8w+AEjMuf///8MTAxDFAxZh7Pgi5IBBv+HZYgPS4f/JwJ/GA1xCjMnIfAejf9poHPvfyy5GFvS6KdjyYPLXeAKiFiH/0ZiT6GT46ni8CAg/onEn0WH/EEVh4OAL5rjFwIx81BwOAh4APE3JPGlNHQ8VR0OAs5A/BVJbjUQsw0Fh4OAHRB/RpLPG0wOJwSsoTXnfBolF5o5HARUBqL2pYbDB6bGBDqchYYlAk27cqPt8YFuHVIaxYyjIT6ckwrjaIiPOnzU4aMOH3X4qMNHHU5sowjWmxhqACDAAI3lmdvpn4aTAAAAAElFTkSuQmCC');
+}
+
</ins><span class="cx"> /* ================== SPACER ====================== */
</span><span class="cx">
</span><span class="cx"> video::-webkit-media-controls-spacer,
</span><span class="lines">@@ -560,7 +566,7 @@
</span><span class="cx"> font-style: italic;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-/* ==================== AIRPLAY PLACARD ==================== */
</del><ins>+/* ==================== PLAYBACK PLACARD ==================== */
</ins><span class="cx">
</span><span class="cx"> video::-webkit-media-controls-wireless-playback-status,
</span><span class="cx"> audio::-webkit-media-controls-wireless-playback-status {
</span><span class="lines">@@ -638,21 +644,22 @@
</span><span class="cx"> display: none;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-video::-webkit-media-controls-wireless-playback-status.optimized,
-audio::-webkit-media-controls-wireless-playback-status.optimized
</del><ins>+video::-webkit-media-controls-wireless-playback-status.picture-in-picture,
+audio::-webkit-media-controls-wireless-playback-status.picture-in-picture
</ins><span class="cx"> {
</span><span class="cx"> background-size: 304px auto;
</span><span class="cx"> background-position: 50% calc(.5 * (100% - 25px));
</span><ins>+ background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 304 150\"><g fill=\"none\" stroke=\"#3c3c3c\" stroke-width=\"3\"><path d=\"m 172,106 -81,0 c -3.5,0 -6,-2.5 -6,-6 l 0,-89 c 0,-3.5 2.5,-6 6,-6 l 122,0 c 3.5,0 6,2.5 6,6 l 0,57\" /><path d=\"m 233,119 -53,0 c -3,0 -3,-0 -3,-3 l 0,-40 c 0,-3 0,-3 3,-3 l 53,0 c 3,0 3,0 3,3 l 0,40 c 0,3 0,3 -3,3 z\" /></g></svg>');
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-video::-webkit-media-controls-wireless-playback-text-top.optimized,
-audio::-webkit-media-controls-wireless-playback-text-top.optimized {
</del><ins>+video::-webkit-media-controls-wireless-playback-text-top.picture-in-picture,
+audio::-webkit-media-controls-wireless-playback-text-top.picture-in-picture {
</ins><span class="cx"> top: initial;
</span><span class="cx"> bottom: 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-video::-webkit-media-controls-wireless-playback-text-bottom.optimized,
-audio::-webkit-media-controls-wireless-playback-text-bottom.optimized {
</del><ins>+video::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture,
+audio::-webkit-media-controls-wireless-playback-text-bottom.picture-in-picture {
</ins><span class="cx"> display: none;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediacontrolsmediaControlsiOSjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -125,9 +125,9 @@
</span><span class="cx"> this.listenFor(this.controls.fullscreenButton, 'touchstart', this.handleFullscreenTouchStart);
</span><span class="cx"> this.listenFor(this.controls.fullscreenButton, 'touchend', this.handleFullscreenTouchEnd);
</span><span class="cx"> this.listenFor(this.controls.fullscreenButton, 'touchcancel', this.handleFullscreenTouchCancel);
</span><del>- this.listenFor(this.controls.optimizedFullscreenButton, 'touchstart', this.handleOptimizedFullscreenTouchStart);
- this.listenFor(this.controls.optimizedFullscreenButton, 'touchend', this.handleOptimizedFullscreenTouchEnd);
- this.listenFor(this.controls.optimizedFullscreenButton, 'touchcancel', this.handleOptimizedFullscreenTouchCancel);
</del><ins>+ this.listenFor(this.controls.pictureInPictureButton, 'touchstart', this.handlePictureInPictureTouchStart);
+ this.listenFor(this.controls.pictureInPictureButton, 'touchend', this.handlePictureInPictureTouchEnd);
+ this.listenFor(this.controls.pictureInPictureButton, 'touchcancel', this.handlePictureInPictureTouchCancel);
</ins><span class="cx"> this.listenFor(this.controls.timeline, 'touchstart', this.handleTimelineTouchStart);
</span><span class="cx"> this.stopListeningFor(this.controls.playButton, 'click', this.handlePlayButtonClicked);
</span><span class="cx">
</span><span class="lines">@@ -179,8 +179,8 @@
</span><span class="cx"> // Hide the scrubber on audio until the user starts playing.
</span><span class="cx"> this.controls.timelineBox.classList.add(this.ClassNames.hidden);
</span><span class="cx"> } else {
</span><del>- if (Controller.gSimulateOptimizedFullscreenAvailable || ('webkitSupportsPresentationMode' in this.video && this.video.webkitSupportsPresentationMode('picture-in-picture')))
- this.controls.panel.appendChild(this.controls.optimizedFullscreenButton);
</del><ins>+ if (Controller.gSimulatePictureInPictureAvailable || ('webkitSupportsPresentationMode' in this.video && this.video.webkitSupportsPresentationMode('picture-in-picture')))
+ this.controls.panel.appendChild(this.controls.pictureInPictureButton);
</ins><span class="cx"> this.controls.panel.appendChild(this.controls.fullscreenButton);
</span><span class="cx"> }
</span><span class="cx"> },
</span><span class="lines">@@ -428,7 +428,7 @@
</span><span class="cx"> return true;
</span><span class="cx"> },
</span><span class="cx">
</span><del>- handleOptimizedFullscreenButtonClicked: function(event) {
</del><ins>+ handlePictureInPictureButtonClicked: function(event) {
</ins><span class="cx"> if (!('webkitSetPresentationMode' in this.video))
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -438,20 +438,20 @@
</span><span class="cx"> this.video.webkitSetPresentationMode('picture-in-picture');
</span><span class="cx"> },
</span><span class="cx">
</span><del>- handleOptimizedFullscreenTouchStart: function() {
- this.controls.optimizedFullscreenButton.classList.add('active');
</del><ins>+ handlePictureInPictureTouchStart: function() {
+ this.controls.pictureInPictureButton.classList.add('active');
</ins><span class="cx"> },
</span><span class="cx">
</span><del>- handleOptimizedFullscreenTouchEnd: function(event) {
- this.controls.optimizedFullscreenButton.classList.remove('active');
</del><ins>+ handlePictureInPictureTouchEnd: function(event) {
+ this.controls.pictureInPictureButton.classList.remove('active');
</ins><span class="cx">
</span><del>- this.handleOptimizedFullscreenButtonClicked();
</del><ins>+ this.handlePictureInPictureButtonClicked();
</ins><span class="cx">
</span><span class="cx"> return true;
</span><span class="cx"> },
</span><span class="cx">
</span><del>- handleOptimizedFullscreenTouchCancel: function(event) {
- this.controls.optimizedFullscreenButton.classList.remove('active');
</del><ins>+ handlePictureInPictureTouchCancel: function(event) {
+ this.controls.pictureInPictureButton.classList.remove('active');
</ins><span class="cx"> return true;
</span><span class="cx"> },
</span><span class="cx">
</span><span class="lines">@@ -562,35 +562,30 @@
</span><span class="cx">
</span><span class="cx"> switch (presentationMode) {
</span><span class="cx"> case 'inline':
</span><del>- this.controls.inlinePlaybackPlaceholder.style.backgroundImage = "";
</del><span class="cx"> this.controls.inlinePlaybackPlaceholder.classList.add(this.ClassNames.hidden);
</span><del>- this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.optimized);
- this.controls.inlinePlaybackPlaceholderTextTop.classList.remove(this.ClassNames.optimized);
- this.controls.inlinePlaybackPlaceholderTextBottom.classList.remove(this.ClassNames.optimized);
</del><ins>+ this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.pictureInPicture);
+ this.controls.inlinePlaybackPlaceholderTextTop.classList.remove(this.ClassNames.pictureInPicture);
+ this.controls.inlinePlaybackPlaceholderTextBottom.classList.remove(this.ClassNames.pictureInPicture);
</ins><span class="cx">
</span><del>- this.controls.optimizedFullscreenButton.classList.remove(this.ClassNames.returnFromOptimized);
</del><ins>+ this.controls.pictureInPictureButton.classList.remove(this.ClassNames.returnFromPictureInPicture);
</ins><span class="cx"> break;
</span><span class="cx"> case 'picture-in-picture':
</span><del>- var backgroundImage = "url('" + this.host.mediaUIImageData("optimized-fullscreen-placeholder") + "')";
- this.controls.inlinePlaybackPlaceholder.style.backgroundImage = backgroundImage;
- this.controls.inlinePlaybackPlaceholder.setAttribute('aria-label', "video playback placeholder");
- this.controls.inlinePlaybackPlaceholder.classList.add(this.ClassNames.optimized);
</del><ins>+ this.controls.inlinePlaybackPlaceholder.classList.add(this.ClassNames.pictureInPicture);
</ins><span class="cx"> this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.hidden);
</span><span class="cx">
</span><del>- this.controls.inlinePlaybackPlaceholderTextTop.innerText = this.host.mediaUIImageData("optimized-fullscreen-placeholder-text");
- this.controls.inlinePlaybackPlaceholderTextTop.classList.add(this.ClassNames.optimized);
</del><ins>+ this.controls.inlinePlaybackPlaceholderTextTop.innerText = this.UIString('This video is playing in Picture in Picture');
+ this.controls.inlinePlaybackPlaceholderTextTop.classList.add(this.ClassNames.pictureInPicture);
</ins><span class="cx"> this.controls.inlinePlaybackPlaceholderTextBottom.innerText = "";
</span><del>- this.controls.inlinePlaybackPlaceholderTextBottom.classList.add(this.ClassNames.optimized);
</del><ins>+ this.controls.inlinePlaybackPlaceholderTextBottom.classList.add(this.ClassNames.pictureInPicture);
</ins><span class="cx">
</span><del>- this.controls.optimizedFullscreenButton.classList.add(this.ClassNames.returnFromOptimized);
</del><ins>+ this.controls.pictureInPictureButton.classList.add(this.ClassNames.returnFromPictureInPicture);
</ins><span class="cx"> break;
</span><span class="cx"> default:
</span><del>- this.controls.inlinePlaybackPlaceholder.style.backgroundImage = "";
- this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.optimized);
- this.controls.inlinePlaybackPlaceholderTextTop.classList.remove(this.ClassNames.optimized);
- this.controls.inlinePlaybackPlaceholderTextBottom.classList.remove(this.ClassNames.optimized);
</del><ins>+ this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.pictureInPicture);
+ this.controls.inlinePlaybackPlaceholderTextTop.classList.remove(this.ClassNames.pictureInPicture);
+ this.controls.inlinePlaybackPlaceholderTextBottom.classList.remove(this.ClassNames.pictureInPicture);
</ins><span class="cx">
</span><del>- this.controls.optimizedFullscreenButton.classList.remove(this.ClassNames.returnFromOptimized);
</del><ins>+ this.controls.pictureInPictureButton.classList.remove(this.ClassNames.returnFromPictureInPicture);
</ins><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -5138,12 +5138,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLMediaElement::enterFullscreenOptimized()
-{
- if (m_mediaSession->allowsAlternateFullscreen(*this))
- enterFullscreen(VideoFullscreenModeOptimized);
-}
-
</del><span class="cx"> void HTMLMediaElement::didBecomeFullscreenElement()
</span><span class="cx"> {
</span><span class="cx"> if (hasMediaControls())
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -368,7 +368,6 @@
</span><span class="cx"> void enterFullscreen(VideoFullscreenMode);
</span><span class="cx"> virtual void enterFullscreen() override;
</span><span class="cx"> WEBCORE_EXPORT void exitFullscreen();
</span><del>- void enterFullscreenOptimized();
</del><span class="cx">
</span><span class="cx"> virtual bool hasClosedCaptions() const override;
</span><span class="cx"> virtual bool closedCaptionsVisible() const override;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -78,13 +78,4 @@
</span><span class="cx">
</span><span class="cx"> extern bool (*wkIsOptimizedFullscreenSupported)(void);
</span><span class="cx">
</span><del>-typedef enum {
- wkMediaUIPartOptimizedFullscreenButton = 0,
- wkMediaUIPartOptimizedFullscreenReturnButton,
- wkMediaUIPartOptimizedFullscreenPlaceholder,
- wkMediaUIPartOptimizedFullscreenPlaceholderText
-} wkMediaUIPart;
-extern CFStringRef (*wkGetMediaUIImageData)(int wkMediaUIPart);
-
-
</del><span class="cx"> #endif // WebCoreSystemInterfaceIOS_h
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -117,7 +117,6 @@
</span><span class="cx"> WEBCORE_EXPORT CFStringRef (*wkGetVendorNameForNavigator)(void);
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT bool (*wkIsOptimizedFullscreenSupported)(void);
</span><del>-WEBCORE_EXPORT CFStringRef (*wkGetMediaUIImageData)(int);
</del><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT int (*wkExernalDeviceTypeForPlayer)(AVPlayer *);
</span><span class="cx"> WEBCORE_EXPORT NSString *(*wkExernalDeviceDisplayNameForPlayer)(AVPlayer *);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -1285,8 +1285,6 @@
</span><span class="cx"> if (m_mediaControlsStyleSheet.isEmpty()) {
</span><span class="cx"> StringBuilder builder;
</span><span class="cx"> builder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsiOS" ofType:@"css"] encoding:NSUTF8StringEncoding error:nil]);
</span><del>- builder.append(wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenButton));
- builder.append(wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenReturnButton));
</del><span class="cx"> m_mediaControlsStyleSheet = builder.toString();
</span><span class="cx"> }
</span><span class="cx"> return m_mediaControlsStyleSheet;
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-06-11 Jon Lee <jonlee@apple.com>
+
+ Update media controls JS and CSS to use picture-in-picture
+ https://bugs.webkit.org/show_bug.cgi?id=145827
+ <rdar://problem/21311576>
+
+ Reviewed by Dean Jackson.
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Deleted GetMediaUIImageData.
+
</ins><span class="cx"> 2015-06-10 Jon Honeycutt <jhoneycutt@apple.com>
</span><span class="cx">
</span><span class="cx"> Meta refresh preference is not respected on fast path WebView
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -125,7 +125,6 @@
</span><span class="cx"> INIT(GetScreenScaleFactor);
</span><span class="cx"> INIT(IsGB18030ComplianceRequired);
</span><span class="cx"> INIT(IsOptimizedFullscreenSupported);
</span><del>- INIT(GetMediaUIImageData);
</del><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if !PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebKit2/ChangeLog        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-06-11 Jon Lee <jonlee@apple.com>
+
+ Update media controls JS and CSS to use picture-in-picture
+ https://bugs.webkit.org/show_bug.cgi?id=145827
+ <rdar://problem/21311576>
+
+ Reviewed by Dean Jackson.
+
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Deleted GetMediaUIImageData.
+
</ins><span class="cx"> 2015-06-11 Alex Christensen <achristensen@webkit.org>
</span><span class="cx">
</span><span class="cx"> Speculative build fix for GTK after r185463.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm (185471 => 185472)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2015-06-11 20:51:11 UTC (rev 185471)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2015-06-11 20:53:49 UTC (rev 185472)
</span><span class="lines">@@ -191,7 +191,6 @@
</span><span class="cx"> INIT(GetScreenScaleFactor);
</span><span class="cx"> INIT(IsGB18030ComplianceRequired);
</span><span class="cx"> INIT(IsOptimizedFullscreenSupported);
</span><del>- INIT(GetMediaUIImageData);
</del><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(PUBLIC_SUFFIX_LIST)
</span></span></pre>
</div>
</div>
</body>
</html>