Index: components/offline_pages/background/request_coordinator.cc |
diff --git a/components/offline_pages/background/request_coordinator.cc b/components/offline_pages/background/request_coordinator.cc |
index 5b94cef3347b8042a512d0a5075492ffcf5c4e72..dc064ffbfa7f846de4a5f623a17ed1d40a671b8b 100644 |
--- a/components/offline_pages/background/request_coordinator.cc |
+++ b/components/offline_pages/background/request_coordinator.cc |
@@ -130,8 +130,8 @@ void RequestCoordinator::GetAllRequests(const GetRequestsCallback& callback) { |
void RequestCoordinator::GetQueuedRequestsCallback( |
const GetRequestsCallback& callback, |
RequestQueue::GetRequestsResult result, |
- const std::vector<SavePageRequest>& requests) { |
- callback.Run(requests); |
+ std::vector<std::unique_ptr<SavePageRequest>> requests) { |
+ callback.Run(std::move(requests)); |
} |
void RequestCoordinator::StopPrerendering() { |
@@ -156,14 +156,14 @@ void RequestCoordinator::StopPrerendering() { |
void RequestCoordinator::GetRequestsForSchedulingCallback( |
RequestQueue::GetRequestsResult result, |
- const std::vector<SavePageRequest>& requests) { |
+ std::vector<std::unique_ptr<SavePageRequest>> requests) { |
bool user_requested = false; |
// Examine all requests, if we find a user requested one, we will use the less |
// restrictive conditions for user_requested requests. Otherwise we will use |
// the more restrictive non-user-requested conditions. |
- for (const SavePageRequest& request : requests) { |
- if (request.user_requested()) { |
+ for (const auto& request : requests) { |
+ if (request->user_requested()) { |
user_requested = true; |
break; |
} |
@@ -284,18 +284,18 @@ void RequestCoordinator::UpdateRequestCallback( |
// Called in response to updating multiple requests in the request queue. |
void RequestCoordinator::UpdateMultipleRequestsCallback( |
const RequestQueue::UpdateMultipleRequestResults& results, |
- const std::vector<SavePageRequest>& requests) { |
+ std::vector<std::unique_ptr<SavePageRequest>> requests) { |
bool available_user_request = false; |
- for (SavePageRequest request : requests) { |
- NotifyChanged(request); |
- if (!available_user_request && request.user_requested() && |
- request.request_state() == SavePageRequest::RequestState::AVAILABLE) { |
+ for (const auto& request : requests) { |
+ NotifyChanged(*(request)); |
+ if (!available_user_request && request->user_requested() && |
+ request->request_state() == SavePageRequest::RequestState::AVAILABLE) { |
// TODO(dougarnett): Consider avoiding prospect of N^2 in case |
// size of bulk requests can get large (perhaps with easier to consume |
// callback interface). |
for (std::pair<int64_t, RequestQueue::UpdateRequestResult> pair : |
results) { |
- if (pair.first == request.request_id() && |
+ if (pair.first == request->request_id() && |
pair.second == RequestQueue::UpdateRequestResult::SUCCESS) { |
// We have a successfully updated, available, user request. |
available_user_request = true; |
@@ -312,17 +312,18 @@ void RequestCoordinator::HandleRemovedRequestsAndCallback( |
const RemoveRequestsCallback& callback, |
BackgroundSavePageResult status, |
const RequestQueue::UpdateMultipleRequestResults& results, |
- const std::vector<SavePageRequest>& requests) { |
+ std::vector<std::unique_ptr<SavePageRequest>> requests) { |
callback.Run(results); |
- HandleRemovedRequests(status, results, requests); |
+ HandleRemovedRequests(status, results, std::move(requests)); |
} |
void RequestCoordinator::HandleRemovedRequests( |
BackgroundSavePageResult status, |
const RequestQueue::UpdateMultipleRequestResults& results, |
- const std::vector<SavePageRequest>& requests) { |
- for (SavePageRequest request : requests) |
- NotifyCompleted(request, status); |
+ std::vector<std::unique_ptr<SavePageRequest>> requests) { |
+ std::vector<std::unique_ptr<SavePageRequest>>::iterator request; |
+ for (request = requests.begin(); request != requests.end(); ++request) |
Bernhard Bauer
2016/09/07 10:13:41
Why this style of loop?
Pete Williamson
2016/09/07 20:21:01
I was having problems getting the type right for a
|
+ NotifyCompleted(*(request->get()), status); |
} |
void RequestCoordinator::ScheduleAsNeeded() { |