OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "components/offline_pages/background/mark_attempt_aborted_task.h" | |
6 | |
7 #include "base/bind.h" | |
8 | |
9 namespace offline_pages { | |
10 | |
11 MarkAttemptAbortedTask::MarkAttemptAbortedTask( | |
12 RequestQueueStore* store, | |
13 int64_t request_id, | |
14 const RequestQueueStore::UpdateCallback& callback) | |
15 : UpdateRequestTask(store, request_id, callback) {} | |
16 | |
17 MarkAttemptAbortedTask::~MarkAttemptAbortedTask() {} | |
18 | |
19 void MarkAttemptAbortedTask::UpdateRequestImpl( | |
20 std::unique_ptr<UpdateRequestsResult> read_result) { | |
21 if (!ValidateReadResult(read_result.get())) { | |
22 CompleteWithResult(std::move(read_result)); | |
23 return; | |
24 } | |
25 | |
26 // It is perfectly fine to reuse the read_result->updated_items collection, as | |
27 // it is owned by this callback and will be destroyed when out of scope. | |
28 read_result->updated_items[0].MarkAttemptAborted(); | |
29 store()->UpdateRequests( | |
30 read_result->updated_items, | |
31 base::Bind(&MarkAttemptAbortedTask::CompleteWithResult, GetWeakPtr())); | |
32 } | |
33 | |
34 } // namespace offline_pages | |
OLD | NEW |