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

Unified Diff: components/offline_pages/background/request_queue.cc

Issue 2473553004: Request Picker task (Closed)
Patch Set: merge with latest Created 4 years, 1 month 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_queue.cc
diff --git a/components/offline_pages/background/request_queue.cc b/components/offline_pages/background/request_queue.cc
index 8e2103e84ba200162b4b81a79dd3ee231bba4fb8..b66c28964888d8e564d2260283b8d6561217d65f 100644
--- a/components/offline_pages/background/request_queue.cc
+++ b/components/offline_pages/background/request_queue.cc
@@ -13,6 +13,8 @@
#include "components/offline_pages/background/mark_attempt_aborted_task.h"
#include "components/offline_pages/background/mark_attempt_completed_task.h"
#include "components/offline_pages/background/mark_attempt_started_task.h"
+#include "components/offline_pages/background/pick_request_task.h"
+#include "components/offline_pages/background/pick_request_task_factory.h"
#include "components/offline_pages/background/remove_requests_task.h"
#include "components/offline_pages/background/request_queue_store.h"
#include "components/offline_pages/background/save_page_request.h"
@@ -24,9 +26,8 @@ namespace {
void GetRequestsDone(const RequestQueue::GetRequestsCallback& callback,
bool success,
std::vector<std::unique_ptr<SavePageRequest>> requests) {
- RequestQueue::GetRequestsResult result =
- success ? RequestQueue::GetRequestsResult::SUCCESS
- : RequestQueue::GetRequestsResult::STORE_FAILURE;
+ GetRequestsResult result =
+ success ? GetRequestsResult::SUCCESS : GetRequestsResult::STORE_FAILURE;
// TODO(fgorski): Filter out expired requests based on policy.
// This may trigger the purging if necessary.
// Also this may be turned into a method on the request queue or add a policy
@@ -38,16 +39,16 @@ void GetRequestsDone(const RequestQueue::GetRequestsCallback& callback,
void AddRequestDone(const RequestQueue::AddRequestCallback& callback,
const SavePageRequest& request,
ItemActionStatus status) {
- RequestQueue::AddRequestResult result;
+ AddRequestResult result;
switch (status) {
case ItemActionStatus::SUCCESS:
- result = RequestQueue::AddRequestResult::SUCCESS;
+ result = AddRequestResult::SUCCESS;
break;
case ItemActionStatus::ALREADY_EXISTS:
- result = RequestQueue::AddRequestResult::ALREADY_EXISTS;
+ result = AddRequestResult::ALREADY_EXISTS;
break;
case ItemActionStatus::STORE_ERROR:
- result = RequestQueue::AddRequestResult::STORE_FAILURE;
+ result = AddRequestResult::STORE_FAILURE;
break;
case ItemActionStatus::NOT_FOUND:
default:
@@ -114,4 +115,19 @@ void RequestQueue::MarkAttemptCompleted(int64_t request_id,
void RequestQueue::PurgeRequests(const PurgeRequestsCallback& callback) {}
+void RequestQueue::PickNextRequest(
+ PickRequestTask::RequestPickedCallback picked_callback,
+ PickRequestTask::RequestNotPickedCallback not_picked_callback,
+ DeviceConditions& conditions,
+ std::set<int64_t>& disabled_requests) {
+ // Using the PickerContext, create a picker task.
+ std::unique_ptr<Task> task(picker_factory_->CreatePickerTask(
+ store_.get(), picked_callback, not_picked_callback, conditions,
+ disabled_requests));
+
+ // Queue up the picking task, it will call one of the callbacks when it
+ // completes.
+ task_queue_.AddTask(std::move(task));
+}
+
} // namespace offline_pages
« no previous file with comments | « components/offline_pages/background/request_queue.h ('k') | components/offline_pages/background/request_queue_results.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698