summaryrefslogtreecommitdiffstats
path: root/chrome/browser/external_tab_container.cc
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 21:07:53 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-18 21:07:53 +0000
commit7de487c60478205f8f4396d2b77dd4e0fd65f583 (patch)
treeea02cb62f1edde2791ca2c090dc3eeef55b4e395 /chrome/browser/external_tab_container.cc
parent3ec54a2fe0482dc97113478ac87e45b505e636be (diff)
downloadchromium_src-7de487c60478205f8f4396d2b77dd4e0fd65f583.zip
chromium_src-7de487c60478205f8f4396d2b77dd4e0fd65f583.tar.gz
chromium_src-7de487c60478205f8f4396d2b77dd4e0fd65f583.tar.bz2
Multiple chrome frame activex controls should instantiate and navigate correctly in IE. This was not
the case due to a race condition between put_src getting called for subsequent activex instances and the external tab to hold the chrome frame instance getting created. Fix is to pass in the URL if we have it when the automation client is initialized to launch the chrome automation server. If not we navigate when the external tab is created. To achieve this we stuff in all relevant parameters into a structure which is populated when the automation client is initialized. I also changed the CreateExternalTab message to carry the referrer for the initial navigation. Fixes http://code.google.com/p/chromium/issues/detail?id=28236 Test=added unit tests for the same. The firefox one is not working at this point. Disabled this test for now while I debug it. Bug=28236 Review URL: http://codereview.chromium.org/500123 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34985 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/external_tab_container.cc')
-rw-r--r--chrome/browser/external_tab_container.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/browser/external_tab_container.cc b/chrome/browser/external_tab_container.cc
index 2897520..153c5f9a 100644
--- a/chrome/browser/external_tab_container.cc
+++ b/chrome/browser/external_tab_container.cc
@@ -59,7 +59,8 @@ bool ExternalTabContainer::Init(Profile* profile,
bool load_requests_via_automation,
bool handle_top_level_requests,
TabContents* existing_contents,
- const GURL& initial_url) {
+ const GURL& initial_url,
+ const GURL& referrer) {
if (IsWindow()) {
NOTREACHED();
return false;
@@ -129,7 +130,7 @@ bool ExternalTabContainer::Init(Profile* profile,
MessageLoop::current()->PostTask(
FROM_HERE,
external_method_factory_.NewRunnableMethod(
- &ExternalTabContainer::Navigate, initial_url, GURL()));
+ &ExternalTabContainer::Navigate, initial_url, referrer));
}
// We need WS_POPUP to be on the window during initialization, but
@@ -318,6 +319,7 @@ void ExternalTabContainer::AddNewContents(TabContents* source,
load_requests_via_automation_,
handle_top_level_requests_,
new_contents,
+ GURL(),
GURL());
if (result) {