Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp

Issue 2592443002: Media Controls: use events to enter/exit fullscreen. (Closed)
Patch Set: rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 3414 matching lines...) Expand 10 before | Expand all | Expand 10 after
3425 3425
3426 return false; 3426 return false;
3427 } 3427 }
3428 3428
3429 bool HTMLMediaElement::isFullscreen() const { 3429 bool HTMLMediaElement::isFullscreen() const {
3430 return Fullscreen::isFullscreenElement(*this); 3430 return Fullscreen::isFullscreenElement(*this);
3431 } 3431 }
3432 3432
3433 void HTMLMediaElement::didEnterFullscreen() { 3433 void HTMLMediaElement::didEnterFullscreen() {
3434 configureMediaControls(); 3434 configureMediaControls();
3435 if (mediaControls())
3436 mediaControls()->enteredFullscreen();
3437 // FIXME: There is no embedder-side handling in layout test mode. 3435 // FIXME: There is no embedder-side handling in layout test mode.
3438 if (webMediaPlayer() && !LayoutTestSupport::isRunningLayoutTest()) 3436 if (webMediaPlayer() && !LayoutTestSupport::isRunningLayoutTest())
3439 webMediaPlayer()->enteredFullscreen(); 3437 webMediaPlayer()->enteredFullscreen();
3440 // Cache this in case the player is destroyed before leaving fullscreen. 3438 // Cache this in case the player is destroyed before leaving fullscreen.
3441 m_inOverlayFullscreenVideo = usesOverlayFullscreenVideo(); 3439 m_inOverlayFullscreenVideo = usesOverlayFullscreenVideo();
3442 if (m_inOverlayFullscreenVideo) 3440 if (m_inOverlayFullscreenVideo)
3443 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( 3441 document().layoutViewItem().compositor()->setNeedsCompositingUpdate(
3444 CompositingUpdateRebuildTree); 3442 CompositingUpdateRebuildTree);
3445 } 3443 }
3446 3444
3447 void HTMLMediaElement::didExitFullscreen() { 3445 void HTMLMediaElement::didExitFullscreen() {
3448 configureMediaControls(); 3446 configureMediaControls();
3449 if (mediaControls())
3450 mediaControls()->exitedFullscreen();
3451 if (webMediaPlayer()) 3447 if (webMediaPlayer())
3452 webMediaPlayer()->exitedFullscreen(); 3448 webMediaPlayer()->exitedFullscreen();
3453 if (m_inOverlayFullscreenVideo) 3449 if (m_inOverlayFullscreenVideo)
3454 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( 3450 document().layoutViewItem().compositor()->setNeedsCompositingUpdate(
3455 CompositingUpdateRebuildTree); 3451 CompositingUpdateRebuildTree);
3456 m_inOverlayFullscreenVideo = false; 3452 m_inOverlayFullscreenVideo = false;
3457 } 3453 }
3458 3454
3459 WebLayer* HTMLMediaElement::platformLayer() const { 3455 WebLayer* HTMLMediaElement::platformLayer() const {
3460 return m_webLayer; 3456 return m_webLayer;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
3615 } 3611 }
3616 3612
3617 return nullptr; 3613 return nullptr;
3618 } 3614 }
3619 3615
3620 void HTMLMediaElement::ensureMediaControls() { 3616 void HTMLMediaElement::ensureMediaControls() {
3621 if (mediaControls()) 3617 if (mediaControls())
3622 return; 3618 return;
3623 3619
3624 MediaControls* mediaControls = MediaControls::create(*this); 3620 MediaControls* mediaControls = MediaControls::create(*this);
3625
3626 mediaControls->reset(); 3621 mediaControls->reset();
3627 if (isFullscreen())
3628 mediaControls->enteredFullscreen();
3629 3622
3630 ShadowRoot& shadowRoot = ensureUserAgentShadowRoot(); 3623 ShadowRoot& shadowRoot = ensureUserAgentShadowRoot();
3631 assertShadowRootChildren(shadowRoot); 3624 assertShadowRootChildren(shadowRoot);
3632 3625
3633 // The media controls should be inserted after the text track container, 3626 // The media controls should be inserted after the text track container,
3634 // so that they are rendered in front of captions and subtitles. 3627 // so that they are rendered in front of captions and subtitles.
3635 shadowRoot.appendChild(mediaControls); 3628 shadowRoot.appendChild(mediaControls);
3636 3629
3637 assertShadowRootChildren(shadowRoot); 3630 assertShadowRootChildren(shadowRoot);
3638 3631
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
4119 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); 4112 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE);
4120 } 4113 }
4121 4114
4122 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { 4115 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) {
4123 m_mostlyFillingViewport = true; 4116 m_mostlyFillingViewport = true;
4124 if (m_webMediaPlayer) 4117 if (m_webMediaPlayer)
4125 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); 4118 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport);
4126 } 4119 }
4127 4120
4128 } // namespace blink 4121 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698