| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/metrics/user_metrics_recorder.h" | 5 #include "ash/metrics/user_metrics_recorder.h" |
| 6 | 6 |
| 7 #include "ash/common/session/session_state_delegate.h" | 7 #include "ash/common/session/session_state_delegate.h" |
| 8 #include "ash/common/shelf/shelf_delegate.h" | 8 #include "ash/common/shelf/shelf_delegate.h" |
| 9 #include "ash/common/shelf/shelf_item_types.h" | 9 #include "ash/common/shelf/shelf_item_types.h" |
| 10 #include "ash/common/shelf/shelf_model.h" | 10 #include "ash/common/shelf/shelf_model.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 } | 85 } |
| 86 return active_window_state_type; | 86 return active_window_state_type; |
| 87 } | 87 } |
| 88 | 88 |
| 89 // Returns true if kiosk mode is active. | 89 // Returns true if kiosk mode is active. |
| 90 bool IsKioskModeActive() { | 90 bool IsKioskModeActive() { |
| 91 return WmShell::Get()->system_tray_delegate()->GetUserLoginStatus() == | 91 return WmShell::Get()->system_tray_delegate()->GetUserLoginStatus() == |
| 92 LoginStatus::KIOSK_APP; | 92 LoginStatus::KIOSK_APP; |
| 93 } | 93 } |
| 94 | 94 |
| 95 // Returns true if ARC kiosk mode is active. |
| 96 bool IsArcKioskModeActive() { |
| 97 return WmShell::Get()->system_tray_delegate()->GetUserLoginStatus() == |
| 98 LoginStatus::ARC_KIOSK_APP; |
| 99 } |
| 100 |
| 95 // Returns true if there is an active user and their session isn't currently | 101 // Returns true if there is an active user and their session isn't currently |
| 96 // locked. | 102 // locked. |
| 97 bool IsUserActive() { | 103 bool IsUserActive() { |
| 98 switch (WmShell::Get()->system_tray_delegate()->GetUserLoginStatus()) { | 104 switch (WmShell::Get()->system_tray_delegate()->GetUserLoginStatus()) { |
| 99 case LoginStatus::NOT_LOGGED_IN: | 105 case LoginStatus::NOT_LOGGED_IN: |
| 100 case LoginStatus::LOCKED: | 106 case LoginStatus::LOCKED: |
| 101 return false; | 107 return false; |
| 102 case LoginStatus::USER: | 108 case LoginStatus::USER: |
| 103 case LoginStatus::OWNER: | 109 case LoginStatus::OWNER: |
| 104 case LoginStatus::GUEST: | 110 case LoginStatus::GUEST: |
| 105 case LoginStatus::PUBLIC: | 111 case LoginStatus::PUBLIC: |
| 106 case LoginStatus::SUPERVISED: | 112 case LoginStatus::SUPERVISED: |
| 107 case LoginStatus::KIOSK_APP: | 113 case LoginStatus::KIOSK_APP: |
| 114 case LoginStatus::ARC_KIOSK_APP: |
| 108 return true; | 115 return true; |
| 109 } | 116 } |
| 110 NOTREACHED(); | 117 NOTREACHED(); |
| 111 return false; | 118 return false; |
| 112 } | 119 } |
| 113 | 120 |
| 114 // Array of window container ids that contain visible windows to be counted for | 121 // Array of window container ids that contain visible windows to be counted for |
| 115 // UMA statistics. Note the containers are ordered from top most visible | 122 // UMA statistics. Note the containers are ordered from top most visible |
| 116 // container to the lowest to allow the |GetNumVisibleWindows| method to short | 123 // container to the lowest to allow the |GetNumVisibleWindows| method to short |
| 117 // circuit when processing a maximized or fullscreen window. | 124 // circuit when processing a maximized or fullscreen window. |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 // TODO(bruthig): Find out if this should only be logged when the user is | 649 // TODO(bruthig): Find out if this should only be logged when the user is |
| 643 // active. | 650 // active. |
| 644 // TODO(bruthig): Consider tracking how long a particular type of window is | 651 // TODO(bruthig): Consider tracking how long a particular type of window is |
| 645 // active at a time. | 652 // active at a time. |
| 646 UMA_HISTOGRAM_ENUMERATION("Ash.ActiveWindowShowTypeOverTime", | 653 UMA_HISTOGRAM_ENUMERATION("Ash.ActiveWindowShowTypeOverTime", |
| 647 GetActiveWindowState(), | 654 GetActiveWindowState(), |
| 648 ACTIVE_WINDOW_STATE_TYPE_COUNT); | 655 ACTIVE_WINDOW_STATE_TYPE_COUNT); |
| 649 } | 656 } |
| 650 | 657 |
| 651 bool UserMetricsRecorder::IsUserInActiveDesktopEnvironment() const { | 658 bool UserMetricsRecorder::IsUserInActiveDesktopEnvironment() const { |
| 652 return IsUserActive() && !IsKioskModeActive(); | 659 return IsUserActive() && !IsKioskModeActive() && !IsArcKioskModeActive(); |
| 653 } | 660 } |
| 654 | 661 |
| 655 void UserMetricsRecorder::StartTimer() { | 662 void UserMetricsRecorder::StartTimer() { |
| 656 timer_.Start(FROM_HERE, | 663 timer_.Start(FROM_HERE, |
| 657 base::TimeDelta::FromSeconds(kAshPeriodicMetricsTimeInSeconds), | 664 base::TimeDelta::FromSeconds(kAshPeriodicMetricsTimeInSeconds), |
| 658 this, &UserMetricsRecorder::RecordPeriodicMetrics); | 665 this, &UserMetricsRecorder::RecordPeriodicMetrics); |
| 659 } | 666 } |
| 660 | 667 |
| 661 } // namespace ash | 668 } // namespace ash |
| OLD | NEW |