Index: chrome/test/automation/automation_json_requests.cc |
=================================================================== |
--- chrome/test/automation/automation_json_requests.cc (revision 88495) |
+++ chrome/test/automation/automation_json_requests.cc (working copy) |
@@ -26,30 +26,44 @@ |
std::string* error_msg) { |
std::string request, reply; |
base::JSONWriter::Write(&request_dict, false, &request); |
- std::string command; |
- request_dict.GetString("command", &command); |
- LOG(INFO) << "Sending '" << command << "' command."; |
- |
+ bool success = false; |
+ int timeout_ms = TestTimeouts::action_max_timeout_ms(); |
base::Time before_sending = base::Time::Now(); |
- bool success = false; |
- if (!SendAutomationJSONRequestWithDefaultTimeout( |
- sender, request, &reply, &success)) { |
- *error_msg = base::StringPrintf( |
- "Chrome did not respond to '%s'. Elapsed time was %" PRId64 " ms. " |
- "Request details: (%s).", |
- command.c_str(), |
- (base::Time::Now() - before_sending).InMilliseconds(), |
- request.c_str()); |
+ if (!SendAutomationJSONRequest( |
+ sender, request, timeout_ms, &reply, &success)) { |
+ int64 elapsed_ms = (base::Time::Now() - before_sending).InMilliseconds(); |
+ std::string command; |
+ request_dict.GetString("command", &command); |
+ if (elapsed_ms >= timeout_ms) { |
+ *error_msg = base::StringPrintf( |
+ "Chrome did not respond to '%s'. Request may have timed out. " |
+ "Elapsed time was %" PRId64 " ms. Request timeout was %d ms. " |
+ "Request details: (%s).", |
+ command.c_str(), |
+ elapsed_ms, |
+ timeout_ms, |
+ request.c_str()); |
+ } else { |
+ *error_msg = base::StringPrintf( |
+ "Chrome did not respond to '%s'. Elapsed time was %" PRId64 " ms. " |
+ "Request details: (%s).", |
+ command.c_str(), |
+ elapsed_ms, |
+ request.c_str()); |
+ } |
return false; |
} |
scoped_ptr<Value> value(base::JSONReader::Read(reply, true)); |
if (!value.get() || !value->IsType(Value::TYPE_DICTIONARY)) { |
+ std::string command; |
+ request_dict.GetString("command", &command); |
LOG(ERROR) << "JSON request did not return dict: " << command << "\n"; |
return false; |
} |
DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); |
if (!success) { |
- std::string error; |
+ std::string command, error; |
+ request_dict.GetString("command", &command); |
dict->GetString("error", &error); |
*error_msg = base::StringPrintf( |
"Internal Chrome error during '%s': (%s). Request details: (%s).", |
@@ -86,15 +100,6 @@ |
-1, request, reply, success), timeout_ms); |
} |
-bool SendAutomationJSONRequestWithDefaultTimeout( |
- AutomationMessageSender* sender, |
- const std::string& request, |
- std::string* reply, |
- bool* success) { |
- return sender->Send(new AutomationMsg_SendJSONRequest( |
- -1, request, reply, success)); |
-} |
- |
bool SendGetIndicesFromTabIdJSONRequest( |
AutomationMessageSender* sender, |
int tab_id, |