summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-28 23:40:54 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-28 23:40:54 +0000
commitb7b9227c5bf59dde49ca1f48ec66fa74b09d639e (patch)
tree5e8111efb14f91dbde95a3ce2a7424ecc556f9e2 /chrome/browser/automation
parent460fa9bcc4902580cd541cc3e807a3697e57f9bd (diff)
downloadchromium_src-b7b9227c5bf59dde49ca1f48ec66fa74b09d639e.zip
chromium_src-b7b9227c5bf59dde49ca1f48ec66fa74b09d639e.tar.gz
chromium_src-b7b9227c5bf59dde49ca1f48ec66fa74b09d639e.tar.bz2
Fix ChromeFrame test failures on IE8 which occurred because we did not handle the case
where a new AutomationResourceMessageFilter instance was created for a render view/render process id combination. This happens typically on IE8 and above where new windows could go into a different IE process. BUG=none TBR=robertshield Review URL: http://codereview.chromium.org/8414038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107827 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation')
-rw-r--r--chrome/browser/automation/automation_resource_message_filter.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/chrome/browser/automation/automation_resource_message_filter.cc b/chrome/browser/automation/automation_resource_message_filter.cc
index 574afd8..2f869e9 100644
--- a/chrome/browser/automation/automation_resource_message_filter.cc
+++ b/chrome/browser/automation/automation_resource_message_filter.cc
@@ -262,7 +262,11 @@ void AutomationResourceMessageFilter::RegisterRenderViewInIOThread(
RenderViewMap::iterator automation_details_iter(
filtered_render_views_.Get().find(renderer_key));
- if (automation_details_iter != filtered_render_views_.Get().end()) {
+ // We need to match the renderer key and the AutomationResourceMessageFilter
+ // instances. If the filter instances are different it means that a new
+ // automation channel (External host process) was created for this tab.
+ if (automation_details_iter != filtered_render_views_.Get().end() &&
+ automation_details_iter->second.filter == filter) {
DCHECK_GT(automation_details_iter->second.ref_count, 0);
automation_details_iter->second.ref_count++;
// The tab handle may have changed:-