Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: chrome/test/chromedriver/net/sync_websocket_impl.cc

Issue 12321057: [chromedriver] Implement reconnection to DevTools. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix some nits and add one unit test. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/chromedriver/net/sync_websocket_impl.cc
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl.cc b/chrome/test/chromedriver/net/sync_websocket_impl.cc
index b3fcd79d82b2941b54370eae7ce5d41aaffa40f5..fdd23052124980cac006651fa30776bfb017924c 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl.cc
@@ -37,7 +37,7 @@ bool SyncWebSocketImpl::HasNextMessage() {
SyncWebSocketImpl::Core::Core(net::URLRequestContextGetter* context_getter)
: context_getter_(context_getter),
- closed_(false),
+ closed_(true),
kkania 2013/02/22 01:35:24 if you're going to have closed_ = true on start, y
chrisgao (Use stgao instead) 2013/02/27 19:29:44 Done.
on_update_event_(&lock_) {}
bool SyncWebSocketImpl::Core::Connect(const GURL& url) {
@@ -48,6 +48,10 @@ bool SyncWebSocketImpl::Core::Connect(const GURL& url) {
base::Bind(&SyncWebSocketImpl::Core::ConnectOnIO,
this, url, &success, &event));
event.Wait();
+ if (success) {
+ base::AutoLock lock(lock_);
+ closed_ = false;
kkania 2013/02/22 01:35:24 i think this is a race; the socket could have been
chrisgao (Use stgao instead) 2013/02/27 19:29:44 As Core::OnConnectCompletedOnIO and Core::OnClose
+ }
return success;
}
@@ -95,6 +99,8 @@ void SyncWebSocketImpl::Core::ConnectOnIO(
const GURL& url,
bool* success,
base::WaitableEvent* event) {
+ base::AutoLock lock(lock_);
+ received_queue_.clear();
socket_.reset(new WebSocket(context_getter_, url, this));
socket_->Connect(base::Bind(
&SyncWebSocketImpl::Core::OnConnectCompletedOnIO,

Powered by Google App Engine
This is Rietveld 408576698