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

Unified Diff: chrome/test/chromedriver/devtools_client_impl.cc

Issue 12093057: [ChromeDriver] Send DOM.getDocument after each DOM.documentUpdated. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix indent Created 7 years, 11 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/devtools_client_impl.cc
diff --git a/chrome/test/chromedriver/devtools_client_impl.cc b/chrome/test/chromedriver/devtools_client_impl.cc
index 41e0da8774c9c957ffc3c464b5e8e5156e2a1329..e78d9afd1b86ecc66315030dd92b3dfdce99062f 100644
--- a/chrome/test/chromedriver/devtools_client_impl.cc
+++ b/chrome/test/chromedriver/devtools_client_impl.cc
@@ -44,7 +44,13 @@ DevToolsClientImpl::DevToolsClientImpl(
connected_(false),
next_id_(1) {}
-DevToolsClientImpl::~DevToolsClientImpl() {}
+DevToolsClientImpl::~DevToolsClientImpl() {
+ for (ResponseMap::iterator iter = cmd_response_map_.begin();
+ iter != cmd_response_map_.end(); ++iter) {
+ LOG(WARNING) << "Finished with no response for command " << iter->first;
+ delete iter->second;
+ }
+}
Status DevToolsClientImpl::SendCommand(
const std::string& method,
@@ -120,22 +126,25 @@ Status DevToolsClientImpl::ReceiveCommandResponse(
internal::InspectorMessageType type;
internal::InspectorEvent event;
internal::InspectorCommandResponse response;
- while (true) {
+ cmd_response_map_[command_id] = NULL;
kkania 2013/01/30 22:36:05 what's this about?
craigdh 2013/01/30 23:05:21 The overarching idea is that we support overlappin
+ while (cmd_response_map_[command_id] == NULL) {
Status status = ReceiveNextMessage(command_id, &type, &event, &response);
if (status.IsError()) {
return status;
} else if (type == internal::kCommandResponseMessageType) {
- if (response.id != command_id) {
+ if (cmd_response_map_.count(response.id) == 0) {
return Status(kUnknownError,
"received response for unknown command ID");
+ } else if (response.result) {
+ cmd_response_map_[response.id] = response.result.release();
+ } else {
+ return Status(kUnknownError, "inspector error: " + response.error);
}
- if (response.result) {
- result->reset(response.result.release());
- return Status(kOk);
- }
- return Status(kUnknownError, "inspector error: " + response.error);
}
}
+ result->reset(cmd_response_map_[command_id]);
+ cmd_response_map_.erase(command_id);
+ return Status(kOk);
}
Status DevToolsClientImpl::ReceiveNextMessage(

Powered by Google App Engine
This is Rietveld 408576698