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

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

Issue 429693003: [ChromeDriver] Implementing PerfLoggingPrefs for perf log (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing memory leak Created 6 years, 4 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/chrome/devtools_client_impl.cc
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.cc b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
index 8bb0875c6939d32e790faecb4fc450398e750161..5c28526457da548e627da62fc33665f779cfa630 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
@@ -474,16 +474,19 @@ bool ParseInspectorMessage(
} else if (message_dict->GetInteger("id", &id)) {
base::DictionaryValue* unscoped_error = NULL;
base::DictionaryValue* unscoped_result = NULL;
- if (!message_dict->GetDictionary("error", &unscoped_error) &&
- !message_dict->GetDictionary("result", &unscoped_result))
- return false;
-
*type = kCommandResponseMessageType;
command_response->id = id;
- if (unscoped_result)
+ // As per Chromium issue 392577, DevTools does not necessarily return a
+ // "result" dictionary for every valid response. In particular,
+ // Tracing.start and Tracing.end command responses do not contain one.
+ // So, if neither "error" nor "result" keys are present, just provide
+ // a blank result dictionary.
+ if (message_dict->GetDictionary("result", &unscoped_result))
command_response->result.reset(unscoped_result->DeepCopy());
- else
+ else if (message_dict->GetDictionary("error", &unscoped_error))
base::JSONWriter::Write(unscoped_error, &command_response->error);
+ else
+ command_response->result.reset(new base::DictionaryValue());
return true;
}
return false;
« no previous file with comments | « chrome/test/chromedriver/capabilities_unittest.cc ('k') | chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698