| Index: trunk/src/net/socket_stream/socket_stream.cc
|
| ===================================================================
|
| --- trunk/src/net/socket_stream/socket_stream.cc (revision 256581)
|
| +++ trunk/src/net/socket_stream/socket_stream.cc (working copy)
|
| @@ -87,13 +87,11 @@
|
|
|
| SocketStream::ResponseHeaders::~ResponseHeaders() { data_ = NULL; }
|
|
|
| -SocketStream::SocketStream(const GURL& url, Delegate* delegate,
|
| - URLRequestContext* context,
|
| - CookieStore* cookie_store)
|
| +SocketStream::SocketStream(const GURL& url, Delegate* delegate)
|
| : delegate_(delegate),
|
| url_(url),
|
| max_pending_send_allowed_(kMaxPendingSendAllowed),
|
| - context_(context),
|
| + context_(NULL),
|
| next_state_(STATE_NONE),
|
| factory_(ClientSocketFactory::GetDefaultFactory()),
|
| proxy_mode_(kDirectConnection),
|
| @@ -110,24 +108,12 @@
|
| waiting_for_write_completion_(false),
|
| closing_(false),
|
| server_closed_(false),
|
| - metrics_(new SocketStreamMetrics(url)),
|
| - cookie_store_(cookie_store) {
|
| + metrics_(new SocketStreamMetrics(url)) {
|
| DCHECK(base::MessageLoop::current())
|
| << "The current base::MessageLoop must exist";
|
| DCHECK(base::MessageLoopForIO::IsCurrent())
|
| << "The current base::MessageLoop must be TYPE_IO";
|
| DCHECK(delegate_);
|
| -
|
| - if (context_) {
|
| - if (!cookie_store_)
|
| - cookie_store_ = context_->cookie_store();
|
| -
|
| - net_log_ = BoundNetLog::Make(
|
| - context->net_log(),
|
| - NetLog::SOURCE_SOCKET_STREAM);
|
| -
|
| - net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE);
|
| - }
|
| }
|
|
|
| SocketStream::UserData* SocketStream::GetUserData(
|
| @@ -146,20 +132,28 @@
|
| return url_.SchemeIs("wss");
|
| }
|
|
|
| -void SocketStream::DetachContext() {
|
| - if (!context_)
|
| - return;
|
| +void SocketStream::set_context(URLRequestContext* context) {
|
| + const URLRequestContext* prev_context = context_;
|
|
|
| - if (pac_request_) {
|
| - context_->proxy_service()->CancelPacRequest(pac_request_);
|
| - pac_request_ = NULL;
|
| - }
|
| + context_ = context;
|
|
|
| - net_log_.EndEvent(NetLog::TYPE_REQUEST_ALIVE);
|
| - net_log_ = BoundNetLog();
|
| + if (prev_context != context) {
|
| + if (prev_context && pac_request_) {
|
| + prev_context->proxy_service()->CancelPacRequest(pac_request_);
|
| + pac_request_ = NULL;
|
| + }
|
|
|
| - context_ = NULL;
|
| - cookie_store_ = NULL;
|
| + net_log_.EndEvent(NetLog::TYPE_REQUEST_ALIVE);
|
| + net_log_ = BoundNetLog();
|
| +
|
| + if (context) {
|
| + net_log_ = BoundNetLog::Make(
|
| + context->net_log(),
|
| + NetLog::SOURCE_SOCKET_STREAM);
|
| +
|
| + net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE);
|
| + }
|
| + }
|
| }
|
|
|
| void SocketStream::CheckPrivacyMode() {
|
| @@ -324,7 +318,7 @@
|
| }
|
|
|
| SocketStream::~SocketStream() {
|
| - DetachContext();
|
| + set_context(NULL);
|
| DCHECK(!delegate_);
|
| DCHECK(!pac_request_);
|
| }
|
| @@ -1348,8 +1342,4 @@
|
| return ERR_IO_PENDING;
|
| }
|
|
|
| -CookieStore* SocketStream::cookie_store() const {
|
| - return cookie_store_;
|
| -}
|
| -
|
| } // namespace net
|
|
|