| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ | 5 #ifndef COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ |
| 6 #define COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ | 6 #define COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 // files ("Quirks"). The manager presents an external Quirks API, handles | 50 // files ("Quirks"). The manager presents an external Quirks API, handles |
| 51 // needed components from browser (local preferences, url context getter, | 51 // needed components from browser (local preferences, url context getter, |
| 52 // blocking pool, etc), and owns clients and manages their life cycles. | 52 // blocking pool, etc), and owns clients and manages their life cycles. |
| 53 class QUIRKS_EXPORT QuirksManager { | 53 class QUIRKS_EXPORT QuirksManager { |
| 54 public: | 54 public: |
| 55 // Passed function to create a URLFetcher for tests. | 55 // Passed function to create a URLFetcher for tests. |
| 56 // Same parameters as URLFetcher::Create(). | 56 // Same parameters as URLFetcher::Create(). |
| 57 using FakeQuirksFetcherCreator = base::Callback< | 57 using FakeQuirksFetcherCreator = base::Callback< |
| 58 std::unique_ptr<net::URLFetcher>(const GURL&, net::URLFetcherDelegate*)>; | 58 std::unique_ptr<net::URLFetcher>(const GURL&, net::URLFetcherDelegate*)>; |
| 59 | 59 |
| 60 // Callback after getting days since OOBE on blocking pool. | |
| 61 // Parameter is returned number of days. | |
| 62 using DaysSinceOobeCallback = base::Callback<void(int)>; | |
| 63 | |
| 64 // Delegate class, so implementation can access browser functionality. | 60 // Delegate class, so implementation can access browser functionality. |
| 65 class Delegate { | 61 class Delegate { |
| 66 public: | 62 public: |
| 67 virtual ~Delegate() = default; | 63 virtual ~Delegate() = default; |
| 68 | 64 |
| 69 // Provides Chrome API key for quirks server. | 65 // Provides Chrome API key for quirks server. |
| 70 virtual std::string GetApiKey() const = 0; | 66 virtual std::string GetApiKey() const = 0; |
| 71 | 67 |
| 72 // Returns the read-only directory where icc files were added before the | 68 // Returns the read-only directory where icc files were added before the |
| 73 // Quirks Client provided them. | 69 // Quirks Client provided them. |
| 74 virtual base::FilePath GetBuiltInDisplayProfileDirectory() const = 0; | 70 virtual base::FilePath GetBuiltInDisplayProfileDirectory() const = 0; |
| 75 | 71 |
| 76 // Returns the path to the writable display profile directory. | 72 // Returns the path to the writable display profile directory. |
| 77 // This directory must already exist. | 73 // This directory must already exist. |
| 78 virtual base::FilePath GetDownloadDisplayProfileDirectory() const = 0; | 74 virtual base::FilePath GetDownloadDisplayProfileDirectory() const = 0; |
| 79 | 75 |
| 80 // Whether downloads are allowed by enterprise device policy. | 76 // Whether downloads are allowed by enterprise device policy. |
| 81 virtual bool DevicePolicyEnabled() const = 0; | 77 virtual bool DevicePolicyEnabled() const = 0; |
| 82 | 78 |
| 83 // Gets days since first login, returned via callback. | |
| 84 virtual void GetDaysSinceOobe(DaysSinceOobeCallback callback) const = 0; | |
| 85 | |
| 86 private: | 79 private: |
| 87 DISALLOW_ASSIGN(Delegate); | 80 DISALLOW_ASSIGN(Delegate); |
| 88 }; | 81 }; |
| 89 | 82 |
| 90 static void Initialize( | 83 static void Initialize( |
| 91 std::unique_ptr<Delegate> delegate, | 84 std::unique_ptr<Delegate> delegate, |
| 92 scoped_refptr<base::SequencedWorkerPool> blocking_pool, | 85 scoped_refptr<base::SequencedWorkerPool> blocking_pool, |
| 93 PrefService* local_state, | 86 PrefService* local_state, |
| 94 scoped_refptr<net::URLRequestContextGetter> url_context_getter); | 87 scoped_refptr<net::URLRequestContextGetter> url_context_getter); |
| 95 static void Shutdown(); | 88 static void Shutdown(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 PrefService* local_state, | 125 PrefService* local_state, |
| 133 scoped_refptr<net::URLRequestContextGetter> url_context_getter); | 126 scoped_refptr<net::URLRequestContextGetter> url_context_getter); |
| 134 ~QuirksManager(); | 127 ~QuirksManager(); |
| 135 | 128 |
| 136 // Callback after checking for existing icc file; proceed if not found. | 129 // Callback after checking for existing icc file; proceed if not found. |
| 137 void OnIccFilePathRequestCompleted( | 130 void OnIccFilePathRequestCompleted( |
| 138 int64_t product_id, | 131 int64_t product_id, |
| 139 const RequestFinishedCallback& on_request_finished, | 132 const RequestFinishedCallback& on_request_finished, |
| 140 base::FilePath path); | 133 base::FilePath path); |
| 141 | 134 |
| 142 // Callback after checking OOBE date; launch client if appropriate. | |
| 143 void OnDaysSinceOobeReceived( | |
| 144 int64_t product_id, | |
| 145 const RequestFinishedCallback& on_request_finished, | |
| 146 int days_since_oobe); | |
| 147 | |
| 148 // Create and start a client to download file. | |
| 149 void CreateClient(int64_t product_id, | |
| 150 const RequestFinishedCallback& on_request_finished); | |
| 151 | |
| 152 // Whether downloads allowed by cmd line flag and device policy. | 135 // Whether downloads allowed by cmd line flag and device policy. |
| 153 bool QuirksEnabled(); | 136 bool QuirksEnabled(); |
| 154 | 137 |
| 155 // Records time of most recent server check. | 138 // Records time of most recent server check. |
| 156 void SetLastServerCheck(int64_t product_id, const base::Time& last_check); | 139 void SetLastServerCheck(int64_t product_id, const base::Time& last_check); |
| 157 | 140 |
| 158 // Set of active clients, each created to download a different Quirks file. | 141 // Set of active clients, each created to download a different Quirks file. |
| 159 std::set<std::unique_ptr<QuirksClient>> clients_; | 142 std::set<std::unique_ptr<QuirksClient>> clients_; |
| 160 | 143 |
| 161 // Don't start downloads before first session login. | 144 // Don't start downloads before first session login. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 174 | 157 |
| 175 // Factory for callbacks. | 158 // Factory for callbacks. |
| 176 base::WeakPtrFactory<QuirksManager> weak_ptr_factory_; | 159 base::WeakPtrFactory<QuirksManager> weak_ptr_factory_; |
| 177 | 160 |
| 178 DISALLOW_COPY_AND_ASSIGN(QuirksManager); | 161 DISALLOW_COPY_AND_ASSIGN(QuirksManager); |
| 179 }; | 162 }; |
| 180 | 163 |
| 181 } // namespace quirks | 164 } // namespace quirks |
| 182 | 165 |
| 183 #endif // COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ | 166 #endif // COMPONENTS_QUIRKS_QUIRKS_MANAGER_H_ |
| OLD | NEW |