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

Side by Side Diff: content/browser/loader/resource_scheduler_unittest.cc

Issue 2535723005: Stop using ResourceController in ResourceThrottle (Closed)
Patch Set: Addressed #62 Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/loader/resource_scheduler.h" 5 #include "content/browser/loader/resource_scheduler.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/test/scoped_feature_list.h" 13 #include "base/test/scoped_feature_list.h"
14 #include "base/timer/mock_timer.h" 14 #include "base/timer/mock_timer.h"
15 #include "base/timer/timer.h" 15 #include "base/timer/timer.h"
16 #include "content/public/browser/resource_context.h" 16 #include "content/public/browser/resource_context.h"
17 #include "content/public/browser/resource_controller.h"
18 #include "content/public/browser/resource_throttle.h" 17 #include "content/public/browser/resource_throttle.h"
19 #include "content/public/test/mock_render_process_host.h" 18 #include "content/public/test/mock_render_process_host.h"
20 #include "content/public/test/test_browser_context.h" 19 #include "content/public/test/test_browser_context.h"
21 #include "content/public/test/test_browser_thread_bundle.h" 20 #include "content/public/test/test_browser_thread_bundle.h"
22 #include "content/test/test_render_view_host_factory.h" 21 #include "content/test/test_render_view_host_factory.h"
23 #include "content/test/test_web_contents.h" 22 #include "content/test/test_web_contents.h"
24 #include "net/base/host_port_pair.h" 23 #include "net/base/host_port_pair.h"
25 #include "net/base/request_priority.h" 24 #include "net/base/request_priority.h"
26 #include "net/http/http_server_properties_impl.h" 25 #include "net/http/http_server_properties_impl.h"
27 #include "net/url_request/url_request.h" 26 #include "net/url_request/url_request.h"
(...skipping 13 matching lines...) Expand all
41 const int kChildId = 30; 40 const int kChildId = 30;
42 const int kRouteId = 75; 41 const int kRouteId = 75;
43 const int kChildId2 = 43; 42 const int kChildId2 = 43;
44 const int kRouteId2 = 67; 43 const int kRouteId2 = 67;
45 const int kBackgroundChildId = 35; 44 const int kBackgroundChildId = 35;
46 const int kBackgroundRouteId = 43; 45 const int kBackgroundRouteId = 43;
47 46
48 const char kPrioritySupportedRequestsDelayable[] = 47 const char kPrioritySupportedRequestsDelayable[] =
49 "PrioritySupportedRequestsDelayable"; 48 "PrioritySupportedRequestsDelayable";
50 49
51 class TestRequest : public ResourceController { 50 class TestRequest : public ResourceThrottle::Delegate {
52 public: 51 public:
53 TestRequest(std::unique_ptr<net::URLRequest> url_request, 52 TestRequest(std::unique_ptr<net::URLRequest> url_request,
54 std::unique_ptr<ResourceThrottle> throttle, 53 std::unique_ptr<ResourceThrottle> throttle,
55 ResourceScheduler* scheduler) 54 ResourceScheduler* scheduler)
56 : started_(false), 55 : started_(false),
57 url_request_(std::move(url_request)), 56 url_request_(std::move(url_request)),
58 throttle_(std::move(throttle)), 57 throttle_(std::move(throttle)),
59 scheduler_(scheduler) { 58 scheduler_(scheduler) {
60 throttle_->set_controller_for_testing(this); 59 throttle_->set_delegate_for_testing(this);
61 } 60 }
62 ~TestRequest() override { 61 ~TestRequest() override {
63 // The URLRequest must still be valid when the ScheduledResourceRequest is 62 // The URLRequest must still be valid when the ScheduledResourceRequest is
64 // destroyed, so that it can unregister itself. 63 // destroyed, so that it can unregister itself.
65 throttle_.reset(); 64 throttle_.reset();
66 } 65 }
67 66
68 bool started() const { return started_; } 67 bool started() const { return started_; }
69 68
70 void Start() { 69 void Start() {
71 bool deferred = false; 70 bool deferred = false;
72 throttle_->WillStartRequest(&deferred); 71 throttle_->WillStartRequest(&deferred);
73 started_ = !deferred; 72 started_ = !deferred;
74 } 73 }
75 74
76 void ChangePriority(net::RequestPriority new_priority, int intra_priority) { 75 void ChangePriority(net::RequestPriority new_priority, int intra_priority) {
77 scheduler_->ReprioritizeRequest(url_request_.get(), new_priority, 76 scheduler_->ReprioritizeRequest(url_request_.get(), new_priority,
78 intra_priority); 77 intra_priority);
79 } 78 }
80 79
81 void Cancel() override { 80 void Cancel() override {
82 // Alert the scheduler that the request can be deleted. 81 // Alert the scheduler that the request can be deleted.
83 throttle_.reset(); 82 throttle_.reset();
84 } 83 }
85 84
86 const net::URLRequest* url_request() const { return url_request_.get(); } 85 const net::URLRequest* url_request() const { return url_request_.get(); }
87 86
88 protected: 87 protected:
89 // ResourceController interface: 88 // ResourceThrottle::Delegate interface:
90 void CancelAndIgnore() override {} 89 void CancelAndIgnore() override {}
91 void CancelWithError(int error_code) override {} 90 void CancelWithError(int error_code) override {}
92 void Resume() override { started_ = true; } 91 void Resume() override { started_ = true; }
93 92
94 private: 93 private:
95 bool started_; 94 bool started_;
96 std::unique_ptr<net::URLRequest> url_request_; 95 std::unique_ptr<net::URLRequest> url_request_;
97 std::unique_ptr<ResourceThrottle> throttle_; 96 std::unique_ptr<ResourceThrottle> throttle_;
98 ResourceScheduler* scheduler_; 97 ResourceScheduler* scheduler_;
99 }; 98 };
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 scheduler_->OnClientDeleted(kChildId2, kRouteId2); 822 scheduler_->OnClientDeleted(kChildId2, kRouteId2);
824 high.reset(); 823 high.reset();
825 delayable_requests.clear(); 824 delayable_requests.clear();
826 base::RunLoop().RunUntilIdle(); 825 base::RunLoop().RunUntilIdle();
827 EXPECT_TRUE(lowest->started()); 826 EXPECT_TRUE(lowest->started());
828 } 827 }
829 828
830 } // unnamed namespace 829 } // unnamed namespace
831 830
832 } // namespace content 831 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_scheduler.cc ('k') | content/browser/loader/throttling_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698