| 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_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ | 5 #ifndef COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ |
| 6 #define COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ | 6 #define COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 } | 138 } |
| 139 | 139 |
| 140 // A way to set the callback which would be called if the request will be | 140 // A way to set the callback which would be called if the request will be |
| 141 // scheduled immediately. Used by testing harness to determine if a request | 141 // scheduled immediately. Used by testing harness to determine if a request |
| 142 // has been processed. | 142 // has been processed. |
| 143 void SetImmediateScheduleCallbackForTest( | 143 void SetImmediateScheduleCallbackForTest( |
| 144 const base::Callback<void(bool)> callback) { | 144 const base::Callback<void(bool)> callback) { |
| 145 immediate_schedule_callback_ = callback; | 145 immediate_schedule_callback_ = callback; |
| 146 } | 146 } |
| 147 | 147 |
| 148 void StartImmediatelyForTest() { StartImmediatelyIfConnected(); } |
| 149 |
| 148 // Observers implementing the RequestCoordinator::Observer interface can | 150 // Observers implementing the RequestCoordinator::Observer interface can |
| 149 // register here to get notifications of changes to request state. This | 151 // register here to get notifications of changes to request state. This |
| 150 // pointer is not owned, and it is the callers responsibility to remove the | 152 // pointer is not owned, and it is the callers responsibility to remove the |
| 151 // observer before the observer is deleted. | 153 // observer before the observer is deleted. |
| 152 void AddObserver(RequestCoordinator::Observer* observer); | 154 void AddObserver(RequestCoordinator::Observer* observer); |
| 153 | 155 |
| 154 void RemoveObserver(RequestCoordinator::Observer* observer); | 156 void RemoveObserver(RequestCoordinator::Observer* observer); |
| 155 | 157 |
| 156 // Implement RequestNotifier | 158 // Implement RequestNotifier |
| 157 void NotifyAdded(const SavePageRequest& request) override; | 159 void NotifyAdded(const SavePageRequest& request) override; |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 | 334 |
| 333 void SetDeviceConditionsForTest(const DeviceConditions& current_conditions) { | 335 void SetDeviceConditionsForTest(const DeviceConditions& current_conditions) { |
| 334 current_conditions_.reset(new DeviceConditions(current_conditions)); | 336 current_conditions_.reset(new DeviceConditions(current_conditions)); |
| 335 } | 337 } |
| 336 | 338 |
| 337 // KeyedService implementation: | 339 // KeyedService implementation: |
| 338 void Shutdown() override; | 340 void Shutdown() override; |
| 339 | 341 |
| 340 friend class RequestCoordinatorTest; | 342 friend class RequestCoordinatorTest; |
| 341 | 343 |
| 344 // Cached value of whether low end device. Overwritable for testing. |
| 345 bool is_low_end_device_; |
| 346 |
| 342 // The offliner can only handle one request at a time - if the offliner is | 347 // The offliner can only handle one request at a time - if the offliner is |
| 343 // busy, prevent other requests. This flag marks whether the offliner is in | 348 // busy, prevent other requests. This flag marks whether the offliner is in |
| 344 // use. | 349 // use. |
| 345 bool is_busy_; | 350 bool is_busy_; |
| 346 // There is more than one path to start processing so this flag is used | 351 // There is more than one path to start processing so this flag is used |
| 347 // to avoid race conditions before is_busy_ is established. | 352 // to avoid race conditions before is_busy_ is established. |
| 348 bool is_starting_; | 353 bool is_starting_; |
| 349 // Identifies the type of current processing window or if processing stopped. | 354 // Identifies the type of current processing window or if processing stopped. |
| 350 ProcessingWindowState processing_state_; | 355 ProcessingWindowState processing_state_; |
| 351 // True if we should use the test connection type instead of the actual type. | 356 // True if we should use the test connection type instead of the actual type. |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 base::Callback<void(bool)> immediate_schedule_callback_; | 396 base::Callback<void(bool)> immediate_schedule_callback_; |
| 392 // Allows us to pass a weak pointer to callbacks. | 397 // Allows us to pass a weak pointer to callbacks. |
| 393 base::WeakPtrFactory<RequestCoordinator> weak_ptr_factory_; | 398 base::WeakPtrFactory<RequestCoordinator> weak_ptr_factory_; |
| 394 | 399 |
| 395 DISALLOW_COPY_AND_ASSIGN(RequestCoordinator); | 400 DISALLOW_COPY_AND_ASSIGN(RequestCoordinator); |
| 396 }; | 401 }; |
| 397 | 402 |
| 398 } // namespace offline_pages | 403 } // namespace offline_pages |
| 399 | 404 |
| 400 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ | 405 #endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_REQUEST_COORDINATOR_H_ |
| OLD | NEW |