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

Unified Diff: chrome/browser/policy/device_status_collector.h

Issue 12189011: Split up chrome/browser/policy subdirectory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, add chrome/browser/chromeos/policy/OWNERS Created 7 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/device_status_collector.h
diff --git a/chrome/browser/policy/device_status_collector.h b/chrome/browser/policy/device_status_collector.h
deleted file mode 100644
index b7ef3e84e08768d477d90f058edde2880e52c3ed..0000000000000000000000000000000000000000
--- a/chrome/browser/policy/device_status_collector.h
+++ /dev/null
@@ -1,183 +0,0 @@
-// Copyright (c) 2012 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 CHROME_BROWSER_POLICY_DEVICE_STATUS_COLLECTOR_H_
-#define CHROME_BROWSER_POLICY_DEVICE_STATUS_COLLECTOR_H_
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/weak_ptr.h"
-#include "base/time.h"
-#include "base/timer.h"
-#include "chrome/browser/chromeos/version_loader.h"
-#include "chrome/browser/idle.h"
-#include "chrome/browser/policy/cloud_policy_client.h"
-#include "chrome/common/cancelable_task_tracker.h"
-#include "content/public/browser/geolocation.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/common/geoposition.h"
-
-namespace chromeos {
-class CrosSettings;
-namespace system {
-class StatisticsProvider;
-}
-}
-
-namespace content {
-class NotificationDetails;
-class NotificationSource;
-}
-
-namespace enterprise_management {
-class DeviceStatusReportRequest;
-}
-
-class PrefService;
-class PrefRegistrySimple;
-
-namespace policy {
-
-// Collects and summarizes the status of an enterprised-managed ChromeOS device.
-class DeviceStatusCollector : public CloudPolicyClient::StatusProvider,
- public content::NotificationObserver {
- public:
- // TODO(bartfab): Remove this once crbug.com/125931 is addressed and a proper
- // way to mock geolocation exists.
- typedef void(*LocationUpdateRequester)(
- const content::GeolocationUpdateCallback& callback);
-
- DeviceStatusCollector(PrefService* local_state,
- chromeos::system::StatisticsProvider* provider,
- LocationUpdateRequester location_update_requester);
- virtual ~DeviceStatusCollector();
-
- void GetStatus(enterprise_management::DeviceStatusReportRequest* request);
-
- // CloudPolicyClient::StatusProvider:
- virtual bool GetDeviceStatus(
- enterprise_management::DeviceStatusReportRequest* status) OVERRIDE;
- virtual bool GetSessionStatus(
- enterprise_management::SessionStatusReportRequest* status) OVERRIDE;
- virtual void OnSubmittedSuccessfully() OVERRIDE;
-
- static void RegisterPrefs(PrefRegistrySimple* registry);
-
- // How often, in seconds, to poll to see if the user is idle.
- static const unsigned int kIdlePollIntervalSeconds = 30;
-
- protected:
- // Check whether the user has been idle for a certain period of time.
- virtual void CheckIdleState();
-
- // Used instead of base::Time::Now(), to make testing possible.
- virtual base::Time GetCurrentTime();
-
- // Callback which receives the results of the idle state check.
- void IdleStateCallback(IdleState state);
-
- // The number of days in the past to store device activity.
- // This is kept in case device status uploads fail for a number of days.
- unsigned int max_stored_past_activity_days_;
-
- // The number of days in the future to store device activity.
- // When changing the system time and/or timezones, it's possible to record
- // activity time that is slightly in the future.
- unsigned int max_stored_future_activity_days_;
-
- private:
- // Prevents the local store of activity periods from growing too large by
- // removing entries that are outside the reporting window.
- void PruneStoredActivityPeriods(base::Time base_time);
-
- // Trims the store activity periods to only retain data within the
- // [|min_day_key|, |max_day_key|). The record for |min_day_key| will be
- // adjusted by subtracting |min_day_trim_duration|.
- void TrimStoredActivityPeriods(int64 min_day_key,
- int min_day_trim_duration,
- int64 max_day_key);
-
- void AddActivePeriod(base::Time start, base::Time end);
-
- // Callbacks from chromeos::VersionLoader.
- void OnOSVersion(const std::string& version);
- void OnOSFirmware(const std::string& version);
-
- // Helpers for the various portions of the status.
- void GetActivityTimes(
- enterprise_management::DeviceStatusReportRequest* request);
- void GetVersionInfo(
- enterprise_management::DeviceStatusReportRequest* request);
- void GetBootMode(
- enterprise_management::DeviceStatusReportRequest* request);
- void GetLocation(
- enterprise_management::DeviceStatusReportRequest* request);
-
- // Update the cached values of the reporting settings.
- void UpdateReportingSettings();
-
- // content::NotificationObserver interface.
- virtual void Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- void ScheduleGeolocationUpdateRequest();
-
- // content::GeolocationUpdateCallback implementation.
- void ReceiveGeolocationUpdate(const content::Geoposition&);
-
- // How often to poll to see if the user is idle.
- int poll_interval_seconds_;
-
- PrefService* local_state_;
-
- // The last time an idle state check was performed.
- base::Time last_idle_check_;
-
- // The maximum key that went into the last report generated by
- // GetDeviceStatus(), and the duration for it. This is used to trim the
- // stored data in OnSubmittedSuccessfully(). Trimming is delayed so
- // unsuccessful uploads don't result in dropped data.
- int64 last_reported_day_;
- int duration_for_last_reported_day_;
-
- // Whether a geolocation update is currently in progress.
- bool geolocation_update_in_progress_;
-
- base::RepeatingTimer<DeviceStatusCollector> idle_poll_timer_;
- base::OneShotTimer<DeviceStatusCollector> geolocation_update_timer_;
-
- chromeos::VersionLoader version_loader_;
- CancelableTaskTracker tracker_;
-
- std::string os_version_;
- std::string firmware_version_;
-
- content::Geoposition position_;
-
- chromeos::system::StatisticsProvider* statistics_provider_;
-
- chromeos::CrosSettings* cros_settings_;
-
- base::WeakPtrFactory<DeviceStatusCollector> weak_factory_;
-
- // TODO(bartfab): Remove this once crbug.com/125931 is addressed and a proper
- // way to mock geolocation exists.
- LocationUpdateRequester location_update_requester_;
-
- // Cached values of the reporting settings from the device policy.
- bool report_version_info_;
- bool report_activity_times_;
- bool report_boot_mode_;
- bool report_location_;
-
- DISALLOW_COPY_AND_ASSIGN(DeviceStatusCollector);
-};
-
-} // namespace policy
-
-#endif // CHROME_BROWSER_POLICY_DEVICE_STATUS_COLLECTOR_H_
« no previous file with comments | « chrome/browser/policy/device_policy_decoder_chromeos.cc ('k') | chrome/browser/policy/device_status_collector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698