Changeset 179612 in webkit


Ignore:
Timestamp:
Feb 4, 2015 10:16:06 AM (9 years ago)
Author:
eric.carlson@apple.com
Message:

video.attribute should not return true just because of fullscreen
https://bugs.webkit.org/show_bug.cgi?id=141219

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, updated media/video-fullscreeen-only-controls.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveControls):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.isFullScreen):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::controls): Don't consider fullscreen status.
(WebCore::HTMLMediaElement::configureMediaControls): Create controls if a video element

isn't allowed to play inline, or if it is in fullscreen.

LayoutTests:

  • media/video-fullscreeen-only-controls-expected.txt: Update.
  • media/video-fullscreeen-only-controls.html: Ditto.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r179607 r179612  
     12015-02-04  Eric Carlson  <eric.carlson@apple.com>
     2
     3        video.attribute should not return true just because of fullscreen
     4        https://bugs.webkit.org/show_bug.cgi?id=141219
     5
     6        Reviewed by Dean Jackson.
     7
     8        * media/video-fullscreeen-only-controls-expected.txt: Update.
     9        * media/video-fullscreeen-only-controls.html: Ditto.
     10
    1112015-02-04  Alexey Proskuryakov  <ap@apple.com>
    212
  • trunk/LayoutTests/media/video-fullscreeen-only-controls-expected.txt

    r169449 r179612  
    33
    44RUN(internals.setMediaSessionRestrictions('video', 'InlineVideoPlaybackRestricted'))
     5EXPECTED (video.hasAttribute('controls') == 'false') OK
     6EXPECTED (video.controls == 'false') OK
    57EXPECTED (shadowRoot = internals.shadowRoot(video) != 'null') OK
    68EXPECTED (panel = mediaControlsElement(shadowRoot.firstChild, '-webkit-media-controls-panel') != 'null') OK
  • trunk/LayoutTests/media/video-fullscreeen-only-controls.html

    r169449 r179612  
    1515    video.src = findMediaFile("video", "content/test");
    1616
     17    testExpected("video.hasAttribute('controls')", false);
     18    testExpected("video.controls", false);
     19
    1720    if (window.internals) {
    1821        testExpected("shadowRoot = internals.shadowRoot(video)", null, "!=");
  • trunk/Source/WebCore/ChangeLog

    r179609 r179612  
     12015-02-04  Eric Carlson  <eric.carlson@apple.com>
     2
     3        video.attribute should not return true just because of fullscreen
     4        https://bugs.webkit.org/show_bug.cgi?id=141219
     5
     6        Reviewed by Dean Jackson.
     7
     8        No new tests, updated media/video-fullscreeen-only-controls.html
     9
     10        * Modules/mediacontrols/mediaControlsApple.js:
     11        (Controller.prototype.shouldHaveControls):
     12        * Modules/mediacontrols/mediaControlsiOS.js:
     13        (ControllerIOS.prototype.isFullScreen):
     14
     15        * html/HTMLMediaElement.cpp:
     16        (WebCore::HTMLMediaElement::controls): Don't consider fullscreen status.
     17        (WebCore::HTMLMediaElement::configureMediaControls): Create controls if a video element
     18            isn't allowed to play inline, or if it is in fullscreen.
     19
    1202015-02-04  Mark Lam  <mark.lam@apple.com>
    221
  • trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js

    r176714 r179612  
    251251    shouldHaveControls: function()
    252252    {
     253        if (!this.isAudio() && !this.host.mediaPlaybackAllowsInline)
     254            return true;
     255
    253256        return this.video.controls || this.isFullScreen();
    254257    },
  • trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js

    r179602 r179612  
    414414    isFullScreen: function()
    415415    {
    416         return this.video.webkitDisplayingFullscreen;
     416        return this.video.webkitDisplayingFullscreen && this.presentationMode() != 'optimized';
    417417    },
    418418
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r179242 r179612  
    29672967        return true;
    29682968
    2969     // always show controls for video when fullscreen playback is required.
    2970     if (isVideo() && m_mediaSession->requiresFullscreenForVideoPlayback(*this))
    2971         return true;
    2972 
    2973     // Always show controls when in full screen mode.
    2974     if (isFullscreen())
    2975         return true;
    2976 
    29772969    return fastHasAttribute(controlsAttr);
    29782970}
     
    52575249void HTMLMediaElement::configureMediaControls()
    52585250{
     5251    bool requireControls = controls();
     5252
     5253    // Always create controls for video when fullscreen playback is required.
     5254    if (isVideo() && m_mediaSession->requiresFullscreenForVideoPlayback(*this))
     5255        requireControls = true;
     5256
     5257    // Always create controls when in full screen mode.
     5258    if (isFullscreen())
     5259        requireControls = true;
     5260
    52595261#if ENABLE(MEDIA_CONTROLS_SCRIPT)
    5260     if (!controls() || !inDocument())
     5262    if (!requireControls || !inDocument())
    52615263        return;
    52625264
    52635265    ensureUserAgentShadowRoot();
    52645266#else
    5265     if (!controls() || !inDocument()) {
     5267    if (!requireControls || !inDocument()) {
    52665268        if (hasMediaControls())
    52675269            mediaControls()->hide();
Note: See TracChangeset for help on using the changeset viewer.