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

Unified 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 side-by-side diff with in-line comments
Download patch
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 d1d380b005043d4a541073c48f6832a005653476..5c0a1c4c8411c16ad05f373ee5cf60452d689566 100644
--- a/components/offline_pages/background/request_coordinator.cc
+++ b/components/offline_pages/background/request_coordinator.cc
@@ -247,7 +247,6 @@ bool RequestCoordinator::CancelActiveRequestIfItMatches(
}
void RequestCoordinator::AbortRequestAttempt(SavePageRequest* request) {
- request->MarkAttemptAborted();
if (request->started_attempt_count() >= policy_->GetMaxStartedTries()) {
const BackgroundSavePageResult result(
BackgroundSavePageResult::START_COUNT_EXCEEDED);
@@ -255,10 +254,11 @@ void RequestCoordinator::AbortRequestAttempt(SavePageRequest* request) {
result, request->request_id());
RemoveAttemptedRequest(*request, result);
} else {
- queue_->UpdateRequest(
- *request,
- base::Bind(&RequestCoordinator::UpdateRequestCallback,
- weak_ptr_factory_.GetWeakPtr(), request->client_id()));
+ queue_->MarkAttemptAborted(
+ request->request_id(),
+ base::Bind(&RequestCoordinator::MarkAttemptAbortedDone,
+ weak_ptr_factory_.GetWeakPtr(), request->request_id(),
+ request->client_id()));
}
}
@@ -273,6 +273,25 @@ void RequestCoordinator::RemoveAttemptedRequest(
RecordAttemptCount(request, result);
}
+void RequestCoordinator::MarkAttemptAbortedDone(
+ int64_t request_id,
+ const ClientId& client_id,
+ std::unique_ptr<UpdateRequestsResult> result) {
+ // If the request succeeded, nothing to do. If it failed, we can't really do
+ // much, so just log it.
+ if (result->store_state != StoreState::LOADED ||
+ result->item_statuses.size() != 1 ||
+ result->item_statuses.at(0).first != request_id ||
+ result->item_statuses.at(0).second != ItemActionStatus::SUCCESS) {
+ DVLOG(1) << "Failed to mark request aborted: " << request_id;
+ event_logger_.RecordUpdateRequestFailed(
+ client_id.name_space,
+ result->store_state != StoreState::LOADED
+ ? RequestQueue::UpdateRequestResult::STORE_FAILURE
+ : RequestQueue::UpdateRequestResult::REQUEST_DOES_NOT_EXIST);
+ }
+}
+
void RequestCoordinator::RemoveRequests(
const std::vector<int64_t>& request_ids,
const RemoveRequestsCallback& callback) {
« 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