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 2296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2307 } | 2307 } |
2308 | 2308 |
2309 playInternal(); | 2309 playInternal(); |
2310 | 2310 |
2311 return nullptr; | 2311 return nullptr; |
2312 } | 2312 } |
2313 | 2313 |
2314 void HTMLMediaElement::playInternal() { | 2314 void HTMLMediaElement::playInternal() { |
2315 BLINK_MEDIA_LOG << "playInternal(" << (void*)this << ")"; | 2315 BLINK_MEDIA_LOG << "playInternal(" << (void*)this << ")"; |
2316 | 2316 |
2317 // Always return the buffering strategy to normal when not paused, | |
2318 // regardless of the cause. (In contrast with aggressive buffering which is | |
2319 // only enabled by pause(), not pauseInternal().) | |
2320 if (webMediaPlayer()) | |
2321 webMediaPlayer()->setBufferingStrategy( | |
2322 WebMediaPlayer::BufferingStrategy::Normal); | |
2323 | |
2324 // 4.8.12.8. Playing the media resource | 2317 // 4.8.12.8. Playing the media resource |
2325 if (m_networkState == kNetworkEmpty) | 2318 if (m_networkState == kNetworkEmpty) |
2326 invokeResourceSelectionAlgorithm(); | 2319 invokeResourceSelectionAlgorithm(); |
2327 | 2320 |
2328 // Generally "ended" and "looping" are exclusive. Here, the loop attribute | 2321 // Generally "ended" and "looping" are exclusive. Here, the loop attribute |
2329 // is ignored to seek back to start in case loop was set after playback | 2322 // is ignored to seek back to start in case loop was set after playback |
2330 // ended. See http://crbug.com/364442 | 2323 // ended. See http://crbug.com/364442 |
2331 if (endedPlayback(LoopCondition::Ignored)) | 2324 if (endedPlayback(LoopCondition::Ignored)) |
2332 seek(0); | 2325 seek(0); |
2333 | 2326 |
(...skipping 11 matching lines...) Expand all Loading... |
2345 | 2338 |
2346 m_canAutoplay = false; | 2339 m_canAutoplay = false; |
2347 | 2340 |
2348 setIgnorePreloadNone(); | 2341 setIgnorePreloadNone(); |
2349 updatePlayState(); | 2342 updatePlayState(); |
2350 } | 2343 } |
2351 | 2344 |
2352 void HTMLMediaElement::pause() { | 2345 void HTMLMediaElement::pause() { |
2353 BLINK_MEDIA_LOG << "pause(" << (void*)this << ")"; | 2346 BLINK_MEDIA_LOG << "pause(" << (void*)this << ")"; |
2354 | 2347 |
2355 // Only buffer aggressively on a user-initiated pause. Other types of pauses | |
2356 // (which go directly to pauseInternal()) should not cause this behavior. | |
2357 if (webMediaPlayer() && UserGestureIndicator::utilizeUserGesture()) | |
2358 webMediaPlayer()->setBufferingStrategy( | |
2359 WebMediaPlayer::BufferingStrategy::Aggressive); | |
2360 | |
2361 if (m_autoplayVisibilityObserver) { | 2348 if (m_autoplayVisibilityObserver) { |
2362 m_autoplayVisibilityObserver->stop(); | 2349 m_autoplayVisibilityObserver->stop(); |
2363 m_autoplayVisibilityObserver = nullptr; | 2350 m_autoplayVisibilityObserver = nullptr; |
2364 } | 2351 } |
2365 | 2352 |
2366 pauseInternal(); | 2353 pauseInternal(); |
2367 } | 2354 } |
2368 | 2355 |
2369 void HTMLMediaElement::pauseInternal() { | 2356 void HTMLMediaElement::pauseInternal() { |
2370 BLINK_MEDIA_LOG << "pauseInternal(" << (void*)this << ")"; | 2357 BLINK_MEDIA_LOG << "pauseInternal(" << (void*)this << ")"; |
(...skipping 1870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4241 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); | 4228 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); |
4242 } | 4229 } |
4243 | 4230 |
4244 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { | 4231 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { |
4245 m_mostlyFillingViewport = true; | 4232 m_mostlyFillingViewport = true; |
4246 if (m_webMediaPlayer) | 4233 if (m_webMediaPlayer) |
4247 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); | 4234 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); |
4248 } | 4235 } |
4249 | 4236 |
4250 } // namespace blink | 4237 } // namespace blink |
OLD | NEW |