| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 #include "base/rand_util.h" | 6 #include "base/rand_util.h" |
| 7 #include "chrome/browser/devtools/device/devtools_android_bridge.h" | 7 #include "chrome/browser/devtools/device/devtools_android_bridge.h" |
| 8 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
| 9 #include "net/base/io_buffer.h" | 9 #include "net/base/io_buffer.h" |
| 10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 void WebSocketImpl::OnBytesRead( | 143 void WebSocketImpl::OnBytesRead( |
| 144 scoped_refptr<net::IOBuffer> response_buffer, int result) { | 144 scoped_refptr<net::IOBuffer> response_buffer, int result) { |
| 145 if (!socket_) | 145 if (!socket_) |
| 146 return; | 146 return; |
| 147 | 147 |
| 148 if (result <= 0) { | 148 if (result <= 0) { |
| 149 DisconnectOnHandlerThread(true); | 149 DisconnectOnHandlerThread(true); |
| 150 return; | 150 return; |
| 151 } | 151 } |
| 152 | 152 |
| 153 std::string data = std::string(response_buffer->data(), result); | 153 response_buffer_.append(response_buffer->data(), result); |
| 154 response_buffer_ += data; | |
| 155 | 154 |
| 156 int bytes_consumed; | 155 int bytes_consumed; |
| 157 std::string output; | 156 std::string output; |
| 158 WebSocket::ParseResult parse_result = WebSocket::DecodeFrameHybi17( | 157 WebSocket::ParseResult parse_result = WebSocket::DecodeFrameHybi17( |
| 159 response_buffer_, false, &bytes_consumed, &output); | 158 response_buffer_, false, &bytes_consumed, &output); |
| 160 | 159 |
| 161 while (parse_result == WebSocket::FRAME_OK) { | 160 while (parse_result == WebSocket::FRAME_OK) { |
| 162 response_buffer_ = response_buffer_.substr(bytes_consumed); | 161 response_buffer_ = response_buffer_.substr(bytes_consumed); |
| 163 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 162 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 164 base::Bind(&WebSocketImpl::OnFrameRead, this, output)); | 163 base::Bind(&WebSocketImpl::OnFrameRead, this, output)); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket> | 226 scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket> |
| 228 DevToolsAndroidBridge::RemoteBrowser::CreateWebSocket( | 227 DevToolsAndroidBridge::RemoteBrowser::CreateWebSocket( |
| 229 const std::string& url, | 228 const std::string& url, |
| 230 DevToolsAndroidBridge::AndroidWebSocket::Delegate* delegate) { | 229 DevToolsAndroidBridge::AndroidWebSocket::Delegate* delegate) { |
| 231 return new WebSocketImpl( | 230 return new WebSocketImpl( |
| 232 android_bridge_, | 231 android_bridge_, |
| 233 android_bridge_->device_manager(), | 232 android_bridge_->device_manager(), |
| 234 android_bridge_->device_message_loop(), | 233 android_bridge_->device_message_loop(), |
| 235 serial_, socket_, url, delegate); | 234 serial_, socket_, url, delegate); |
| 236 } | 235 } |
| OLD | NEW |