<!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
&lt;rdar://problem/21311576&gt;

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  &lt;jonlee@apple.com&gt;
+
+        Update media controls JS and CSS to use picture-in-picture
+        https://bugs.webkit.org/show_bug.cgi?id=145827
+        &lt;rdar://problem/21311576&gt;
+
+        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  &lt;dino@apple.com&gt;
</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-&gt;exitedFullscreen();
</span><span class="cx"> }
</span><del>-    
-void MediaControlsHost::enterFullscreenOptimized()
-{
-#if PLATFORM(IOS)
-    m_mediaElement-&gt;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-&gt;setMediaControlsDependOnPageScaleFactor(value);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String MediaControlsHost::mediaUIImageData(const String&amp; partID) const
-{
-#if PLATFORM(IOS)
-    if (partID == &quot;optimized-fullscreen-button&quot;)
-        return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenButton);
-
-    if (partID == &quot;optimized-fullscreen-return-button&quot;)
-        return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenReturnButton);
-
-    if (partID == &quot;optimized-fullscreen-placeholder&quot;)
-        return wkGetMediaUIImageData(wkMediaUIPartOptimizedFullscreenPlaceholder);
-
-    if (partID == &quot;optimized-fullscreen-placeholder-text&quot;)
-        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&amp;) 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">     &quot;tvout&quot;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-enum MediaUIPartID {
-    &quot;optimized-fullscreen-button&quot;,
-    &quot;optimized-fullscreen-return-button&quot;,
-    &quot;optimized-fullscreen-placeholder&quot;,
-    &quot;optimized-fullscreen-placeholder-text&quot;
-};
-
</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,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 15 15&quot; transform=&quot;rotate(90,0,0)&quot;&gt;&lt;linearGradient id=&quot;gradient&quot; x2=&quot;0&quot; y2=&quot;100%&quot; gradientUnits=&quot;userSpaceOnUse&quot;&gt;&lt;stop offset=&quot;0&quot; stop-color=&quot;rgb(216, 216, 216)&quot;/&gt;&lt;stop offset=&quot;0.4375&quot; stop-color=&quot;rgb(216, 216, 216)&quot;/&gt;&lt;stop offset=&quot;0.4375&quot; stop-color=&quot;rgb(208, 208, 208)&quot;/&gt;&lt;stop offset=&quot;0.5&quot; stop-color=&quot;rgb(208, 208, 208)&quot;/&gt;&lt;stop offset=&quot;0.5&quot; stop-color=&quot;rgb(200, 200, 200)&quot;/&gt;&lt;stop offset=&quot;1&quot; stop-color=&quot;rgb(208, 208, 208)&quot;/&gt;&lt;/linearGradient&gt;&lt;path d=&quot;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&quot; style=&quot;fill:url(#gradient) &quot;/&gt;&lt;path d=&quot;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&quot; style=&quot;fill:url(#gradient) &quot;/&gt;&lt;/svg&gt;');
</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 &amp;&amp; !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,&lt;svg xmlns=\&quot;http://www.w3.org/2000/svg\&quot; viewBox=\&quot;0 0 304 150\&quot;&gt;&lt;g fill=\&quot;none\&quot; stroke=\&quot;#3c3c3c\&quot; stroke-width=\&quot;3\&quot;&gt;&lt;path d=\&quot;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\&quot; /&gt;&lt;path d=\&quot;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\&quot; /&gt;&lt;/g&gt;&lt;/svg&gt;');
</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 &amp;&amp; this.video.webkitSupportsPresentationMode('picture-in-picture')))
-                this.controls.panel.appendChild(this.controls.optimizedFullscreenButton);
</del><ins>+            if (Controller.gSimulatePictureInPictureAvailable || ('webkitSupportsPresentationMode' in this.video &amp;&amp; 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 = &quot;&quot;;
</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 = &quot;url('&quot; + this.host.mediaUIImageData(&quot;optimized-fullscreen-placeholder&quot;) + &quot;')&quot;;
-                this.controls.inlinePlaybackPlaceholder.style.backgroundImage = backgroundImage;
-                this.controls.inlinePlaybackPlaceholder.setAttribute('aria-label', &quot;video playback placeholder&quot;);
-                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(&quot;optimized-fullscreen-placeholder-text&quot;);
-                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 = &quot;&quot;;
</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 = &quot;&quot;;
-                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-&gt;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:@&quot;mediaControlsiOS&quot; ofType:@&quot;css&quot;] 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  &lt;jonlee@apple.com&gt;
+
+        Update media controls JS and CSS to use picture-in-picture
+        https://bugs.webkit.org/show_bug.cgi?id=145827
+        &lt;rdar://problem/21311576&gt;
+
+        Reviewed by Dean Jackson.
+
+        * WebCoreSupport/WebSystemInterface.mm:
+        (InitWebCoreSystemInterface): Deleted GetMediaUIImageData.
+
</ins><span class="cx"> 2015-06-10  Jon Honeycutt  &lt;jhoneycutt@apple.com&gt;
</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  &lt;jonlee@apple.com&gt;
+
+        Update media controls JS and CSS to use picture-in-picture
+        https://bugs.webkit.org/show_bug.cgi?id=145827
+        &lt;rdar://problem/21311576&gt;
+
+        Reviewed by Dean Jackson.
+
+        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+        (InitWebCoreSystemInterface): Deleted GetMediaUIImageData.
+
</ins><span class="cx"> 2015-06-11  Alex Christensen  &lt;achristensen@webkit.org&gt;
</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>