https://bugs.webkit.org/show_bug.cgi?id=145826
rdar://problem/2131153
Reviewed by Anders Carlsson.
Update presentation modes to use 'picture-in-picture' in lieu of 'optimized'.
* html/HTMLVideoElement.idl: Update to "picture-in-picture".
* html/HTMLVideoElement.cpp:
(WebCore::presentationModePictureInPicture): Rename static function returning string.
(WebCore::presentationModeOptimized): Deleted.
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use the new static function name.
(WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
(WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.
* Modules/mediacontrols/mediaControlsiOS.js: Update to 'picture-in-picture'.
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.isFullScreen):
(ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked):
(ControllerIOS.prototype.handlePresentationModeChange):
(ControllerIOS.prototype.controlsAlwaysVisible):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@185446
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2015-06-10 Jon Lee <jonlee@apple.com>
+
+ Update presentation mode JS API to using 'picture-in-picture'
+ https://bugs.webkit.org/show_bug.cgi?id=145826
+ rdar://problem/2131153
+
+ Reviewed by Anders Carlsson.
+
+ Update presentation modes to use 'picture-in-picture' in lieu of 'optimized'.
+
+ * html/HTMLVideoElement.idl: Update to "picture-in-picture".
+ * html/HTMLVideoElement.cpp:
+ (WebCore::presentationModePictureInPicture): Rename static function returning string.
+ (WebCore::presentationModeOptimized): Deleted.
+ (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use the new static function name.
+ (WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
+ (WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.
+
+ * Modules/mediacontrols/mediaControlsiOS.js: Update to 'picture-in-picture'.
+ (ControllerIOS.prototype.configureInlineControls):
+ (ControllerIOS.prototype.isFullScreen):
+ (ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked):
+ (ControllerIOS.prototype.handlePresentationModeChange):
+ (ControllerIOS.prototype.controlsAlwaysVisible):
+
2015-06-10 Boris Smus <boris@smus.com>
[Mobile Safari, WKWebView] increase DeviceOrientationEvent events emission frequency
// Hide the scrubber on audio until the user starts playing.
this.controls.timelineBox.classList.add(this.ClassNames.hidden);
} else {
- if (Controller.gSimulateOptimizedFullscreenAvailable || ('webkitSupportsPresentationMode' in this.video && this.video.webkitSupportsPresentationMode('optimized')))
+ if (Controller.gSimulateOptimizedFullscreenAvailable || ('webkitSupportsPresentationMode' in this.video && this.video.webkitSupportsPresentationMode('picture-in-picture')))
this.controls.panel.appendChild(this.controls.optimizedFullscreenButton);
this.controls.panel.appendChild(this.controls.fullscreenButton);
}
isFullScreen: function()
{
- return this.video.webkitDisplayingFullscreen && this.presentationMode() != 'optimized';
+ return this.video.webkitDisplayingFullscreen && this.presentationMode() != 'picture-in-picture';
},
handleFullscreenButtonClicked: function(event) {
if (!('webkitSetPresentationMode' in this.video))
return;
- if (this.presentationMode() === 'optimized')
+ if (this.presentationMode() === 'picture-in-picture')
this.video.webkitSetPresentationMode('inline');
else
- this.video.webkitSetPresentationMode('optimized');
+ this.video.webkitSetPresentationMode('picture-in-picture');
},
handleOptimizedFullscreenTouchStart: function() {
this.controls.optimizedFullscreenButton.classList.remove(this.ClassNames.returnFromOptimized);
break;
- case 'optimized':
+ case 'picture-in-picture':
var backgroundImage = "url('" + this.host.mediaUIImageData("optimized-fullscreen-placeholder") + "')";
this.controls.inlinePlaybackPlaceholder.style.backgroundImage = backgroundImage;
this.controls.inlinePlaybackPlaceholder.setAttribute('aria-label', "video playback placeholder");
controlsAlwaysVisible: function()
{
- if (this.presentationMode() === 'optimized')
+ if (this.presentationMode() === 'picture-in-picture')
return true;
return Controller.prototype.controlsAlwaysVisible.call(this);
return fullscreen;
}
-static const AtomicString& presentationModeOptimized()
+static const AtomicString& presentationModePictureInPicture()
{
- static NeverDestroyed<AtomicString> optimized("optimized", AtomicString::ConstructFromLiteral);
- return optimized;
+ static NeverDestroyed<AtomicString> pictureInPicture("picture-in-picture", AtomicString::ConstructFromLiteral);
+ return pictureInPicture;
}
static const AtomicString& presentationModeInline()
if (mode == presentationModeFullscreen())
return mediaSession().fullscreenPermitted(*this) && supportsFullscreen();
- if (mode == presentationModeOptimized())
+ if (mode == presentationModePictureInPicture())
return wkIsOptimizedFullscreenSupported() && mediaSession().allowsAlternateFullscreen(*this) && supportsFullscreen();
if (mode == presentationModeInline())
if (mode == presentationModeFullscreen())
enterFullscreen(VideoFullscreenModeStandard);
- else if (mode == presentationModeOptimized())
+ else if (mode == presentationModePictureInPicture())
enterFullscreen(VideoFullscreenModeOptimized);
}
return presentationModeFullscreen();
if (mode & VideoFullscreenModeOptimized)
- return presentationModeOptimized();
+ return presentationModePictureInPicture();
if (mode == VideoFullscreenModeNone)
return presentationModeInline();
*/
// FIXME: This should be Conditional=VIDEO_PRESENTATION_MODE.
-enum VideoPresentationMode { "fullscreen", "optimized", "inline" };
+enum VideoPresentationMode { "fullscreen", "picture-in-picture", "inline" };
[
Conditional=VIDEO,