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 |