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

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

Issue 2732293003: Adding UMA on page load size for pages with Media (Closed)
Patch Set: Created 3 years, 9 months 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
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */ 25 */
26 26
27 #include "core/html/HTMLMediaElement.h" 27 #include "core/html/HTMLMediaElement.h"
28 28
29 #include <limits>
RyanSturm 2017/03/07 23:49:28 git cl format keeps moving this header like this.
Charlie Harrison 2017/03/08 14:33:58 Personally I am happy doing whatever git cl format
29 #include "bindings/core/v8/ExceptionState.h" 30 #include "bindings/core/v8/ExceptionState.h"
30 #include "bindings/core/v8/Microtask.h" 31 #include "bindings/core/v8/Microtask.h"
31 #include "bindings/core/v8/ScriptController.h" 32 #include "bindings/core/v8/ScriptController.h"
32 #include "bindings/core/v8/ScriptEventListener.h" 33 #include "bindings/core/v8/ScriptEventListener.h"
33 #include "bindings/core/v8/ScriptPromiseResolver.h" 34 #include "bindings/core/v8/ScriptPromiseResolver.h"
34 #include "core/HTMLNames.h" 35 #include "core/HTMLNames.h"
35 #include "core/css/MediaList.h" 36 #include "core/css/MediaList.h"
36 #include "core/dom/Attribute.h" 37 #include "core/dom/Attribute.h"
37 #include "core/dom/DOMException.h" 38 #include "core/dom/DOMException.h"
38 #include "core/dom/ElementTraversal.h" 39 #include "core/dom/ElementTraversal.h"
(...skipping 22 matching lines...) Expand all
61 #include "core/html/track/InbandTextTrack.h" 62 #include "core/html/track/InbandTextTrack.h"
62 #include "core/html/track/TextTrackContainer.h" 63 #include "core/html/track/TextTrackContainer.h"
63 #include "core/html/track/TextTrackList.h" 64 #include "core/html/track/TextTrackList.h"
64 #include "core/html/track/VideoTrack.h" 65 #include "core/html/track/VideoTrack.h"
65 #include "core/html/track/VideoTrackList.h" 66 #include "core/html/track/VideoTrackList.h"
66 #include "core/inspector/ConsoleMessage.h" 67 #include "core/inspector/ConsoleMessage.h"
67 #include "core/layout/IntersectionGeometry.h" 68 #include "core/layout/IntersectionGeometry.h"
68 #include "core/layout/LayoutMedia.h" 69 #include "core/layout/LayoutMedia.h"
69 #include "core/layout/api/LayoutViewItem.h" 70 #include "core/layout/api/LayoutViewItem.h"
70 #include "core/layout/compositing/PaintLayerCompositor.h" 71 #include "core/layout/compositing/PaintLayerCompositor.h"
72 #include "core/loader/DocumentLoader.h"
71 #include "core/loader/FrameLoader.h" 73 #include "core/loader/FrameLoader.h"
72 #include "core/loader/FrameLoaderClient.h" 74 #include "core/loader/FrameLoaderClient.h"
73 #include "core/page/ChromeClient.h" 75 #include "core/page/ChromeClient.h"
74 #include "core/page/NetworkStateNotifier.h" 76 #include "core/page/NetworkStateNotifier.h"
75 #include "platform/Histogram.h" 77 #include "platform/Histogram.h"
76 #include "platform/LayoutTestSupport.h" 78 #include "platform/LayoutTestSupport.h"
77 #include "platform/RuntimeEnabledFeatures.h" 79 #include "platform/RuntimeEnabledFeatures.h"
78 #include "platform/UserGestureIndicator.h" 80 #include "platform/UserGestureIndicator.h"
79 #include "platform/audio/AudioBus.h" 81 #include "platform/audio/AudioBus.h"
80 #include "platform/audio/AudioSourceProviderClient.h" 82 #include "platform/audio/AudioSourceProviderClient.h"
81 #include "platform/graphics/GraphicsLayer.h" 83 #include "platform/graphics/GraphicsLayer.h"
82 #include "platform/mediastream/MediaStreamDescriptor.h" 84 #include "platform/mediastream/MediaStreamDescriptor.h"
83 #include "platform/network/mime/ContentType.h" 85 #include "platform/network/mime/ContentType.h"
84 #include "platform/network/mime/MIMETypeFromURL.h" 86 #include "platform/network/mime/MIMETypeFromURL.h"
85 #include "platform/weborigin/SecurityOrigin.h" 87 #include "platform/weborigin/SecurityOrigin.h"
86 #include "public/platform/Platform.h" 88 #include "public/platform/Platform.h"
87 #include "public/platform/WebAudioSourceProvider.h" 89 #include "public/platform/WebAudioSourceProvider.h"
88 #include "public/platform/WebContentDecryptionModule.h" 90 #include "public/platform/WebContentDecryptionModule.h"
89 #include "public/platform/WebInbandTextTrack.h" 91 #include "public/platform/WebInbandTextTrack.h"
92 #include "public/platform/WebLoadingBehaviorFlag.h"
90 #include "public/platform/WebMediaPlayerSource.h" 93 #include "public/platform/WebMediaPlayerSource.h"
91 #include "public/platform/WebMediaStream.h" 94 #include "public/platform/WebMediaStream.h"
92 #include "public/platform/modules/remoteplayback/WebRemotePlaybackAvailability.h " 95 #include "public/platform/modules/remoteplayback/WebRemotePlaybackAvailability.h "
93 #include "public/platform/modules/remoteplayback/WebRemotePlaybackClient.h" 96 #include "public/platform/modules/remoteplayback/WebRemotePlaybackClient.h"
94 #include "public/platform/modules/remoteplayback/WebRemotePlaybackState.h" 97 #include "public/platform/modules/remoteplayback/WebRemotePlaybackState.h"
95 #include "wtf/AutoReset.h" 98 #include "wtf/AutoReset.h"
96 #include "wtf/CurrentTime.h" 99 #include "wtf/CurrentTime.h"
97 #include "wtf/MathExtras.h" 100 #include "wtf/MathExtras.h"
98 #include "wtf/PtrUtil.h" 101 #include "wtf/PtrUtil.h"
99 #include "wtf/text/CString.h" 102 #include "wtf/text/CString.h"
100 #include <limits>
101 103
102 #ifndef BLINK_MEDIA_LOG 104 #ifndef BLINK_MEDIA_LOG
103 #define BLINK_MEDIA_LOG DVLOG(3) 105 #define BLINK_MEDIA_LOG DVLOG(3)
104 #endif 106 #endif
105 107
106 #ifndef LOG_MEDIA_EVENTS 108 #ifndef LOG_MEDIA_EVENTS
107 // Default to not logging events because so many are generated they can 109 // Default to not logging events because so many are generated they can
108 // overwhelm the rest of the logging. 110 // overwhelm the rest of the logging.
109 #define LOG_MEDIA_EVENTS 0 111 #define LOG_MEDIA_EVENTS 0
110 #endif 112 #endif
(...skipping 2199 matching lines...) Expand 10 before | Expand all | Expand 10 after
2310 scheduleEvent(EventTypeNames::play); 2312 scheduleEvent(EventTypeNames::play);
2311 2313
2312 if (m_readyState <= kHaveCurrentData) 2314 if (m_readyState <= kHaveCurrentData)
2313 scheduleEvent(EventTypeNames::waiting); 2315 scheduleEvent(EventTypeNames::waiting);
2314 else if (m_readyState >= kHaveFutureData) 2316 else if (m_readyState >= kHaveFutureData)
2315 scheduleNotifyPlaying(); 2317 scheduleNotifyPlaying();
2316 } else if (m_readyState >= kHaveFutureData) { 2318 } else if (m_readyState >= kHaveFutureData) {
2317 scheduleResolvePlayPromises(); 2319 scheduleResolvePlayPromises();
2318 } 2320 }
2319 2321
2322 document().loader()->didObserveLoadingBehavior(
2323 WebLoadingBehaviorFlag::WebLoadingBehaviorMediaPlayed);
2324
2320 m_canAutoplay = false; 2325 m_canAutoplay = false;
2321 2326
2322 setIgnorePreloadNone(); 2327 setIgnorePreloadNone();
2323 updatePlayState(); 2328 updatePlayState();
2324 } 2329 }
2325 2330
2326 void HTMLMediaElement::pause() { 2331 void HTMLMediaElement::pause() {
2327 BLINK_MEDIA_LOG << "pause(" << (void*)this << ")"; 2332 BLINK_MEDIA_LOG << "pause(" << (void*)this << ")";
2328 2333
2329 // Only buffer aggressively on a user-initiated pause. Other types of pauses 2334 // Only buffer aggressively on a user-initiated pause. Other types of pauses
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after
4168 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE); 4173 kMostlyFillViewportBecomeStableSeconds, BLINK_FROM_HERE);
4169 } 4174 }
4170 4175
4171 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) { 4176 void HTMLMediaElement::viewportFillDebouncerTimerFired(TimerBase*) {
4172 m_mostlyFillingViewport = true; 4177 m_mostlyFillingViewport = true;
4173 if (m_webMediaPlayer) 4178 if (m_webMediaPlayer)
4174 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport); 4179 m_webMediaPlayer->becameDominantVisibleContent(m_mostlyFillingViewport);
4175 } 4180 }
4176 4181
4177 } // namespace blink 4182 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698