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

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

Issue 1799253002: Stricter user gestures for touch - measure and warn (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaks Created 4 years, 8 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/html/AutoplayExperimentHelper.h" 5 #include "core/html/AutoplayExperimentHelper.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/frame/Settings.h" 8 #include "core/frame/Settings.h"
9 #include "core/html/HTMLMediaElement.h" 9 #include "core/html/HTMLMediaElement.h"
10 #include "core/layout/LayoutBox.h" 10 #include "core/layout/LayoutBox.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 } 76 }
77 } 77 }
78 78
79 void AutoplayExperimentHelper::playMethodCalled() 79 void AutoplayExperimentHelper::playMethodCalled()
80 { 80 {
81 // Set the pending state, even if the play isn't going to be pending. 81 // Set the pending state, even if the play isn't going to be pending.
82 // Eligibility can change if, for example, the mute status changes. 82 // Eligibility can change if, for example, the mute status changes.
83 // Having this set is okay. 83 // Having this set is okay.
84 m_playPending = true; 84 m_playPending = true;
85 85
86 if (!UserGestureIndicator::processingUserGesture()) { 86 if (!UserGestureIndicator::utilizeUserGesture()) {
87 autoplayMediaEncountered(); 87 autoplayMediaEncountered();
88 88
89 if (isEligible()) { 89 if (isEligible()) {
90 // Remember that userGestureRequiredForPlay is required for 90 // Remember that userGestureRequiredForPlay is required for
91 // us to be eligible for the experiment. 91 // us to be eligible for the experiment.
92 // If we are able to override the gesture requirement now, then 92 // If we are able to override the gesture requirement now, then
93 // do so. Otherwise, install an event listener if we need one. 93 // do so. Otherwise, install an event listener if we need one.
94 if (meetsVisibilityRequirements()) { 94 if (meetsVisibilityRequirements()) {
95 // Override the gesture and assume that play() will succeed. 95 // Override the gesture and assume that play() will succeed.
96 prepareToAutoplay(GesturelessPlaybackStartedByPlayMethodImmediat ely); 96 prepareToAutoplay(GesturelessPlaybackStartedByPlayMethodImmediat ely);
(...skipping 17 matching lines...) Expand all
114 114
115 void AutoplayExperimentHelper::pauseMethodCalled() 115 void AutoplayExperimentHelper::pauseMethodCalled()
116 { 116 {
117 // Don't try to autoplay, if we would have. 117 // Don't try to autoplay, if we would have.
118 m_playPending = false; 118 m_playPending = false;
119 unregisterForPositionUpdatesIfNeeded(); 119 unregisterForPositionUpdatesIfNeeded();
120 } 120 }
121 121
122 void AutoplayExperimentHelper::loadMethodCalled() 122 void AutoplayExperimentHelper::loadMethodCalled()
123 { 123 {
124 if (UserGestureIndicator::processingUserGesture() && isUserGestureRequiredFo rPlay()) { 124 if (isUserGestureRequiredForPlay() && UserGestureIndicator::utilizeUserGestu re()) {
125 recordAutoplayMetric(AutoplayEnabledThroughLoad); 125 recordAutoplayMetric(AutoplayEnabledThroughLoad);
126 removeUserGestureRequirement(GesturelessPlaybackEnabledByLoad); 126 removeUserGestureRequirement(GesturelessPlaybackEnabledByLoad);
127 } 127 }
128 } 128 }
129 129
130 void AutoplayExperimentHelper::mutedChanged() 130 void AutoplayExperimentHelper::mutedChanged()
131 { 131 {
132 // If we are no longer eligible for the autoplay experiment, then also 132 // If we are no longer eligible for the autoplay experiment, then also
133 // quit listening for events. If we are eligible, and if we should be 133 // quit listening for events. If we are eligible, and if we should be
134 // playing, then start playing. In other words, start playing if 134 // playing, then start playing. In other words, start playing if
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 if (m_recordedElement) 476 if (m_recordedElement)
477 return; 477 return;
478 478
479 m_recordedElement = true; 479 m_recordedElement = true;
480 recordAutoplayMetric(client().isHTMLVideoElement() 480 recordAutoplayMetric(client().isHTMLVideoElement()
481 ? AnyVideoElement 481 ? AnyVideoElement
482 : AnyAudioElement); 482 : AnyAudioElement);
483 } 483 }
484 484
485 } // namespace blink 485 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/UseCounter.h ('k') | third_party/WebKit/Source/core/html/HTMLFormElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698