| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/websockets/websocket_job.h" | 5 #include "net/websockets/websocket_job.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/string_tokenizer.h" | 9 #include "base/string_tokenizer.h" |
| 10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 GetURLForCookies(), cookie_options); | 306 GetURLForCookies(), cookie_options); |
| 307 if (!cookie.empty()) | 307 if (!cookie.empty()) |
| 308 handshake_request_->AppendHeaderIfMissing("Cookie", cookie); | 308 handshake_request_->AppendHeaderIfMissing("Cookie", cookie); |
| 309 } | 309 } |
| 310 } | 310 } |
| 311 | 311 |
| 312 const std::string& handshake_request = handshake_request_->GetRawRequest(); | 312 const std::string& handshake_request = handshake_request_->GetRawRequest(); |
| 313 handshake_request_sent_ = 0; | 313 handshake_request_sent_ = 0; |
| 314 socket_->net_log()->AddEvent( | 314 socket_->net_log()->AddEvent( |
| 315 NetLog::TYPE_WEB_SOCKET_SEND_REQUEST_HEADERS, | 315 NetLog::TYPE_WEB_SOCKET_SEND_REQUEST_HEADERS, |
| 316 new NetLogWebSocketHandshakeParameter(handshake_request)); | 316 make_scoped_refptr( |
| 317 new NetLogWebSocketHandshakeParameter(handshake_request))); |
| 317 socket_->SendData(handshake_request.data(), | 318 socket_->SendData(handshake_request.data(), |
| 318 handshake_request.size()); | 319 handshake_request.size()); |
| 319 } | 320 } |
| 320 Release(); // Balance AddRef taken in AddCookieHeaderAndSend | 321 Release(); // Balance AddRef taken in AddCookieHeaderAndSend |
| 321 } | 322 } |
| 322 | 323 |
| 323 void WebSocketJob::OnSentHandshakeRequest( | 324 void WebSocketJob::OnSentHandshakeRequest( |
| 324 SocketStream* socket, int amount_sent) { | 325 SocketStream* socket, int amount_sent) { |
| 325 DCHECK_EQ(state_, CONNECTING); | 326 DCHECK_EQ(state_, CONNECTING); |
| 326 handshake_request_sent_ += amount_sent; | 327 handshake_request_sent_ += amount_sent; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 347 } | 348 } |
| 348 | 349 |
| 349 size_t response_length = handshake_response_->ParseRawResponse(data, len); | 350 size_t response_length = handshake_response_->ParseRawResponse(data, len); |
| 350 if (!handshake_response_->HasResponse()) { | 351 if (!handshake_response_->HasResponse()) { |
| 351 // not yet. we need more data. | 352 // not yet. we need more data. |
| 352 return; | 353 return; |
| 353 } | 354 } |
| 354 // handshake message is completed. | 355 // handshake message is completed. |
| 355 socket_->net_log()->AddEvent( | 356 socket_->net_log()->AddEvent( |
| 356 NetLog::TYPE_WEB_SOCKET_READ_RESPONSE_HEADERS, | 357 NetLog::TYPE_WEB_SOCKET_READ_RESPONSE_HEADERS, |
| 357 new NetLogWebSocketHandshakeParameter( | 358 make_scoped_refptr(new NetLogWebSocketHandshakeParameter( |
| 358 handshake_response_->GetRawResponse())); | 359 handshake_response_->GetRawResponse()))); |
| 359 if (len - response_length > 0) { | 360 if (len - response_length > 0) { |
| 360 // If we received extra data, it should be frame data. | 361 // If we received extra data, it should be frame data. |
| 361 receive_frame_handler_->AppendData(data + response_length, | 362 receive_frame_handler_->AppendData(data + response_length, |
| 362 len - response_length); | 363 len - response_length); |
| 363 } | 364 } |
| 364 SaveCookiesAndNotifyHeaderComplete(); | 365 SaveCookiesAndNotifyHeaderComplete(); |
| 365 } | 366 } |
| 366 | 367 |
| 367 void WebSocketJob::SaveCookiesAndNotifyHeaderComplete() { | 368 void WebSocketJob::SaveCookiesAndNotifyHeaderComplete() { |
| 368 // handshake message is completed. | 369 // handshake message is completed. |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 socket_->Close(); | 499 socket_->Close(); |
| 499 return; | 500 return; |
| 500 } | 501 } |
| 501 current_buffer_ = new DrainableIOBuffer( | 502 current_buffer_ = new DrainableIOBuffer( |
| 502 send_frame_handler_->GetCurrentBuffer(), | 503 send_frame_handler_->GetCurrentBuffer(), |
| 503 send_frame_handler_->GetCurrentBufferSize()); | 504 send_frame_handler_->GetCurrentBufferSize()); |
| 504 socket_->SendData(current_buffer_->data(), current_buffer_->BytesRemaining()); | 505 socket_->SendData(current_buffer_->data(), current_buffer_->BytesRemaining()); |
| 505 } | 506 } |
| 506 | 507 |
| 507 } // namespace net | 508 } // namespace net |
| OLD | NEW |