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

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

Issue 2395213002: Implement disabled list (Closed)
Patch Set: set pointer -> const ref 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_picker.cc
diff --git a/components/offline_pages/background/request_picker.cc b/components/offline_pages/background/request_picker.cc
index b05fc1dc8660b52630ddf95e1ed65184b74d1387..c1d27838165d837bb70bc28bf3768e63a597441d 100644
--- a/components/offline_pages/background/request_picker.cc
+++ b/components/offline_pages/background/request_picker.cc
@@ -37,7 +37,8 @@ RequestPicker::~RequestPicker() {}
void RequestPicker::ChooseNextRequest(
RequestCoordinator::RequestPickedCallback picked_callback,
RequestCoordinator::RequestNotPickedCallback not_picked_callback,
- DeviceConditions* device_conditions) {
+ DeviceConditions* device_conditions,
+ const std::set<int64_t>& disabled_requests) {
picked_callback_ = picked_callback;
not_picked_callback_ = not_picked_callback;
fewer_retries_better_ = policy_->ShouldPreferUntriedRequests();
@@ -45,12 +46,14 @@ void RequestPicker::ChooseNextRequest(
current_conditions_.reset(new DeviceConditions(*device_conditions));
// Get all requests from queue (there is no filtering mechanism).
queue_->GetRequests(base::Bind(&RequestPicker::GetRequestResultCallback,
- weak_ptr_factory_.GetWeakPtr()));
+ weak_ptr_factory_.GetWeakPtr(),
+ disabled_requests));
}
// When we get contents from the queue, use them to pick the next
// request to operate on (if any).
void RequestPicker::GetRequestResultCallback(
+ const std::set<int64_t>& disabled_requests,
RequestQueue::GetRequestsResult,
std::vector<std::unique_ptr<SavePageRequest>> requests) {
// If there is nothing to do, return right away.
@@ -86,6 +89,11 @@ void RequestPicker::GetRequestResultCallback(
// Iterate once through the requests, keeping track of best candidate.
bool non_user_requested_tasks_remaining = false;
for (unsigned i = 0; i < valid_requests.size(); ++i) {
+ // If the request is on the disabled list, skip it.
+ auto search = disabled_requests.find(valid_requests[i]->request_id());
+ if (search != disabled_requests.end()) {
+ continue;
+ }
if (!valid_requests[i]->user_requested())
non_user_requested_tasks_remaining = true;
if (!RequestConditionsSatisfied(valid_requests[i].get()))
« no previous file with comments | « components/offline_pages/background/request_picker.h ('k') | components/offline_pages/background/request_picker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698