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

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

Issue 2438503003: [Offline pages] Add MarkAttemptAbortedTask to Request Queue (Closed)
Patch Set: Addressing feedback -- adding comments and documentation 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 <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 active_request_->request_id())) { 240 active_request_->request_id())) {
241 StopPrerendering(Offliner::RequestStatus::REQUEST_COORDINATOR_CANCELED); 241 StopPrerendering(Offliner::RequestStatus::REQUEST_COORDINATOR_CANCELED);
242 return true; 242 return true;
243 } 243 }
244 } 244 }
245 245
246 return false; 246 return false;
247 } 247 }
248 248
249 void RequestCoordinator::AbortRequestAttempt(SavePageRequest* request) { 249 void RequestCoordinator::AbortRequestAttempt(SavePageRequest* request) {
250 request->MarkAttemptAborted();
251 if (request->started_attempt_count() >= policy_->GetMaxStartedTries()) { 250 if (request->started_attempt_count() >= policy_->GetMaxStartedTries()) {
252 const BackgroundSavePageResult result( 251 const BackgroundSavePageResult result(
253 BackgroundSavePageResult::START_COUNT_EXCEEDED); 252 BackgroundSavePageResult::START_COUNT_EXCEEDED);
254 event_logger_.RecordDroppedSavePageRequest(request->client_id().name_space, 253 event_logger_.RecordDroppedSavePageRequest(request->client_id().name_space,
255 result, request->request_id()); 254 result, request->request_id());
256 RemoveAttemptedRequest(*request, result); 255 RemoveAttemptedRequest(*request, result);
257 } else { 256 } else {
258 queue_->UpdateRequest( 257 queue_->MarkAttemptAborted(
259 *request, 258 request->request_id(),
260 base::Bind(&RequestCoordinator::UpdateRequestCallback, 259 base::Bind(&RequestCoordinator::MarkAttemptAbortedDone,
261 weak_ptr_factory_.GetWeakPtr(), request->client_id())); 260 weak_ptr_factory_.GetWeakPtr(), request->request_id(),
261 request->client_id()));
262 } 262 }
263 } 263 }
264 264
265 void RequestCoordinator::RemoveAttemptedRequest( 265 void RequestCoordinator::RemoveAttemptedRequest(
266 const SavePageRequest& request, 266 const SavePageRequest& request,
267 BackgroundSavePageResult result) { 267 BackgroundSavePageResult result) {
268 std::vector<int64_t> remove_requests; 268 std::vector<int64_t> remove_requests;
269 remove_requests.push_back(request.request_id()); 269 remove_requests.push_back(request.request_id());
270 queue_->RemoveRequests(remove_requests, 270 queue_->RemoveRequests(remove_requests,
271 base::Bind(&RequestCoordinator::HandleRemovedRequests, 271 base::Bind(&RequestCoordinator::HandleRemovedRequests,
272 weak_ptr_factory_.GetWeakPtr(), result)); 272 weak_ptr_factory_.GetWeakPtr(), result));
273 RecordAttemptCount(request, result); 273 RecordAttemptCount(request, result);
274 } 274 }
275 275
276 void RequestCoordinator::MarkAttemptAbortedDone(
277 int64_t request_id,
278 const ClientId& client_id,
279 std::unique_ptr<UpdateRequestsResult> result) {
280 // If the request succeeded, nothing to do. If it failed, we can't really do
281 // much, so just log it.
282 if (result->store_state != StoreState::LOADED ||
283 result->item_statuses.size() != 1 ||
284 result->item_statuses.at(0).first != request_id ||
285 result->item_statuses.at(0).second != ItemActionStatus::SUCCESS) {
286 DVLOG(1) << "Failed to mark request aborted: " << request_id;
287 event_logger_.RecordUpdateRequestFailed(
288 client_id.name_space,
289 result->store_state != StoreState::LOADED
290 ? RequestQueue::UpdateRequestResult::STORE_FAILURE
291 : RequestQueue::UpdateRequestResult::REQUEST_DOES_NOT_EXIST);
292 }
293 }
294
276 void RequestCoordinator::RemoveRequests( 295 void RequestCoordinator::RemoveRequests(
277 const std::vector<int64_t>& request_ids, 296 const std::vector<int64_t>& request_ids,
278 const RemoveRequestsCallback& callback) { 297 const RemoveRequestsCallback& callback) {
279 bool canceled = CancelActiveRequestIfItMatches(request_ids); 298 bool canceled = CancelActiveRequestIfItMatches(request_ids);
280 queue_->RemoveRequests( 299 queue_->RemoveRequests(
281 request_ids, 300 request_ids,
282 base::Bind(&RequestCoordinator::HandleRemovedRequestsAndCallback, 301 base::Bind(&RequestCoordinator::HandleRemovedRequestsAndCallback,
283 weak_ptr_factory_.GetWeakPtr(), callback, 302 weak_ptr_factory_.GetWeakPtr(), callback,
284 BackgroundSavePageResult::REMOVED)); 303 BackgroundSavePageResult::REMOVED));
285 if (canceled) 304 if (canceled)
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 769
751 ClientPolicyController* RequestCoordinator::GetPolicyController() { 770 ClientPolicyController* RequestCoordinator::GetPolicyController() {
752 return policy_controller_.get(); 771 return policy_controller_.get();
753 } 772 }
754 773
755 void RequestCoordinator::Shutdown() { 774 void RequestCoordinator::Shutdown() {
756 network_quality_estimator_ = nullptr; 775 network_quality_estimator_ = nullptr;
757 } 776 }
758 777
759 } // namespace offline_pages 778 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_coordinator.h ('k') | components/offline_pages/background/request_queue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698