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

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

Issue 11271024: Fix DeviceStatusCollectorTest.MaxStoredPeriods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Using a fixed time, rebased Created 8 years, 1 month 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 max_stored_future_activity_days_(kMaxStoredFutureActivityDays), 86 max_stored_future_activity_days_(kMaxStoredFutureActivityDays),
87 local_state_(local_state), 87 local_state_(local_state),
88 last_idle_check_(Time()), 88 last_idle_check_(Time()),
89 geolocation_update_in_progress_(false), 89 geolocation_update_in_progress_(false),
90 statistics_provider_(provider), 90 statistics_provider_(provider),
91 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), 91 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
92 location_update_requester_(location_update_requester), 92 location_update_requester_(location_update_requester),
93 report_version_info_(false), 93 report_version_info_(false),
94 report_activity_times_(false), 94 report_activity_times_(false),
95 report_boot_mode_(false), 95 report_boot_mode_(false),
96 report_location_(false) { 96 report_location_(false) {}
97
98 DeviceStatusCollector::~DeviceStatusCollector() {
99 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceVersionInfo,
100 this);
101 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceActivityTimes,
102 this);
103 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceBootMode, this);
104 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceLocation, this);
105 }
106
107 void DeviceStatusCollector::Init() {
97 if (!location_update_requester_) 108 if (!location_update_requester_)
98 location_update_requester_ = &content::RequestLocationUpdate; 109 location_update_requester_ = &content::RequestLocationUpdate;
99 idle_poll_timer_.Start(FROM_HERE, 110 idle_poll_timer_.Start(FROM_HERE,
100 TimeDelta::FromSeconds(kIdlePollIntervalSeconds), 111 TimeDelta::FromSeconds(kIdlePollIntervalSeconds),
101 this, &DeviceStatusCollector::CheckIdleState); 112 this, &DeviceStatusCollector::CheckIdleState);
102 113
103 cros_settings_ = chromeos::CrosSettings::Get(); 114 cros_settings_ = chromeos::CrosSettings::Get();
104 115
105 // Watch for changes to the individual policies that control what the status 116 // Watch for changes to the individual policies that control what the status
106 // reports contain. 117 // reports contain.
(...skipping 30 matching lines...) Expand all
137 // Get the the OS and firmware version info. 148 // Get the the OS and firmware version info.
138 version_loader_.GetVersion(&consumer_, 149 version_loader_.GetVersion(&consumer_,
139 base::Bind(&DeviceStatusCollector::OnOSVersion, 150 base::Bind(&DeviceStatusCollector::OnOSVersion,
140 base::Unretained(this)), 151 base::Unretained(this)),
141 VersionLoader::VERSION_FULL); 152 VersionLoader::VERSION_FULL);
142 version_loader_.GetFirmware(&consumer_, 153 version_loader_.GetFirmware(&consumer_,
143 base::Bind(&DeviceStatusCollector::OnOSFirmware, 154 base::Bind(&DeviceStatusCollector::OnOSFirmware,
144 base::Unretained(this))); 155 base::Unretained(this)));
145 } 156 }
146 157
147 DeviceStatusCollector::~DeviceStatusCollector() {
148 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceVersionInfo,
149 this);
150 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceActivityTimes,
151 this);
152 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceBootMode, this);
153 cros_settings_->RemoveSettingsObserver(chromeos::kReportDeviceLocation, this);
154 }
155
156 // static 158 // static
157 void DeviceStatusCollector::RegisterPrefs(PrefService* local_state) { 159 void DeviceStatusCollector::RegisterPrefs(PrefService* local_state) {
158 local_state->RegisterDictionaryPref(prefs::kDeviceActivityTimes, 160 local_state->RegisterDictionaryPref(prefs::kDeviceActivityTimes,
159 new base::DictionaryValue); 161 new base::DictionaryValue);
160 local_state->RegisterDictionaryPref(prefs::kDeviceLocation, 162 local_state->RegisterDictionaryPref(prefs::kDeviceLocation,
161 new base::DictionaryValue); 163 new base::DictionaryValue);
162 } 164 }
163 165
164 void DeviceStatusCollector::CheckIdleState() { 166 void DeviceStatusCollector::CheckIdleState() {
165 CalculateIdleState(kIdleStateThresholdSeconds, 167 CalculateIdleState(kIdleStateThresholdSeconds,
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 UpdateReportingSettings(); 387 UpdateReportingSettings();
386 else 388 else
387 NOTREACHED(); 389 NOTREACHED();
388 } 390 }
389 391
390 void DeviceStatusCollector::ScheduleGeolocationUpdateRequest() { 392 void DeviceStatusCollector::ScheduleGeolocationUpdateRequest() {
391 if (geolocation_update_timer_.IsRunning() || geolocation_update_in_progress_) 393 if (geolocation_update_timer_.IsRunning() || geolocation_update_in_progress_)
392 return; 394 return;
393 395
394 if (position_.Validate()) { 396 if (position_.Validate()) {
395 TimeDelta elapsed = Time::Now() - position_.timestamp; 397 TimeDelta elapsed = GetCurrentTime() - position_.timestamp;
396 TimeDelta interval = 398 TimeDelta interval =
397 TimeDelta::FromSeconds(kGeolocationPollIntervalSeconds); 399 TimeDelta::FromSeconds(kGeolocationPollIntervalSeconds);
398 if (elapsed > interval) { 400 if (elapsed > interval) {
399 geolocation_update_in_progress_ = true; 401 geolocation_update_in_progress_ = true;
400 location_update_requester_(base::Bind( 402 location_update_requester_(base::Bind(
401 &DeviceStatusCollector::ReceiveGeolocationUpdate, 403 &DeviceStatusCollector::ReceiveGeolocationUpdate,
402 weak_factory_.GetWeakPtr())); 404 weak_factory_.GetWeakPtr()));
403 } else { 405 } else {
404 geolocation_update_timer_.Start( 406 geolocation_update_timer_.Start(
405 FROM_HERE, 407 FROM_HERE,
(...skipping 30 matching lines...) Expand all
436 location.SetDouble(kSpeed, position.speed); 438 location.SetDouble(kSpeed, position.speed);
437 location.SetString(kTimestamp, 439 location.SetString(kTimestamp,
438 base::Int64ToString(position.timestamp.ToInternalValue())); 440 base::Int64ToString(position.timestamp.ToInternalValue()));
439 local_state_->Set(prefs::kDeviceLocation, location); 441 local_state_->Set(prefs::kDeviceLocation, location);
440 } 442 }
441 443
442 ScheduleGeolocationUpdateRequest(); 444 ScheduleGeolocationUpdateRequest();
443 } 445 }
444 446
445 } // namespace policy 447 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698