Chromium Code Reviews| 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..dd9bcbaa033101a5d00678495019b302bf9dfef3 100644 |
| --- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc |
| +++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc |
| @@ -474,9 +474,14 @@ bool ParseInspectorMessage( |
| } else if (message_dict->GetInteger("id", &id)) { |
| base::DictionaryValue* unscoped_error = NULL; |
| base::DictionaryValue* unscoped_result = NULL; |
| + // 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("error", &unscoped_error) && |
| !message_dict->GetDictionary("result", &unscoped_result)) |
| - return false; |
| + unscoped_result = new base::DictionaryValue(); |
|
stgao
2014/08/04 21:15:09
Seems like a memory leak, because |unscoped_result
johnmoore
2014/08/04 21:40:48
Done.
|
| *type = kCommandResponseMessageType; |
| command_response->id = id; |