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

Side by Side Diff: net/socket_stream/socket_stream.cc

Issue 141683005: Removes MessageLoop::Type checks in favor of IsCurrent on MessageLoops. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: base:: Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « net/cert/cert_database_mac.cc ('k') | remoting/host/desktop_process.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // TODO(ukai): code is similar with http_network_transaction.cc. We should 5 // TODO(ukai): code is similar with http_network_transaction.cc. We should
6 // think about ways to share code, if possible. 6 // think about ways to share code, if possible.
7 7
8 #include "net/socket_stream/socket_stream.h" 8 #include "net/socket_stream/socket_stream.h"
9 9
10 #include <set> 10 #include <set>
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 io_callback_(base::Bind(&SocketStream::OnIOCompleted, 104 io_callback_(base::Bind(&SocketStream::OnIOCompleted,
105 base::Unretained(this))), 105 base::Unretained(this))),
106 read_buf_(NULL), 106 read_buf_(NULL),
107 current_write_buf_(NULL), 107 current_write_buf_(NULL),
108 waiting_for_write_completion_(false), 108 waiting_for_write_completion_(false),
109 closing_(false), 109 closing_(false),
110 server_closed_(false), 110 server_closed_(false),
111 metrics_(new SocketStreamMetrics(url)) { 111 metrics_(new SocketStreamMetrics(url)) {
112 DCHECK(base::MessageLoop::current()) 112 DCHECK(base::MessageLoop::current())
113 << "The current base::MessageLoop must exist"; 113 << "The current base::MessageLoop must exist";
114 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 114 DCHECK(base::MessageLoopForIO::IsCurrent())
115 << "The current base::MessageLoop must be TYPE_IO"; 115 << "The current base::MessageLoop must be TYPE_IO";
116 DCHECK(delegate_); 116 DCHECK(delegate_);
117 } 117 }
118 118
119 SocketStream::UserData* SocketStream::GetUserData( 119 SocketStream::UserData* SocketStream::GetUserData(
120 const void* key) const { 120 const void* key) const {
121 UserDataMap::const_iterator found = user_data_.find(key); 121 UserDataMap::const_iterator found = user_data_.find(key);
122 if (found != user_data_.end()) 122 if (found != user_data_.end())
123 return found->second.get(); 123 return found->second.get();
124 return NULL; 124 return NULL;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 privacy_mode_ = enable ? kPrivacyModeEnabled : kPrivacyModeDisabled; 163 privacy_mode_ = enable ? kPrivacyModeEnabled : kPrivacyModeDisabled;
164 // Disable Channel ID if privacy mode is enabled. 164 // Disable Channel ID if privacy mode is enabled.
165 if (enable) 165 if (enable)
166 server_ssl_config_.channel_id_enabled = false; 166 server_ssl_config_.channel_id_enabled = false;
167 } 167 }
168 } 168 }
169 169
170 void SocketStream::Connect() { 170 void SocketStream::Connect() {
171 DCHECK(base::MessageLoop::current()) 171 DCHECK(base::MessageLoop::current())
172 << "The current base::MessageLoop must exist"; 172 << "The current base::MessageLoop must exist";
173 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 173 DCHECK(base::MessageLoopForIO::IsCurrent())
174 << "The current base::MessageLoop must be TYPE_IO"; 174 << "The current base::MessageLoop must be TYPE_IO";
175 if (context_) { 175 if (context_) {
176 context_->ssl_config_service()->GetSSLConfig(&server_ssl_config_); 176 context_->ssl_config_service()->GetSSLConfig(&server_ssl_config_);
177 proxy_ssl_config_ = server_ssl_config_; 177 proxy_ssl_config_ = server_ssl_config_;
178 } 178 }
179 CheckPrivacyMode(); 179 CheckPrivacyMode();
180 180
181 DCHECK_EQ(next_state_, STATE_NONE); 181 DCHECK_EQ(next_state_, STATE_NONE);
182 182
183 AddRef(); // Released in Finish() 183 AddRef(); // Released in Finish()
(...skipping 12 matching lines...) Expand all
196 for (PendingDataQueue::const_iterator iter = pending_write_bufs_.begin(); 196 for (PendingDataQueue::const_iterator iter = pending_write_bufs_.begin();
197 iter != pending_write_bufs_.end(); 197 iter != pending_write_bufs_.end();
198 ++iter) 198 ++iter)
199 total_size += (*iter)->size(); 199 total_size += (*iter)->size();
200 return total_size; 200 return total_size;
201 } 201 }
202 202
203 bool SocketStream::SendData(const char* data, int len) { 203 bool SocketStream::SendData(const char* data, int len) {
204 DCHECK(base::MessageLoop::current()) 204 DCHECK(base::MessageLoop::current())
205 << "The current base::MessageLoop must exist"; 205 << "The current base::MessageLoop must exist";
206 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 206 DCHECK(base::MessageLoopForIO::IsCurrent())
207 << "The current base::MessageLoop must be TYPE_IO"; 207 << "The current base::MessageLoop must be TYPE_IO";
208 DCHECK_GT(len, 0); 208 DCHECK_GT(len, 0);
209 209
210 if (!connection_->socket() || 210 if (!connection_->socket() ||
211 !connection_->socket()->IsConnected() || next_state_ == STATE_NONE) { 211 !connection_->socket()->IsConnected() || next_state_ == STATE_NONE) {
212 return false; 212 return false;
213 } 213 }
214 214
215 int total_buffered_bytes = len; 215 int total_buffered_bytes = len;
216 if (current_write_buf_.get()) { 216 if (current_write_buf_.get()) {
(...skipping 26 matching lines...) Expand all
243 base::MessageLoop::current()->PostTask( 243 base::MessageLoop::current()->PostTask(
244 FROM_HERE, base::Bind(&SocketStream::DoLoop, this, OK)); 244 FROM_HERE, base::Bind(&SocketStream::DoLoop, this, OK));
245 } 245 }
246 246
247 return true; 247 return true;
248 } 248 }
249 249
250 void SocketStream::Close() { 250 void SocketStream::Close() {
251 DCHECK(base::MessageLoop::current()) 251 DCHECK(base::MessageLoop::current())
252 << "The current base::MessageLoop must exist"; 252 << "The current base::MessageLoop must exist";
253 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 253 DCHECK(base::MessageLoopForIO::IsCurrent())
254 << "The current base::MessageLoop must be TYPE_IO"; 254 << "The current base::MessageLoop must be TYPE_IO";
255 // If next_state_ is STATE_NONE, the socket was not opened, or already 255 // If next_state_ is STATE_NONE, the socket was not opened, or already
256 // closed. So, return immediately. 256 // closed. So, return immediately.
257 // Otherwise, it might call Finish() more than once, so breaks balance 257 // Otherwise, it might call Finish() more than once, so breaks balance
258 // of AddRef() and Release() in Connect() and Finish(), respectively. 258 // of AddRef() and Release() in Connect() and Finish(), respectively.
259 if (next_state_ == STATE_NONE) 259 if (next_state_ == STATE_NONE)
260 return; 260 return;
261 base::MessageLoop::current()->PostTask( 261 base::MessageLoop::current()->PostTask(
262 FROM_HERE, base::Bind(&SocketStream::DoClose, this)); 262 FROM_HERE, base::Bind(&SocketStream::DoClose, this));
263 } 263 }
264 264
265 void SocketStream::RestartWithAuth(const AuthCredentials& credentials) { 265 void SocketStream::RestartWithAuth(const AuthCredentials& credentials) {
266 DCHECK(base::MessageLoop::current()) 266 DCHECK(base::MessageLoop::current())
267 << "The current base::MessageLoop must exist"; 267 << "The current base::MessageLoop must exist";
268 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 268 DCHECK(base::MessageLoopForIO::IsCurrent())
269 << "The current base::MessageLoop must be TYPE_IO"; 269 << "The current base::MessageLoop must be TYPE_IO";
270 DCHECK(proxy_auth_controller_.get()); 270 DCHECK(proxy_auth_controller_.get());
271 if (!connection_->socket()) { 271 if (!connection_->socket()) {
272 DVLOG(1) << "Socket is closed before restarting with auth."; 272 DVLOG(1) << "Socket is closed before restarting with auth.";
273 return; 273 return;
274 } 274 }
275 275
276 proxy_auth_controller_->ResetAuth(credentials); 276 proxy_auth_controller_->ResetAuth(credentials);
277 277
278 base::MessageLoop::current()->PostTask( 278 base::MessageLoop::current()->PostTask(
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 if (next_state_ == STATE_READ_WRITE && !current_write_buf_.get()) 351 if (next_state_ == STATE_READ_WRITE && !current_write_buf_.get())
352 DoLoop(ERR_ABORTED); 352 DoLoop(ERR_ABORTED);
353 353
354 // In other next_state_, we'll wait for callback of other APIs, such as 354 // In other next_state_, we'll wait for callback of other APIs, such as
355 // ResolveProxy(). 355 // ResolveProxy().
356 } 356 }
357 357
358 void SocketStream::Finish(int result) { 358 void SocketStream::Finish(int result) {
359 DCHECK(base::MessageLoop::current()) 359 DCHECK(base::MessageLoop::current())
360 << "The current base::MessageLoop must exist"; 360 << "The current base::MessageLoop must exist";
361 DCHECK_EQ(base::MessageLoop::TYPE_IO, base::MessageLoop::current()->type()) 361 DCHECK(base::MessageLoopForIO::IsCurrent())
362 << "The current base::MessageLoop must be TYPE_IO"; 362 << "The current base::MessageLoop must be TYPE_IO";
363 DCHECK_LE(result, OK); 363 DCHECK_LE(result, OK);
364 if (result == OK) 364 if (result == OK)
365 result = ERR_CONNECTION_CLOSED; 365 result = ERR_CONNECTION_CLOSED;
366 DCHECK_EQ(next_state_, STATE_NONE); 366 DCHECK_EQ(next_state_, STATE_NONE);
367 DVLOG(1) << "Finish result=" << ErrorToString(result); 367 DVLOG(1) << "Finish result=" << ErrorToString(result);
368 368
369 metrics_->OnClose(); 369 metrics_->OnClose();
370 370
371 if (result != ERR_CONNECTION_CLOSED && delegate_) 371 if (result != ERR_CONNECTION_CLOSED && delegate_)
(...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 context_->transport_security_state()->GetDomainState(url_.host(), 1336 context_->transport_security_state()->GetDomainState(url_.host(),
1337 SSLConfigService::IsSNIAvailable(context_->ssl_config_service()), 1337 SSLConfigService::IsSNIAvailable(context_->ssl_config_service()),
1338 &domain_state) && 1338 &domain_state) &&
1339 domain_state.ShouldSSLErrorsBeFatal(); 1339 domain_state.ShouldSSLErrorsBeFatal();
1340 1340
1341 delegate_->OnSSLCertificateError(this, ssl_info, fatal); 1341 delegate_->OnSSLCertificateError(this, ssl_info, fatal);
1342 return ERR_IO_PENDING; 1342 return ERR_IO_PENDING;
1343 } 1343 }
1344 1344
1345 } // namespace net 1345 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/cert_database_mac.cc ('k') | remoting/host/desktop_process.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698