| 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,
|
|
|