Index: chrome/browser/devtools/device/android_device_manager.cc |
diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc |
index 0459dc89f533cd1e351ed6630fd3f615947929ec..4bec67924d9773418a5391de10ad069e3aab51b6 100644 |
--- a/chrome/browser/devtools/device/android_device_manager.cc |
+++ b/chrome/browser/devtools/device/android_device_manager.cc |
@@ -52,10 +52,11 @@ static void PostHttpUpgradeCallback( |
const AndroidDeviceManager::HttpUpgradeCallback& callback, |
int result, |
const std::string& extensions, |
+ const std::string& leading_bytes, |
scoped_ptr<net::StreamSocket> socket) { |
response_message_loop->PostTask( |
- FROM_HERE, |
- base::Bind(callback, result, extensions, base::Passed(&socket))); |
+ FROM_HERE, base::Bind(callback, result, extensions, leading_bytes, |
+ base::Passed(&socket))); |
} |
class HttpRequest { |
@@ -79,7 +80,7 @@ class HttpRequest { |
int result, |
scoped_ptr<net::StreamSocket> socket) { |
if (result != net::OK) { |
- callback.Run(result, "", make_scoped_ptr<net::StreamSocket>(nullptr)); |
+ callback.Run(result, "", "", make_scoped_ptr<net::StreamSocket>(nullptr)); |
return; |
} |
new HttpRequest(socket.Pass(), request, callback); |
@@ -164,13 +165,18 @@ class HttpRequest { |
} |
} |
- if (bytes_total == static_cast<int>(response_.length())) { |
- if (!command_callback_.is_null()) { |
- command_callback_.Run(net::OK, response_.substr(body_pos_)); |
- } else { |
- http_upgrade_callback_.Run(net::OK, |
- ExtractHeader("Sec-WebSocket-Extensions:"), socket_.Pass()); |
- } |
+ if (!command_callback_.is_null() && |
+ bytes_total == static_cast<int>(response_.length())) { |
+ command_callback_.Run(net::OK, response_.substr(body_pos_)); |
+ delete this; |
+ return; |
+ } |
+ |
+ if (!http_upgrade_callback_.is_null() && body_pos_ != std::string::npos && |
+ body_pos_ > 0) { |
+ http_upgrade_callback_.Run(net::OK, |
+ ExtractHeader("Sec-WebSocket-Extensions:"), |
+ response_.substr(body_pos_), socket_.Pass()); |
delete this; |
return; |
} |
@@ -207,8 +213,8 @@ class HttpRequest { |
if (!command_callback_.is_null()) { |
command_callback_.Run(result, std::string()); |
} else { |
- http_upgrade_callback_.Run( |
- result, "", make_scoped_ptr<net::StreamSocket>(nullptr)); |
+ http_upgrade_callback_.Run(result, "", "", |
+ make_scoped_ptr<net::StreamSocket>(nullptr)); |
} |
delete this; |
return false; |