OLD | NEW |
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/media/AutoplayUmaHelper.h" | 5 #include "core/html/media/AutoplayUmaHelper.h" |
6 | 6 |
7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
8 #include "core/dom/ElementVisibilityObserver.h" | 8 #include "core/dom/ElementVisibilityObserver.h" |
9 #include "core/events/Event.h" | 9 #include "core/events/Event.h" |
10 #include "core/frame/Settings.h" | 10 #include "core/frame/Settings.h" |
11 #include "core/html/HTMLMediaElement.h" | 11 #include "core/html/HTMLMediaElement.h" |
| 12 #include "core/html/media/AutoplayPolicy.h" |
12 #include "platform/Histogram.h" | 13 #include "platform/Histogram.h" |
13 #include "platform/wtf/CurrentTime.h" | 14 #include "platform/wtf/CurrentTime.h" |
14 #include "public/platform/Platform.h" | 15 #include "public/platform/Platform.h" |
15 | 16 |
16 namespace blink { | 17 namespace blink { |
17 | 18 |
18 namespace { | 19 namespace { |
19 | 20 |
20 const int32_t kMaxOffscreenDurationUmaMS = 60 * 60 * 1000; | 21 const int32_t kMaxOffscreenDurationUmaMS = 60 * 60 * 1000; |
21 const int32_t kOffscreenDurationUmaBucketCount = 50; | 22 const int32_t kOffscreenDurationUmaBucketCount = 50; |
(...skipping 81 matching lines...) Loading... |
103 element_->GetDocument().Url()); | 104 element_->GetDocument().Url()); |
104 } | 105 } |
105 } | 106 } |
106 | 107 |
107 // Record if it will be blocked by Data Saver or Autoplay setting. | 108 // Record if it will be blocked by Data Saver or Autoplay setting. |
108 if (element_->IsHTMLVideoElement() && element_->muted() && | 109 if (element_->IsHTMLVideoElement() && element_->muted() && |
109 RuntimeEnabledFeatures::autoplayMutedVideosEnabled()) { | 110 RuntimeEnabledFeatures::autoplayMutedVideosEnabled()) { |
110 bool data_saver_enabled = | 111 bool data_saver_enabled = |
111 element_->GetDocument().GetSettings() && | 112 element_->GetDocument().GetSettings() && |
112 element_->GetDocument().GetSettings()->GetDataSaverEnabled(); | 113 element_->GetDocument().GetSettings()->GetDataSaverEnabled(); |
113 bool blocked_by_setting = !element_->IsAutoplayAllowedPerSettings(); | 114 bool blocked_by_setting = |
| 115 !element_->autoplay_policy().IsAutoplayAllowedPerSettings(); |
114 | 116 |
115 if (data_saver_enabled && blocked_by_setting) { | 117 if (data_saver_enabled && blocked_by_setting) { |
116 blocked_muted_video_histogram.Count( | 118 blocked_muted_video_histogram.Count( |
117 kAutoplayBlockedReasonDataSaverAndSetting); | 119 kAutoplayBlockedReasonDataSaverAndSetting); |
118 } else if (data_saver_enabled) { | 120 } else if (data_saver_enabled) { |
119 blocked_muted_video_histogram.Count(kAutoplayBlockedReasonDataSaver); | 121 blocked_muted_video_histogram.Count(kAutoplayBlockedReasonDataSaver); |
120 } else if (blocked_by_setting) { | 122 } else if (blocked_by_setting) { |
121 blocked_muted_video_histogram.Count(kAutoplayBlockedReasonSetting); | 123 blocked_muted_video_histogram.Count(kAutoplayBlockedReasonSetting); |
122 } | 124 } |
123 } | 125 } |
(...skipping 265 matching lines...) Loading... |
389 | 391 |
390 DEFINE_TRACE(AutoplayUmaHelper) { | 392 DEFINE_TRACE(AutoplayUmaHelper) { |
391 EventListener::Trace(visitor); | 393 EventListener::Trace(visitor); |
392 ContextLifecycleObserver::Trace(visitor); | 394 ContextLifecycleObserver::Trace(visitor); |
393 visitor->Trace(element_); | 395 visitor->Trace(element_); |
394 visitor->Trace(muted_video_play_method_visibility_observer_); | 396 visitor->Trace(muted_video_play_method_visibility_observer_); |
395 visitor->Trace(muted_video_offscreen_duration_visibility_observer_); | 397 visitor->Trace(muted_video_offscreen_duration_visibility_observer_); |
396 } | 398 } |
397 | 399 |
398 } // namespace blink | 400 } // namespace blink |
OLD | NEW |