Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: components/offline_pages/background/request_coordinator.cc

Issue 2372043002: [Offline pages] Applying TaskQueue to RequestQueue::ChangeRequestsState (Closed)
Patch Set: Addressing CR feedback and rebasing Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 RequestQueue::UpdateRequestResult result) { 287 RequestQueue::UpdateRequestResult result) {
288 // If the request succeeded, nothing to do. If it failed, we can't really do 288 // If the request succeeded, nothing to do. If it failed, we can't really do
289 // much, so just log it. 289 // much, so just log it.
290 if (result != RequestQueue::UpdateRequestResult::SUCCESS) { 290 if (result != RequestQueue::UpdateRequestResult::SUCCESS) {
291 DVLOG(1) << "Failed to update request attempt details. " 291 DVLOG(1) << "Failed to update request attempt details. "
292 << static_cast<int>(result); 292 << static_cast<int>(result);
293 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result); 293 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result);
294 } 294 }
295 } 295 }
296 296
297 // Called in response to updating multiple requests in the request queue.
298 void RequestCoordinator::UpdateMultipleRequestsCallback( 297 void RequestCoordinator::UpdateMultipleRequestsCallback(
299 const RequestQueue::UpdateMultipleRequestResults& results, 298 std::unique_ptr<UpdateRequestsResult> result) {
300 std::vector<std::unique_ptr<SavePageRequest>> requests) { 299 for (const auto& request : result->updated_items)
300 NotifyChanged(request);
301
301 bool available_user_request = false; 302 bool available_user_request = false;
302 for (const auto& request : requests) { 303 for (const auto& request : result->updated_items) {
dougarnett 2016/09/29 21:02:49 Could have just one iteration through updated_item
fgorski 2016/09/30 23:14:35 I know, but I prefer this, because it is the same
303 NotifyChanged(*(request)); 304 if (!available_user_request && request.user_requested() &&
304 if (!available_user_request && request->user_requested() && 305 request.request_state() == SavePageRequest::RequestState::AVAILABLE) {
305 request->request_state() == SavePageRequest::RequestState::AVAILABLE) { 306 available_user_request = true;
306 // TODO(dougarnett): Consider avoiding prospect of N^2 in case
307 // size of bulk requests can get large (perhaps with easier to consume
308 // callback interface).
309 for (std::pair<int64_t, RequestQueue::UpdateRequestResult> pair :
310 results) {
311 if (pair.first == request->request_id() &&
312 pair.second == RequestQueue::UpdateRequestResult::SUCCESS) {
313 // We have a successfully updated, available, user request.
314 available_user_request = true;
315 }
316 }
317 } 307 }
318 } 308 }
319 309
320 if (available_user_request) 310 if (available_user_request)
321 StartProcessingIfConnected(); 311 StartProcessingIfConnected();
322 } 312 }
323 313
324 void RequestCoordinator::HandleRemovedRequestsAndCallback( 314 void RequestCoordinator::HandleRemovedRequestsAndCallback(
325 const RemoveRequestsCallback& callback, 315 const RemoveRequestsCallback& callback,
326 BackgroundSavePageResult status, 316 BackgroundSavePageResult status,
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 if (!offliner_) { 599 if (!offliner_) {
610 offliner_ = factory_->GetOffliner(policy_.get()); 600 offliner_ = factory_->GetOffliner(policy_.get());
611 } 601 }
612 } 602 }
613 603
614 void RequestCoordinator::Shutdown() { 604 void RequestCoordinator::Shutdown() {
615 network_quality_estimator_ = nullptr; 605 network_quality_estimator_ = nullptr;
616 } 606 }
617 607
618 } // namespace offline_pages 608 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698