OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
58 #include "core/html/track/TextTrackContainer.h" | 58 #include "core/html/track/TextTrackContainer.h" |
59 #include "core/html/track/TextTrackList.h" | 59 #include "core/html/track/TextTrackList.h" |
60 #include "core/html/track/VideoTrack.h" | 60 #include "core/html/track/VideoTrack.h" |
61 #include "core/html/track/VideoTrackList.h" | 61 #include "core/html/track/VideoTrackList.h" |
62 #include "core/inspector/ConsoleMessage.h" | 62 #include "core/inspector/ConsoleMessage.h" |
63 #include "core/layout/LayoutVideo.h" | 63 #include "core/layout/LayoutVideo.h" |
64 #include "core/layout/LayoutView.h" | 64 #include "core/layout/LayoutView.h" |
65 #include "core/layout/compositing/DeprecatedPaintLayerCompositor.h" | 65 #include "core/layout/compositing/DeprecatedPaintLayerCompositor.h" |
66 #include "core/loader/FrameLoader.h" | 66 #include "core/loader/FrameLoader.h" |
67 #include "core/loader/FrameLoaderClient.h" | 67 #include "core/loader/FrameLoaderClient.h" |
68 #include "core/page/ChromeClient.h" | |
68 #include "platform/ContentType.h" | 69 #include "platform/ContentType.h" |
69 #include "platform/Logging.h" | 70 #include "platform/Logging.h" |
70 #include "platform/MIMETypeFromURL.h" | 71 #include "platform/MIMETypeFromURL.h" |
71 #include "platform/MIMETypeRegistry.h" | 72 #include "platform/MIMETypeRegistry.h" |
72 #include "platform/RuntimeEnabledFeatures.h" | 73 #include "platform/RuntimeEnabledFeatures.h" |
73 #include "platform/UserGestureIndicator.h" | 74 #include "platform/UserGestureIndicator.h" |
74 #include "platform/audio/AudioBus.h" | 75 #include "platform/audio/AudioBus.h" |
75 #include "platform/audio/AudioSourceProviderClient.h" | 76 #include "platform/audio/AudioSourceProviderClient.h" |
76 #include "platform/graphics/GraphicsLayer.h" | 77 #include "platform/graphics/GraphicsLayer.h" |
77 #include "platform/weborigin/SecurityOrigin.h" | 78 #include "platform/weborigin/SecurityOrigin.h" |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
356 , m_completelyLoaded(false) | 357 , m_completelyLoaded(false) |
357 , m_havePreparedToPlay(false) | 358 , m_havePreparedToPlay(false) |
358 , m_tracksAreReady(true) | 359 , m_tracksAreReady(true) |
359 , m_haveVisibleTextTrack(false) | 360 , m_haveVisibleTextTrack(false) |
360 , m_processingPreferenceChange(false) | 361 , m_processingPreferenceChange(false) |
361 , m_remoteRoutesAvailable(false) | 362 , m_remoteRoutesAvailable(false) |
362 , m_playingRemotely(false) | 363 , m_playingRemotely(false) |
363 , m_isFinalizing(false) | 364 , m_isFinalizing(false) |
364 , m_initialPlayWithoutUserGestures(false) | 365 , m_initialPlayWithoutUserGestures(false) |
365 , m_autoplayMediaCounted(false) | 366 , m_autoplayMediaCounted(false) |
367 , m_inOverlayFullscreenVideo(false) | |
366 , m_audioTracks(AudioTrackList::create(*this)) | 368 , m_audioTracks(AudioTrackList::create(*this)) |
367 , m_videoTracks(VideoTrackList::create(*this)) | 369 , m_videoTracks(VideoTrackList::create(*this)) |
368 , m_textTracks(nullptr) | 370 , m_textTracks(nullptr) |
369 #if ENABLE(WEB_AUDIO) | 371 #if ENABLE(WEB_AUDIO) |
370 , m_audioSourceNode(nullptr) | 372 , m_audioSourceNode(nullptr) |
371 #endif | 373 #endif |
372 { | 374 { |
373 #if ENABLE(OILPAN) | 375 #if ENABLE(OILPAN) |
374 ThreadState::current()->registerPreFinalizer(this); | 376 ThreadState::current()->registerPreFinalizer(this); |
375 #endif | 377 #endif |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1044 m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); | 1046 m_audioSourceProvider.wrap(m_webMediaPlayer->audioSourceProvider()); |
1045 #endif | 1047 #endif |
1046 m_webMediaPlayer->setVolume(effectiveMediaVolume()); | 1048 m_webMediaPlayer->setVolume(effectiveMediaVolume()); |
1047 | 1049 |
1048 m_webMediaPlayer->setPoster(posterImageURL()); | 1050 m_webMediaPlayer->setPoster(posterImageURL()); |
1049 | 1051 |
1050 m_webMediaPlayer->setPreload(effectivePreloadType()); | 1052 m_webMediaPlayer->setPreload(effectivePreloadType()); |
1051 | 1053 |
1052 m_webMediaPlayer->load(loadType(), kurl, corsMode()); | 1054 m_webMediaPlayer->load(loadType(), kurl, corsMode()); |
1053 | 1055 |
1054 if (isFullscreen()) | 1056 if (isFullscreen()) { |
1055 m_webMediaPlayer->enterFullscreen(); | 1057 // This handles any transition to or from fullscreen overlay mode. |
1058 document().frame()->chromeClient().enterFullScreenForElement(this); | |
1059 } | |
1056 } | 1060 } |
1057 | 1061 |
1058 void HTMLMediaElement::setPlayerPreload() | 1062 void HTMLMediaElement::setPlayerPreload() |
1059 { | 1063 { |
1060 if (m_webMediaPlayer) | 1064 if (m_webMediaPlayer) |
1061 m_webMediaPlayer->setPreload(effectivePreloadType()); | 1065 m_webMediaPlayer->setPreload(effectivePreloadType()); |
1062 | 1066 |
1063 if (loadIsDeferred() && preloadType() != WebMediaPlayer::PreloadNone) | 1067 if (loadIsDeferred() && preloadType() != WebMediaPlayer::PreloadNone) |
1064 startDeferredLoad(); | 1068 startDeferredLoad(); |
1065 } | 1069 } |
(...skipping 2128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3194 { | 3198 { |
3195 WTF_LOG(Media, "HTMLMediaElement::exitFullscreen(%p)", this); | 3199 WTF_LOG(Media, "HTMLMediaElement::exitFullscreen(%p)", this); |
3196 | 3200 |
3197 Fullscreen::from(document()).exitFullscreen(); | 3201 Fullscreen::from(document()).exitFullscreen(); |
3198 } | 3202 } |
3199 | 3203 |
3200 void HTMLMediaElement::didBecomeFullscreenElement() | 3204 void HTMLMediaElement::didBecomeFullscreenElement() |
3201 { | 3205 { |
3202 if (mediaControls()) | 3206 if (mediaControls()) |
3203 mediaControls()->enteredFullscreen(); | 3207 mediaControls()->enteredFullscreen(); |
3204 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && isHTMLVideoEl ement()) | 3208 // Cache this in case the player is destroyed before leaving fullscreen. |
3209 if ((m_inOverlayFullscreenVideo = useOverlayFullscreenVideo())) | |
Xianzhu
2015/08/03 22:39:02
Assignment in 'if' is error-prone. Please separate
watk
2015/08/03 23:36:48
Done.
| |
3205 document().layoutView()->compositor()->setNeedsCompositingUpdate(Composi tingUpdateRebuildTree); | 3210 document().layoutView()->compositor()->setNeedsCompositingUpdate(Composi tingUpdateRebuildTree); |
3206 } | 3211 } |
3207 | 3212 |
3208 void HTMLMediaElement::willStopBeingFullscreenElement() | 3213 void HTMLMediaElement::willStopBeingFullscreenElement() |
3209 { | 3214 { |
3210 if (mediaControls()) | 3215 if (mediaControls()) |
3211 mediaControls()->exitedFullscreen(); | 3216 mediaControls()->exitedFullscreen(); |
3212 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && isHTMLVideoEl ement()) | 3217 if (m_inOverlayFullscreenVideo) |
3213 document().layoutView()->compositor()->setNeedsCompositingUpdate(Composi tingUpdateRebuildTree); | 3218 document().layoutView()->compositor()->setNeedsCompositingUpdate(Composi tingUpdateRebuildTree); |
3219 m_inOverlayFullscreenVideo = false; | |
3214 } | 3220 } |
3215 | 3221 |
3216 WebLayer* HTMLMediaElement::platformLayer() const | 3222 WebLayer* HTMLMediaElement::platformLayer() const |
3217 { | 3223 { |
3218 return m_webLayer; | 3224 return m_webLayer; |
3219 } | 3225 } |
3220 | 3226 |
3221 bool HTMLMediaElement::hasClosedCaptions() const | 3227 bool HTMLMediaElement::hasClosedCaptions() const |
3222 { | 3228 { |
3223 if (m_textTracks) { | 3229 if (m_textTracks) { |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3789 visitor->trace(m_client); | 3795 visitor->trace(m_client); |
3790 } | 3796 } |
3791 | 3797 |
3792 DEFINE_TRACE(HTMLMediaElement::AudioSourceProviderImpl) | 3798 DEFINE_TRACE(HTMLMediaElement::AudioSourceProviderImpl) |
3793 { | 3799 { |
3794 visitor->trace(m_client); | 3800 visitor->trace(m_client); |
3795 } | 3801 } |
3796 #endif | 3802 #endif |
3797 | 3803 |
3798 } | 3804 } |
OLD | NEW |