| 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_
|
|
|