Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: chrome/browser/policy/device_status_collector.cc

Issue 8920003: Add OS and firmware version to device status reports. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile problem in non-ChromeOS builds. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/policy/device_status_collector.h" 5 #include "chrome/browser/policy/device_status_collector.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/message_loop.h"
10 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
11 #include "base/task.h"
12 #include "base/time.h"
13 #include "chrome/browser/idle.h"
14 #include "chrome/browser/policy/proto/device_management_backend.pb.h" 10 #include "chrome/browser/policy/proto/device_management_backend.pb.h"
15 #include "chrome/browser/prefs/pref_service.h" 11 #include "chrome/browser/prefs/pref_service.h"
16 #include "chrome/browser/prefs/scoped_user_pref_update.h" 12 #include "chrome/browser/prefs/scoped_user_pref_update.h"
17 13
18 using base::Time; 14 using base::Time;
19 using base::TimeDelta; 15 using base::TimeDelta;
16 using chromeos::VersionLoader;
20 17
21 namespace em = enterprise_management; 18 namespace em = enterprise_management;
22 19
23 namespace { 20 namespace {
24 // How many seconds of inactivity triggers the idle state. 21 // How many seconds of inactivity triggers the idle state.
25 const unsigned int kIdleStateThresholdSeconds = 300; 22 const unsigned int kIdleStateThresholdSeconds = 300;
26 23
27 // The maximum number of time periods stored in the local state. 24 // The maximum number of time periods stored in the local state.
28 const unsigned int kMaxStoredActivePeriods = 500; 25 const unsigned int kMaxStoredActivePeriods = 500;
29 26
(...skipping 16 matching lines...) Expand all
46 43
47 DeviceStatusCollector::DeviceStatusCollector(PrefService* local_state) 44 DeviceStatusCollector::DeviceStatusCollector(PrefService* local_state)
48 : max_stored_active_periods_(kMaxStoredActivePeriods), 45 : max_stored_active_periods_(kMaxStoredActivePeriods),
49 local_state_(local_state), 46 local_state_(local_state),
50 last_idle_check_(Time()), 47 last_idle_check_(Time()),
51 last_idle_state_(IDLE_STATE_UNKNOWN) { 48 last_idle_state_(IDLE_STATE_UNKNOWN) {
52 timer_.Start(FROM_HERE, 49 timer_.Start(FROM_HERE,
53 TimeDelta::FromSeconds( 50 TimeDelta::FromSeconds(
54 DeviceStatusCollector::kPollIntervalSeconds), 51 DeviceStatusCollector::kPollIntervalSeconds),
55 this, &DeviceStatusCollector::CheckIdleState); 52 this, &DeviceStatusCollector::CheckIdleState);
53
54 // Get the the OS and firmware version info.
55 version_loader_.GetVersion(&consumer_,
56 base::Bind(&DeviceStatusCollector::OnOSVersion,
57 base::Unretained(this)),
58 VersionLoader::VERSION_FULL);
59 version_loader_.GetFirmware(&consumer_,
60 base::Bind(&DeviceStatusCollector::OnOSFirmware,
61 base::Unretained(this)));
56 } 62 }
57 63
58 DeviceStatusCollector::~DeviceStatusCollector() { 64 DeviceStatusCollector::~DeviceStatusCollector() {
59 } 65 }
60 66
61 // static 67 // static
62 void DeviceStatusCollector::RegisterPrefs(PrefService* local_state) { 68 void DeviceStatusCollector::RegisterPrefs(PrefService* local_state) {
63 local_state->RegisterInt64Pref(kPrefBaselineTime, Time::Now().ToTimeT()); 69 local_state->RegisterInt64Pref(kPrefBaselineTime, Time::Now().ToTimeT());
64 local_state->RegisterListPref(kPrefDeviceActivePeriods, new ListValue); 70 local_state->RegisterListPref(kPrefDeviceActivePeriods, new ListValue);
65 } 71 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 // Something is amiss -- bail out. 146 // Something is amiss -- bail out.
141 NOTREACHED(); 147 NOTREACHED();
142 break; 148 break;
143 } 149 }
144 time_period = request->add_active_time(); 150 time_period = request->add_active_time();
145 time_period->set_start_timestamp(start); 151 time_period->set_start_timestamp(start);
146 time_period->set_end_timestamp(end); 152 time_period->set_end_timestamp(end);
147 } 153 }
148 ListPrefUpdate update(local_state_, kPrefDeviceActivePeriods); 154 ListPrefUpdate update(local_state_, kPrefDeviceActivePeriods);
149 update.Get()->Clear(); 155 update.Get()->Clear();
156
157 request->set_os_version(os_version_);
158 request->set_firmware_version(firmware_version_);
159 }
160
161 void DeviceStatusCollector::OnOSVersion(VersionLoader::Handle handle,
162 std::string version) {
163 os_version_ = version;
164 }
165
166 void DeviceStatusCollector::OnOSFirmware(VersionLoader::Handle handle,
167 std::string version) {
168 firmware_version_ = version;
150 } 169 }
151 170
152 } // namespace policy 171 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698