| Index: chrome/browser/devtools/device/android_web_socket.cc
|
| diff --git a/chrome/browser/devtools/device/android_web_socket.cc b/chrome/browser/devtools/device/android_web_socket.cc
|
| index 4fa23fc0f939300b729fd215ba39d18ed0a8483b..616732a476a8abb4843a0cea06e8e44949021bf6 100644
|
| --- a/chrome/browser/devtools/device/android_web_socket.cc
|
| +++ b/chrome/browser/devtools/device/android_web_socket.cc
|
| @@ -23,6 +23,7 @@ using net::WebSocket;
|
| namespace {
|
|
|
| const int kBufferSize = 16 * 1024;
|
| +const char kCloseResponse[] = "\x88\x80\x2D\x0E\x1E\xFA";
|
|
|
| } // namespace
|
|
|
| @@ -102,15 +103,22 @@ class AndroidDeviceManager::AndroidWebSocket::WebSocketImpl {
|
| parse_result = encoder_->DecodeFrame(
|
| response_buffer_, &bytes_consumed, &output);
|
| }
|
| + if (parse_result == WebSocket::FRAME_CLOSE)
|
| + SendCloseResponse();
|
|
|
| - if (parse_result == WebSocket::FRAME_ERROR ||
|
| - parse_result == WebSocket::FRAME_CLOSE) {
|
| + if (parse_result == WebSocket::FRAME_ERROR) {
|
| Disconnect();
|
| return;
|
| }
|
| Read(io_buffer);
|
| }
|
|
|
| + void SendCloseResponse() {
|
| + request_buffer_ += kCloseResponse;
|
| + if (request_buffer_.length() == arraysize(kCloseResponse) - 1)
|
| + SendPendingRequests(0);
|
| + }
|
| +
|
| void SendPendingRequests(int result) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| if (result < 0) {
|
|
|