diff options
Diffstat (limited to 'chromium/content/browser/media/session/media_session_uma_helper.h')
-rw-r--r-- | chromium/content/browser/media/session/media_session_uma_helper.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/content/browser/media/session/media_session_uma_helper.h b/chromium/content/browser/media/session/media_session_uma_helper.h new file mode 100644 index 00000000000..290c3b94a4c --- /dev/null +++ b/chromium/content/browser/media/session/media_session_uma_helper.h @@ -0,0 +1,54 @@ +// Copyright 2015 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 CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_ +#define CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_ + +#include <memory> + +#include "base/time/clock.h" +#include "content/common/content_export.h" + +namespace base { +class Clock; +} // base namespace + +namespace content { + +class CONTENT_EXPORT MediaSessionUmaHelper { + public: + // This is used for UMA histogram (Media.Session.Suspended). New values should + // be appended only and must be added before |Count|. + enum class MediaSessionSuspendedSource { + SystemTransient = 0, + SystemPermanent = 1, + UI = 2, + CONTENT = 3, + SystemTransientDuck = 4, + Count // Leave at the end. + }; + + MediaSessionUmaHelper(); + ~MediaSessionUmaHelper(); + + void RecordSessionSuspended(MediaSessionSuspendedSource source) const; + + // Record the result of calling the native requestAudioFocus(). + void RecordRequestAudioFocusResult(bool result) const; + + void OnSessionActive(); + void OnSessionSuspended(); + void OnSessionInactive(); + + void SetClockForTest(std::unique_ptr<base::Clock> testing_clock); + + private: + base::TimeDelta total_active_time_; + base::Time current_active_time_; + std::unique_ptr<base::Clock> clock_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_MEDIA_SESSION_MEDIA_SESSION_UMA_HELPER_H_ |