diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 23:40:54 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 23:40:54 +0000 |
commit | b7b9227c5bf59dde49ca1f48ec66fa74b09d639e (patch) | |
tree | 5e8111efb14f91dbde95a3ce2a7424ecc556f9e2 /chrome/browser/automation | |
parent | 460fa9bcc4902580cd541cc3e807a3697e57f9bd (diff) | |
download | chromium_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.cc | 6 |
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:- |