summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-29 16:45:43 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-29 16:45:43 +0000
commitc7fd73291df44ad9c03c04d8aba6e5d694bf2864 (patch)
tree1c69c985b2341ca9713fa46f5a7b1fecb842695f
parent64b64571cafb17f831e35be682cf06b91049f6ca (diff)
downloadchromium_src-c7fd73291df44ad9c03c04d8aba6e5d694bf2864.zip
chromium_src-c7fd73291df44ad9c03c04d8aba6e5d694bf2864.tar.gz
chromium_src-c7fd73291df44ad9c03c04d8aba6e5d694bf2864.tar.bz2
GTTF: Use IPC_BEGIN_MESSAGE_MAP_EX everywhere in the automation framework.
This avoids an implicit DCHECK that crashes the browser under test which is hard to debug. A log message should work better. BUG=77875 Review URL: http://codereview.chromium.org/7523043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94691 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/automation/automation_resource_message_filter.cc13
-rw-r--r--chrome/browser/automation/url_request_automation_job.cc11
2 files changed, 20 insertions, 4 deletions
diff --git a/chrome/browser/automation/automation_resource_message_filter.cc b/chrome/browser/automation/automation_resource_message_filter.cc
index ddc3b65..d64f5a1 100644
--- a/chrome/browser/automation/automation_resource_message_filter.cc
+++ b/chrome/browser/automation/automation_resource_message_filter.cc
@@ -138,7 +138,10 @@ bool AutomationResourceMessageFilter::OnMessageReceived(
}
bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(AutomationResourceMessageFilter, message)
+ bool deserialize_success = true;
+ IPC_BEGIN_MESSAGE_MAP_EX(AutomationResourceMessageFilter,
+ message,
+ deserialize_success)
IPC_MESSAGE_HANDLER(AutomationMsg_SetFilteredInet,
OnSetFilteredInet)
IPC_MESSAGE_HANDLER(AutomationMsg_GetFilteredInetHitCount,
@@ -148,7 +151,13 @@ bool AutomationResourceMessageFilter::OnMessageReceived(
IPC_MESSAGE_HANDLER(AutomationMsg_GetCookiesHostResponse,
OnGetCookiesHostResponse)
IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
+ IPC_END_MESSAGE_MAP_EX()
+
+ if (!deserialize_success) {
+ LOG(ERROR) << "Failed to deserialize IPC message. "
+ << "Closing the automation channel.";
+ channel_->Close();
+ }
return handled;
}
diff --git a/chrome/browser/automation/url_request_automation_job.cc b/chrome/browser/automation/url_request_automation_job.cc
index c232bbd..cf99f6d 100644
--- a/chrome/browser/automation/url_request_automation_job.cc
+++ b/chrome/browser/automation/url_request_automation_job.cc
@@ -271,11 +271,18 @@ void URLRequestAutomationJob::OnMessage(const IPC::Message& message) {
return;
}
- IPC_BEGIN_MESSAGE_MAP(URLRequestAutomationJob, message)
+ bool deserialize_success = false;
+ IPC_BEGIN_MESSAGE_MAP_EX(URLRequestAutomationJob,
+ message,
+ deserialize_success)
IPC_MESSAGE_HANDLER(AutomationMsg_RequestStarted, OnRequestStarted)
IPC_MESSAGE_HANDLER(AutomationMsg_RequestData, OnDataAvailable)
IPC_MESSAGE_HANDLER(AutomationMsg_RequestEnd, OnRequestEnd)
- IPC_END_MESSAGE_MAP()
+ IPC_END_MESSAGE_MAP_EX()
+
+ if (!deserialize_success) {
+ LOG(ERROR) << "Failed to deserialize IPC message.";
+ }
}
void URLRequestAutomationJob::OnRequestStarted(