Policy: check MustRemainInstalled in addition to UserMayModifySettings before offerin...
[chromium-blink-merge.git] / chromeos / login_event_recorder.h
blobf4d0f8b072916217e089901a3dc78b4d4f649d8f
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMEOS_LOGIN_EVENT_RECORDER_H_
6 #define CHROMEOS_LOGIN_EVENT_RECORDER_H_
8 #include <string>
10 #include "base/macros.h"
11 #include "chromeos/chromeos_export.h"
13 namespace chromeos {
15 // LoginEventRecorder records the bootimes of Chrome OS.
16 // Actual implementation is handled by delegate.
17 class CHROMEOS_EXPORT LoginEventRecorder {
18 public:
19 class Delegate {
20 public:
21 // Add a time marker for login. A timeline will be dumped to
22 // /tmp/login-times-sent after login is done. If |send_to_uma| is true
23 // the time between this marker and the last will be sent to UMA with
24 // the identifier BootTime.|marker_name|.
25 virtual void AddLoginTimeMarker(const std::string& marker_name,
26 bool send_to_uma) = 0;
28 // Record events for successful authentication.
29 virtual void RecordAuthenticationSuccess() = 0;
31 // Record events for authentication failure.
32 virtual void RecordAuthenticationFailure() = 0;
34 LoginEventRecorder();
35 virtual ~LoginEventRecorder();
37 static LoginEventRecorder* Get();
39 void SetDelegate(Delegate* delegate);
41 // Add a time marker for login. A timeline will be dumped to
42 // /tmp/login-times-sent after login is done. If |send_to_uma| is true
43 // the time between this marker and the last will be sent to UMA with
44 // the identifier BootTime.|marker_name|.
45 void AddLoginTimeMarker(const std::string& marker_name, bool send_to_uma);
47 // Record events for successful authentication.
48 void RecordAuthenticationSuccess();
50 // Record events for authentication failure.
51 void RecordAuthenticationFailure();
53 private:
54 Delegate* delegate_;
56 DISALLOW_COPY_AND_ASSIGN(LoginEventRecorder);
59 } // namespace chromeos
61 #endif // CHROMEOS_LOGIN_EVENT_RECORDER_H_