Index: third_party/WebKit/Source/core/html/AutoplayUmaHelper.h |
diff --git a/third_party/WebKit/Source/core/html/AutoplayUmaHelper.h b/third_party/WebKit/Source/core/html/AutoplayUmaHelper.h |
deleted file mode 100644 |
index 82130ef27566f342d2e972181b0c85adeeedc277..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/Source/core/html/AutoplayUmaHelper.h |
+++ /dev/null |
@@ -1,149 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef AutoplayUmaHelper_h |
-#define AutoplayUmaHelper_h |
- |
-#include "core/CoreExport.h" |
-#include "core/dom/ContextLifecycleObserver.h" |
-#include "core/events/EventListener.h" |
-#include "platform/heap/Handle.h" |
- |
-#include <set> |
- |
-namespace blink { |
- |
-// These values are used for histograms. Do not reorder. |
-enum class AutoplaySource { |
- // Autoplay comes from HTMLMediaElement `autoplay` attribute. |
- Attribute = 0, |
- // Autoplay comes from `play()` method. |
- Method = 1, |
- // Used for checking dual source. |
- NumberOfSources = 2, |
- // Both sources are used. |
- DualSource = 2, |
- // This enum value must be last. |
- NumberOfUmaSources = 3, |
-}; |
- |
-// These values are used for histograms. Do not reorder. |
-enum class AutoplayUnmuteActionStatus { |
- Failure = 0, |
- Success = 1, |
- NumberOfStatus = 2, |
-}; |
- |
-// These values are used for histograms. Do not reorder. |
-enum AutoplayBlockedReason { |
- AutoplayBlockedReasonDataSaver = 0, |
- AutoplayBlockedReasonSetting = 1, |
- AutoplayBlockedReasonDataSaverAndSetting = 2, |
- // Keey at the end. |
- AutoplayBlockedReasonMax = 3 |
-}; |
- |
-enum class CrossOriginAutoplayResult { |
- AutoplayAllowed = 0, |
- AutoplayBlocked = 1, |
- PlayedWithGesture = 2, |
- UserPaused = 3, |
- // Keep at the end. |
- NumberOfResults = 4, |
-}; |
- |
-class Document; |
-class ElementVisibilityObserver; |
-class HTMLMediaElement; |
- |
-class CORE_EXPORT AutoplayUmaHelper : public EventListener, |
- public ContextLifecycleObserver { |
- USING_GARBAGE_COLLECTED_MIXIN(AutoplayUmaHelper); |
- |
- public: |
- static AutoplayUmaHelper* create(HTMLMediaElement*); |
- |
- ~AutoplayUmaHelper(); |
- |
- bool operator==(const EventListener&) const override; |
- |
- void contextDestroyed(ExecutionContext*) override; |
- |
- void onAutoplayInitiated(AutoplaySource); |
- |
- void recordCrossOriginAutoplayResult(CrossOriginAutoplayResult); |
- void recordAutoplayUnmuteStatus(AutoplayUnmuteActionStatus); |
- |
- void didMoveToNewDocument(Document& oldDocument); |
- |
- bool isVisible() const { return m_isVisible; } |
- |
- bool hasSource() const { return !m_sources.empty(); } |
- |
- DECLARE_VIRTUAL_TRACE(); |
- |
- private: |
- friend class MockAutoplayUmaHelper; |
- |
- explicit AutoplayUmaHelper(HTMLMediaElement*); |
- void handleEvent(ExecutionContext*, Event*) override; |
- void handlePlayingEvent(); |
- void handlePauseEvent(); |
- virtual void handleContextDestroyed(); // Make virtual for testing. |
- |
- void maybeUnregisterContextDestroyedObserver(); |
- void maybeUnregisterMediaElementPauseListener(); |
- |
- void maybeStartRecordingMutedVideoPlayMethodBecomeVisible(); |
- void maybeStopRecordingMutedVideoPlayMethodBecomeVisible(bool isVisible); |
- |
- void maybeStartRecordingMutedVideoOffscreenDuration(); |
- void maybeStopRecordingMutedVideoOffscreenDuration(); |
- |
- void maybeRecordUserPausedAutoplayingCrossOriginVideo(); |
- |
- void onVisibilityChangedForMutedVideoOffscreenDuration(bool isVisibile); |
- void onVisibilityChangedForMutedVideoPlayMethodBecomeVisible(bool isVisible); |
- |
- bool shouldListenToContextDestroyed() const; |
- bool shouldRecordUserPausedAutoplayingCrossOriginVideo() const; |
- |
- // The autoplay sources. |
- std::set<AutoplaySource> m_sources; |
- |
- // The media element this UMA helper is attached to. |m_element| owns |this|. |
- Member<HTMLMediaElement> m_element; |
- |
- // The observer is used to observe whether a muted video autoplaying by play() |
- // method become visible at some point. |
- // The UMA is pending for recording as long as this observer is non-null. |
- Member<ElementVisibilityObserver> m_mutedVideoPlayMethodVisibilityObserver; |
- |
- // ----------------------------------------------------------------------- |
- // Variables used for recording the duration of autoplay muted video playing |
- // offscreen. The variables are valid when |
- // |m_autoplayOffscrenVisibilityObserver| is non-null. |
- // The recording stops whenever the playback pauses or the page is unloaded. |
- |
- // The starting time of autoplaying muted video. |
- int64_t m_mutedVideoAutoplayOffscreenStartTimeMS; |
- |
- // The duration an autoplaying muted video has been in offscreen. |
- int64_t m_mutedVideoAutoplayOffscreenDurationMS; |
- |
- // Whether an autoplaying muted video is visible. |
- bool m_isVisible; |
- |
- std::set<CrossOriginAutoplayResult> m_recordedCrossOriginAutoplayResults; |
- |
- // The observer is used to observer an autoplaying muted video changing it's |
- // visibility, which is used for offscreen duration UMA. The UMA is pending |
- // for recording as long as this observer is non-null. |
- Member<ElementVisibilityObserver> |
- m_mutedVideoOffscreenDurationVisibilityObserver; |
-}; |
- |
-} // namespace blink |
- |
-#endif // AutoplayUmaHelper_h |