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: net/proxy/dhcp_proxy_script_adapter_fetcher_win.cc

Issue 2910473005: Deprecate NonThreadSafe in net/ in favor of SequenceChecker/ThreadChecker. (Closed)
Patch Set: rebase on r476634 Created 3 years, 6 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 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 "net/proxy/dhcp_proxy_script_adapter_fetcher_win.h" 5 #include "net/proxy/dhcp_proxy_script_adapter_fetcher_win.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 24 matching lines...) Expand all
35 URLRequestContext* url_request_context, 35 URLRequestContext* url_request_context,
36 scoped_refptr<base::TaskRunner> task_runner) 36 scoped_refptr<base::TaskRunner> task_runner)
37 : task_runner_(task_runner), 37 : task_runner_(task_runner),
38 state_(STATE_START), 38 state_(STATE_START),
39 result_(ERR_IO_PENDING), 39 result_(ERR_IO_PENDING),
40 url_request_context_(url_request_context) { 40 url_request_context_(url_request_context) {
41 DCHECK(url_request_context_); 41 DCHECK(url_request_context_);
42 } 42 }
43 43
44 DhcpProxyScriptAdapterFetcher::~DhcpProxyScriptAdapterFetcher() { 44 DhcpProxyScriptAdapterFetcher::~DhcpProxyScriptAdapterFetcher() {
45 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
45 Cancel(); 46 Cancel();
46 } 47 }
47 48
48 void DhcpProxyScriptAdapterFetcher::Fetch( 49 void DhcpProxyScriptAdapterFetcher::Fetch(
49 const std::string& adapter_name, const CompletionCallback& callback) { 50 const std::string& adapter_name, const CompletionCallback& callback) {
50 DCHECK(CalledOnValidThread()); 51 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
51 DCHECK_EQ(state_, STATE_START); 52 DCHECK_EQ(state_, STATE_START);
52 result_ = ERR_IO_PENDING; 53 result_ = ERR_IO_PENDING;
53 pac_script_ = base::string16(); 54 pac_script_ = base::string16();
54 state_ = STATE_WAIT_DHCP; 55 state_ = STATE_WAIT_DHCP;
55 callback_ = callback; 56 callback_ = callback;
56 57
57 wait_timer_.Start(FROM_HERE, ImplGetTimeout(), 58 wait_timer_.Start(FROM_HERE, ImplGetTimeout(),
58 this, &DhcpProxyScriptAdapterFetcher::OnTimeout); 59 this, &DhcpProxyScriptAdapterFetcher::OnTimeout);
59 scoped_refptr<DhcpQuery> dhcp_query(ImplCreateDhcpQuery()); 60 scoped_refptr<DhcpQuery> dhcp_query(ImplCreateDhcpQuery());
60 task_runner_->PostTaskAndReply( 61 task_runner_->PostTaskAndReply(
61 FROM_HERE, 62 FROM_HERE,
62 base::Bind( 63 base::Bind(
63 &DhcpProxyScriptAdapterFetcher::DhcpQuery::GetPacURLForAdapter, 64 &DhcpProxyScriptAdapterFetcher::DhcpQuery::GetPacURLForAdapter,
64 dhcp_query.get(), 65 dhcp_query.get(),
65 adapter_name), 66 adapter_name),
66 base::Bind( 67 base::Bind(
67 &DhcpProxyScriptAdapterFetcher::OnDhcpQueryDone, 68 &DhcpProxyScriptAdapterFetcher::OnDhcpQueryDone,
68 AsWeakPtr(), 69 AsWeakPtr(),
69 dhcp_query)); 70 dhcp_query));
70 } 71 }
71 72
72 void DhcpProxyScriptAdapterFetcher::Cancel() { 73 void DhcpProxyScriptAdapterFetcher::Cancel() {
73 DCHECK(CalledOnValidThread()); 74 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
74 callback_.Reset(); 75 callback_.Reset();
75 wait_timer_.Stop(); 76 wait_timer_.Stop();
76 script_fetcher_.reset(); 77 script_fetcher_.reset();
77 78
78 switch (state_) { 79 switch (state_) {
79 case STATE_WAIT_DHCP: 80 case STATE_WAIT_DHCP:
80 // Nothing to do here, we let the worker thread run to completion, 81 // Nothing to do here, we let the worker thread run to completion,
81 // the task it posts back when it completes will check the state. 82 // the task it posts back when it completes will check the state.
82 break; 83 break;
83 case STATE_WAIT_URL: 84 case STATE_WAIT_URL:
84 break; 85 break;
85 case STATE_START: 86 case STATE_START:
86 case STATE_FINISH: 87 case STATE_FINISH:
87 case STATE_CANCEL: 88 case STATE_CANCEL:
88 break; 89 break;
89 } 90 }
90 91
91 if (state_ != STATE_FINISH) { 92 if (state_ != STATE_FINISH) {
92 result_ = ERR_ABORTED; 93 result_ = ERR_ABORTED;
93 state_ = STATE_CANCEL; 94 state_ = STATE_CANCEL;
94 } 95 }
95 } 96 }
96 97
97 bool DhcpProxyScriptAdapterFetcher::DidFinish() const { 98 bool DhcpProxyScriptAdapterFetcher::DidFinish() const {
98 DCHECK(CalledOnValidThread()); 99 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
99 return state_ == STATE_FINISH; 100 return state_ == STATE_FINISH;
100 } 101 }
101 102
102 int DhcpProxyScriptAdapterFetcher::GetResult() const { 103 int DhcpProxyScriptAdapterFetcher::GetResult() const {
103 DCHECK(CalledOnValidThread()); 104 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
104 return result_; 105 return result_;
105 } 106 }
106 107
107 base::string16 DhcpProxyScriptAdapterFetcher::GetPacScript() const { 108 base::string16 DhcpProxyScriptAdapterFetcher::GetPacScript() const {
108 DCHECK(CalledOnValidThread()); 109 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
109 return pac_script_; 110 return pac_script_;
110 } 111 }
111 112
112 GURL DhcpProxyScriptAdapterFetcher::GetPacURL() const { 113 GURL DhcpProxyScriptAdapterFetcher::GetPacURL() const {
113 DCHECK(CalledOnValidThread()); 114 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
114 return pac_url_; 115 return pac_url_;
115 } 116 }
116 117
117 DhcpProxyScriptAdapterFetcher::DhcpQuery::DhcpQuery() { 118 DhcpProxyScriptAdapterFetcher::DhcpQuery::DhcpQuery() {
118 } 119 }
119 120
120 void DhcpProxyScriptAdapterFetcher::DhcpQuery::GetPacURLForAdapter( 121 void DhcpProxyScriptAdapterFetcher::DhcpQuery::GetPacURLForAdapter(
121 const std::string& adapter_name) { 122 const std::string& adapter_name) {
122 url_ = ImplGetPacURLFromDhcp(adapter_name); 123 url_ = ImplGetPacURLFromDhcp(adapter_name);
123 } 124 }
124 125
125 const std::string& DhcpProxyScriptAdapterFetcher::DhcpQuery::url() const { 126 const std::string& DhcpProxyScriptAdapterFetcher::DhcpQuery::url() const {
126 return url_; 127 return url_;
127 } 128 }
128 129
129 std::string 130 std::string
130 DhcpProxyScriptAdapterFetcher::DhcpQuery::ImplGetPacURLFromDhcp( 131 DhcpProxyScriptAdapterFetcher::DhcpQuery::ImplGetPacURLFromDhcp(
131 const std::string& adapter_name) { 132 const std::string& adapter_name) {
132 return DhcpProxyScriptAdapterFetcher::GetPacURLFromDhcp(adapter_name); 133 return DhcpProxyScriptAdapterFetcher::GetPacURLFromDhcp(adapter_name);
133 } 134 }
134 135
135 DhcpProxyScriptAdapterFetcher::DhcpQuery::~DhcpQuery() { 136 DhcpProxyScriptAdapterFetcher::DhcpQuery::~DhcpQuery() {
136 } 137 }
137 138
138 void DhcpProxyScriptAdapterFetcher::OnDhcpQueryDone( 139 void DhcpProxyScriptAdapterFetcher::OnDhcpQueryDone(
139 scoped_refptr<DhcpQuery> dhcp_query) { 140 scoped_refptr<DhcpQuery> dhcp_query) {
140 DCHECK(CalledOnValidThread()); 141 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
141 // Because we can't cancel the call to the Win32 API, we can expect 142 // Because we can't cancel the call to the Win32 API, we can expect
142 // it to finish while we are in a few different states. The expected 143 // it to finish while we are in a few different states. The expected
143 // one is WAIT_DHCP, but it could be in CANCEL if Cancel() was called, 144 // one is WAIT_DHCP, but it could be in CANCEL if Cancel() was called,
144 // or FINISH if timeout occurred. 145 // or FINISH if timeout occurred.
145 DCHECK(state_ == STATE_WAIT_DHCP || state_ == STATE_CANCEL || 146 DCHECK(state_ == STATE_WAIT_DHCP || state_ == STATE_CANCEL ||
146 state_ == STATE_FINISH); 147 state_ == STATE_FINISH);
147 if (state_ != STATE_WAIT_DHCP) 148 if (state_ != STATE_WAIT_DHCP)
148 return; 149 return;
149 150
150 wait_timer_.Stop(); 151 wait_timer_.Stop();
(...skipping 12 matching lines...) Expand all
163 } 164 }
164 } 165 }
165 166
166 void DhcpProxyScriptAdapterFetcher::OnTimeout() { 167 void DhcpProxyScriptAdapterFetcher::OnTimeout() {
167 DCHECK_EQ(state_, STATE_WAIT_DHCP); 168 DCHECK_EQ(state_, STATE_WAIT_DHCP);
168 result_ = ERR_TIMED_OUT; 169 result_ = ERR_TIMED_OUT;
169 TransitionToFinish(); 170 TransitionToFinish();
170 } 171 }
171 172
172 void DhcpProxyScriptAdapterFetcher::OnFetcherDone(int result) { 173 void DhcpProxyScriptAdapterFetcher::OnFetcherDone(int result) {
173 DCHECK(CalledOnValidThread()); 174 DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
174 DCHECK(state_ == STATE_WAIT_URL || state_ == STATE_CANCEL); 175 DCHECK(state_ == STATE_WAIT_URL || state_ == STATE_CANCEL);
175 if (state_ == STATE_CANCEL) 176 if (state_ == STATE_CANCEL)
176 return; 177 return;
177 178
178 // At this point, pac_script_ has already been written to. 179 // At this point, pac_script_ has already been written to.
179 script_fetcher_.reset(); 180 script_fetcher_.reset();
180 result_ = result; 181 result_ = result;
181 TransitionToFinish(); 182 TransitionToFinish();
182 } 183 }
183 184
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 // first null in case of embedded NULLs; this is the outer 284 // first null in case of embedded NULLs; this is the outer
284 // constructor that takes the result of c_str() on the inner. If 285 // constructor that takes the result of c_str() on the inner. If
285 // the server is giving us back a buffer with embedded NULLs, 286 // the server is giving us back a buffer with embedded NULLs,
286 // something is broken anyway. Finally, trim trailing whitespace. 287 // something is broken anyway. Finally, trim trailing whitespace.
287 std::string result(std::string(data, count_bytes).c_str()); 288 std::string result(std::string(data, count_bytes).c_str());
288 base::TrimWhitespaceASCII(result, base::TRIM_TRAILING, &result); 289 base::TrimWhitespaceASCII(result, base::TRIM_TRAILING, &result);
289 return result; 290 return result;
290 } 291 }
291 292
292 } // namespace net 293 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/dhcp_proxy_script_adapter_fetcher_win.h ('k') | net/proxy/dhcp_proxy_script_fetcher_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698