| OLD | NEW |
| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 DVLOG(1) << "Not able to save page for requested url: " << url; | 117 DVLOG(1) << "Not able to save page for requested url: " << url; |
| 118 return 0L; | 118 return 0L; |
| 119 } | 119 } |
| 120 | 120 |
| 121 int64_t id = GenerateOfflineId(); | 121 int64_t id = GenerateOfflineId(); |
| 122 | 122 |
| 123 // Build a SavePageRequest. | 123 // Build a SavePageRequest. |
| 124 offline_pages::SavePageRequest request(id, url, client_id, base::Time::Now(), | 124 offline_pages::SavePageRequest request(id, url, client_id, base::Time::Now(), |
| 125 user_requested); | 125 user_requested); |
| 126 | 126 |
| 127 // If the download manager is not done with the request, put it on the |
| 128 // disabled list. |
| 129 if (availability == RequestAvailability::DISABLED_FOR_OFFLINER) |
| 130 disabled_requests_.insert(id); |
| 131 |
| 127 // Put the request on the request queue. | 132 // Put the request on the request queue. |
| 128 queue_->AddRequest(request, | 133 queue_->AddRequest(request, |
| 129 base::Bind(&RequestCoordinator::AddRequestResultCallback, | 134 base::Bind(&RequestCoordinator::AddRequestResultCallback, |
| 130 weak_ptr_factory_.GetWeakPtr())); | 135 weak_ptr_factory_.GetWeakPtr())); |
| 131 return id; | 136 return id; |
| 132 } | 137 } |
| 133 void RequestCoordinator::GetAllRequests(const GetRequestsCallback& callback) { | 138 void RequestCoordinator::GetAllRequests(const GetRequestsCallback& callback) { |
| 134 // Get all matching requests from the request queue, send them to our | 139 // Get all matching requests from the request queue, send them to our |
| 135 // callback. We bind the namespace and callback to the front of the callback | 140 // callback. We bind the namespace and callback to the front of the callback |
| 136 // param set. | 141 // param set. |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 | 419 |
| 415 return; | 420 return; |
| 416 } | 421 } |
| 417 | 422 |
| 418 // Choose a request to process that meets the available conditions. | 423 // Choose a request to process that meets the available conditions. |
| 419 // This is an async call, and returns right away. | 424 // This is an async call, and returns right away. |
| 420 picker_->ChooseNextRequest(base::Bind(&RequestCoordinator::RequestPicked, | 425 picker_->ChooseNextRequest(base::Bind(&RequestCoordinator::RequestPicked, |
| 421 weak_ptr_factory_.GetWeakPtr()), | 426 weak_ptr_factory_.GetWeakPtr()), |
| 422 base::Bind(&RequestCoordinator::RequestNotPicked, | 427 base::Bind(&RequestCoordinator::RequestNotPicked, |
| 423 weak_ptr_factory_.GetWeakPtr()), | 428 weak_ptr_factory_.GetWeakPtr()), |
| 424 current_conditions_.get()); | 429 current_conditions_.get(), |
| 430 &disabled_requests_); |
| 425 } | 431 } |
| 426 | 432 |
| 427 // Called by the request picker when a request has been picked. | 433 // Called by the request picker when a request has been picked. |
| 428 void RequestCoordinator::RequestPicked(const SavePageRequest& request) { | 434 void RequestCoordinator::RequestPicked(const SavePageRequest& request) { |
| 429 is_starting_ = false; | 435 is_starting_ = false; |
| 430 | 436 |
| 431 // Make sure we were not stopped while picking. | 437 // Make sure we were not stopped while picking. |
| 432 if (!is_stopped_) { | 438 if (!is_stopped_) { |
| 433 // Send the request on to the offliner. | 439 // Send the request on to the offliner. |
| 434 SendRequestToOffliner(request); | 440 SendRequestToOffliner(request); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 case Offliner::RequestStatus::PRERENDERING_FAILED: | 562 case Offliner::RequestStatus::PRERENDERING_FAILED: |
| 557 // No further processing in this service window. | 563 // No further processing in this service window. |
| 558 break; | 564 break; |
| 559 default: | 565 default: |
| 560 // Make explicit choice about new status codes that actually reach here. | 566 // Make explicit choice about new status codes that actually reach here. |
| 561 // Their default is no further processing in this service window. | 567 // Their default is no further processing in this service window. |
| 562 NOTREACHED(); | 568 NOTREACHED(); |
| 563 } | 569 } |
| 564 } | 570 } |
| 565 | 571 |
| 566 void RequestCoordinator::EnableForOffliner(int64_t request_id) {} | 572 void RequestCoordinator::EnableForOffliner(int64_t request_id) { |
| 573 disabled_requests_.erase(request_id); |
| 574 } |
| 567 | 575 |
| 568 void RequestCoordinator::MarkRequestCompleted(int64_t request_id) {} | 576 void RequestCoordinator::MarkRequestCompleted(int64_t request_id) {} |
| 569 | 577 |
| 570 const Scheduler::TriggerConditions RequestCoordinator::GetTriggerConditions( | 578 const Scheduler::TriggerConditions RequestCoordinator::GetTriggerConditions( |
| 571 const bool user_requested) { | 579 const bool user_requested) { |
| 572 return Scheduler::TriggerConditions( | 580 return Scheduler::TriggerConditions( |
| 573 policy_->PowerRequired(user_requested), | 581 policy_->PowerRequired(user_requested), |
| 574 policy_->BatteryPercentageRequired(user_requested), | 582 policy_->BatteryPercentageRequired(user_requested), |
| 575 policy_->UnmeteredNetworkRequired(user_requested)); | 583 policy_->UnmeteredNetworkRequired(user_requested)); |
| 576 } | 584 } |
| (...skipping 28 matching lines...) Expand all Loading... |
| 605 | 613 |
| 606 ClientPolicyController* RequestCoordinator::GetPolicyController() { | 614 ClientPolicyController* RequestCoordinator::GetPolicyController() { |
| 607 return policy_controller_.get(); | 615 return policy_controller_.get(); |
| 608 } | 616 } |
| 609 | 617 |
| 610 void RequestCoordinator::Shutdown() { | 618 void RequestCoordinator::Shutdown() { |
| 611 network_quality_estimator_ = nullptr; | 619 network_quality_estimator_ = nullptr; |
| 612 } | 620 } |
| 613 | 621 |
| 614 } // namespace offline_pages | 622 } // namespace offline_pages |
| OLD | NEW |