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 #include "components/offline_pages/background/request_coordinator.h" | 5 #include "components/offline_pages/background/request_coordinator.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
100 // Get all matching requests from the request queue, send them to our | 100 // Get all matching requests from the request queue, send them to our |
101 // callback. We bind the namespace and callback to the front of the callback | 101 // callback. We bind the namespace and callback to the front of the callback |
102 // param set. | 102 // param set. |
103 queue_->GetRequests(base::Bind(&RequestCoordinator::GetQueuedRequestsCallback, | 103 queue_->GetRequests(base::Bind(&RequestCoordinator::GetQueuedRequestsCallback, |
104 weak_ptr_factory_.GetWeakPtr(), callback)); | 104 weak_ptr_factory_.GetWeakPtr(), callback)); |
105 } | 105 } |
106 | 106 |
107 void RequestCoordinator::GetQueuedRequestsCallback( | 107 void RequestCoordinator::GetQueuedRequestsCallback( |
108 const GetRequestsCallback& callback, | 108 const GetRequestsCallback& callback, |
109 RequestQueue::GetRequestsResult result, | 109 RequestQueue::GetRequestsResult result, |
110 const std::vector<SavePageRequest>& requests) { | 110 std::vector<std::unique_ptr<SavePageRequest>> requests) { |
111 callback.Run(requests); | 111 callback.Run(std::move(requests)); |
112 } | 112 } |
113 | 113 |
114 void RequestCoordinator::StopPrerendering() { | 114 void RequestCoordinator::StopPrerendering() { |
115 if (offliner_ && is_busy_) { | 115 if (offliner_ && is_busy_) { |
116 offliner_->Cancel(); | 116 offliner_->Cancel(); |
117 // Find current request and mark attempt aborted. | 117 // Find current request and mark attempt aborted. |
118 active_request_->MarkAttemptAborted(); | 118 active_request_->MarkAttemptAborted(); |
119 queue_->UpdateRequest(*(active_request_.get()), | 119 queue_->UpdateRequest(*(active_request_.get()), |
120 base::Bind(&RequestCoordinator::UpdateRequestCallback, | 120 base::Bind(&RequestCoordinator::UpdateRequestCallback, |
121 weak_ptr_factory_.GetWeakPtr(), | 121 weak_ptr_factory_.GetWeakPtr(), |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
200 if (result != RequestQueue::UpdateRequestResult::SUCCESS) { | 200 if (result != RequestQueue::UpdateRequestResult::SUCCESS) { |
201 DVLOG(1) << "Failed to update request attempt details. " | 201 DVLOG(1) << "Failed to update request attempt details. " |
202 << static_cast<int>(result); | 202 << static_cast<int>(result); |
203 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result); | 203 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result); |
204 } | 204 } |
205 } | 205 } |
206 | 206 |
207 // Called in response to updating multiple requests in the request queue. | 207 // Called in response to updating multiple requests in the request queue. |
208 void RequestCoordinator::UpdateMultipleRequestsCallback( | 208 void RequestCoordinator::UpdateMultipleRequestsCallback( |
209 const RequestQueue::UpdateMultipleRequestResults& results, | 209 const RequestQueue::UpdateMultipleRequestResults& results, |
210 const std::vector<SavePageRequest>& requests) { | 210 std::vector<std::unique_ptr<SavePageRequest>> requests) { |
211 for (SavePageRequest request : requests) | 211 std::vector<std::unique_ptr<SavePageRequest>>::iterator request; |
Dmitry Titov
2016/08/26 23:39:20
would something like this work:
for (const auto& r
Pete Williamson
2016/08/27 00:11:59
Done.
| |
212 NotifyChanged(request); | 212 for (request = requests.begin(); request != requests.end(); ++request) |
213 NotifyChanged(*(request->get())); | |
213 } | 214 } |
214 | 215 |
215 void RequestCoordinator::HandleRemovedRequestsAndCallback( | 216 void RequestCoordinator::HandleRemovedRequestsAndCallback( |
216 const RemoveRequestsCallback& callback, | 217 const RemoveRequestsCallback& callback, |
217 const RequestQueue::UpdateMultipleRequestResults& results, | 218 const RequestQueue::UpdateMultipleRequestResults& results, |
218 const std::vector<SavePageRequest>& requests) { | 219 std::vector<std::unique_ptr<SavePageRequest>> requests) { |
219 callback.Run(results); | 220 callback.Run(results); |
220 HandleRemovedRequests(results, requests); | 221 HandleRemovedRequests(results, std::move(requests)); |
221 } | 222 } |
222 | 223 |
223 void RequestCoordinator::HandleRemovedRequests( | 224 void RequestCoordinator::HandleRemovedRequests( |
224 const RequestQueue::UpdateMultipleRequestResults& results, | 225 const RequestQueue::UpdateMultipleRequestResults& results, |
225 const std::vector<SavePageRequest>& requests) { | 226 std::vector<std::unique_ptr<SavePageRequest>> requests) { |
226 for (SavePageRequest request : requests) | 227 std::vector<std::unique_ptr<SavePageRequest>>::iterator request; |
227 NotifyCompleted(request, SavePageStatus::REMOVED); | 228 for (request = requests.begin(); request != requests.end(); ++request) |
229 NotifyCompleted(*(request->get()), SavePageStatus::REMOVED); | |
228 } | 230 } |
229 | 231 |
230 void RequestCoordinator::StopProcessing() { | 232 void RequestCoordinator::StopProcessing() { |
231 is_stopped_ = true; | 233 is_stopped_ = true; |
232 StopPrerendering(); | 234 StopPrerendering(); |
233 | 235 |
234 // Let the scheduler know we are done processing. | 236 // Let the scheduler know we are done processing. |
235 scheduler_callback_.Run(true); | 237 scheduler_callback_.Run(true); |
236 } | 238 } |
237 | 239 |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
448 FOR_EACH_OBSERVER(Observer, observers_, OnChanged(request)); | 450 FOR_EACH_OBSERVER(Observer, observers_, OnChanged(request)); |
449 } | 451 } |
450 | 452 |
451 void RequestCoordinator::GetOffliner() { | 453 void RequestCoordinator::GetOffliner() { |
452 if (!offliner_) { | 454 if (!offliner_) { |
453 offliner_ = factory_->GetOffliner(policy_.get()); | 455 offliner_ = factory_->GetOffliner(policy_.get()); |
454 } | 456 } |
455 } | 457 } |
456 | 458 |
457 } // namespace offline_pages | 459 } // namespace offline_pages |
OLD | NEW |