OLD | NEW |
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 3371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3382 Fullscreen::requestFullscreen(*this, Fullscreen::PrefixedRequest); | 3382 Fullscreen::requestFullscreen(*this, Fullscreen::PrefixedRequest); |
3383 } | 3383 } |
3384 | 3384 |
3385 void HTMLMediaElement::exitFullscreen() { | 3385 void HTMLMediaElement::exitFullscreen() { |
3386 BLINK_MEDIA_LOG << "exitFullscreen(" << (void*)this << ")"; | 3386 BLINK_MEDIA_LOG << "exitFullscreen(" << (void*)this << ")"; |
3387 | 3387 |
3388 Fullscreen::exitFullscreen(document()); | 3388 Fullscreen::exitFullscreen(document()); |
3389 } | 3389 } |
3390 | 3390 |
3391 void HTMLMediaElement::didEnterFullscreen() { | 3391 void HTMLMediaElement::didEnterFullscreen() { |
| 3392 configureMediaControls(); |
3392 if (mediaControls()) | 3393 if (mediaControls()) |
3393 mediaControls()->enteredFullscreen(); | 3394 mediaControls()->enteredFullscreen(); |
3394 // FIXME: There is no embedder-side handling in layout test mode. | 3395 // FIXME: There is no embedder-side handling in layout test mode. |
3395 if (webMediaPlayer() && !LayoutTestSupport::isRunningLayoutTest()) | 3396 if (webMediaPlayer() && !LayoutTestSupport::isRunningLayoutTest()) |
3396 webMediaPlayer()->enteredFullscreen(); | 3397 webMediaPlayer()->enteredFullscreen(); |
3397 // Cache this in case the player is destroyed before leaving fullscreen. | 3398 // Cache this in case the player is destroyed before leaving fullscreen. |
3398 m_inOverlayFullscreenVideo = usesOverlayFullscreenVideo(); | 3399 m_inOverlayFullscreenVideo = usesOverlayFullscreenVideo(); |
3399 if (m_inOverlayFullscreenVideo) | 3400 if (m_inOverlayFullscreenVideo) |
3400 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( | 3401 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( |
3401 CompositingUpdateRebuildTree); | 3402 CompositingUpdateRebuildTree); |
3402 } | 3403 } |
3403 | 3404 |
3404 void HTMLMediaElement::didExitFullscreen() { | 3405 void HTMLMediaElement::didExitFullscreen() { |
| 3406 configureMediaControls(); |
3405 if (mediaControls()) | 3407 if (mediaControls()) |
3406 mediaControls()->exitedFullscreen(); | 3408 mediaControls()->exitedFullscreen(); |
3407 if (webMediaPlayer()) | 3409 if (webMediaPlayer()) |
3408 webMediaPlayer()->exitedFullscreen(); | 3410 webMediaPlayer()->exitedFullscreen(); |
3409 if (m_inOverlayFullscreenVideo) | 3411 if (m_inOverlayFullscreenVideo) |
3410 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( | 3412 document().layoutViewItem().compositor()->setNeedsCompositingUpdate( |
3411 CompositingUpdateRebuildTree); | 3413 CompositingUpdateRebuildTree); |
3412 m_inOverlayFullscreenVideo = false; | 3414 m_inOverlayFullscreenVideo = false; |
3413 } | 3415 } |
3414 | 3416 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3635 | 3637 |
3636 // Note: The "time marches on" algorithm (updateActiveCues) runs the "rules | 3638 // Note: The "time marches on" algorithm (updateActiveCues) runs the "rules |
3637 // for updating the text track rendering" (updateTextTrackDisplay) only for | 3639 // for updating the text track rendering" (updateTextTrackDisplay) only for |
3638 // "affected tracks", i.e. tracks where the the active cues have changed. | 3640 // "affected tracks", i.e. tracks where the the active cues have changed. |
3639 // This misses cues in tracks that changed mode between hidden and showing. | 3641 // This misses cues in tracks that changed mode between hidden and showing. |
3640 // This appears to be a spec bug, which we work around here: | 3642 // This appears to be a spec bug, which we work around here: |
3641 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=28236 | 3643 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=28236 |
3642 updateTextTrackDisplay(); | 3644 updateTextTrackDisplay(); |
3643 } | 3645 } |
3644 | 3646 |
3645 EventDispatchHandlingState* HTMLMediaElement::preDispatchEventHandler( | |
3646 Event* event) { | |
3647 if (event && event->type() == EventTypeNames::webkitfullscreenchange) | |
3648 configureMediaControls(); | |
3649 | |
3650 return nullptr; | |
3651 } | |
3652 | |
3653 // TODO(srirama.m): Merge it to resetMediaElement if possible and remove it. | 3647 // TODO(srirama.m): Merge it to resetMediaElement if possible and remove it. |
3654 void HTMLMediaElement::resetMediaPlayerAndMediaSource() { | 3648 void HTMLMediaElement::resetMediaPlayerAndMediaSource() { |
3655 closeMediaSource(); | 3649 closeMediaSource(); |
3656 | 3650 |
3657 { | 3651 { |
3658 AudioSourceProviderClientLockScope scope(*this); | 3652 AudioSourceProviderClientLockScope scope(*this); |
3659 clearMediaPlayerAndAudioSourceProviderClientWithoutLocking(); | 3653 clearMediaPlayerAndAudioSourceProviderClientWithoutLocking(); |
3660 } | 3654 } |
3661 | 3655 |
3662 // We haven't yet found out if any remote routes are available. | 3656 // We haven't yet found out if any remote routes are available. |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4061 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); | 4055 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); |
4062 } | 4056 } |
4063 | 4057 |
4064 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { | 4058 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { |
4065 m_mostlyFillingViewport = true; | 4059 m_mostlyFillingViewport = true; |
4066 if (m_webMediaPlayer) | 4060 if (m_webMediaPlayer) |
4067 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); | 4061 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); |
4068 } | 4062 } |
4069 | 4063 |
4070 } // namespace blink | 4064 } // namespace blink |
OLD | NEW |