summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_activex_base.h
diff options
context:
space:
mode:
authortwiz@google.com <twiz@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-08 22:36:09 +0000
committertwiz@google.com <twiz@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-08 22:36:09 +0000
commit8103c7fa6b614bf834b080962bdc28465ebe612b (patch)
tree0d0df40bff18ed832060bdd85969bf232f91117f /chrome_frame/chrome_frame_activex_base.h
parenta19124714ececf0de3c5b7b69b013fbbdec9a1b3 (diff)
downloadchromium_src-8103c7fa6b614bf834b080962bdc28465ebe612b.zip
chromium_src-8103c7fa6b614bf834b080962bdc28465ebe612b.tar.gz
chromium_src-8103c7fa6b614bf834b080962bdc28465ebe612b.tar.bz2
Change correcting the profile used when performing top-level navigations of the host browser with a ChromeFrame instance. If a ChromeFrame instance was loaded with a given profile, the bho used to always forward top-level navigation requests to a CF full-tab instance using the default (iexplore) profile. This caused problems with the automation channel, and the navigation would not complete.
I also cleaned up the gcf and host networking registry keys used by Chrome-Frame so that ActiveX instances will also respect their values. TEST=None BUG=None Review URL: http://codereview.chromium.org/3295019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58884 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_activex_base.h')
-rw-r--r--chrome_frame/chrome_frame_activex_base.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/chrome_frame/chrome_frame_activex_base.h b/chrome_frame/chrome_frame_activex_base.h
index c2c4035..de08d9a 100644
--- a/chrome_frame/chrome_frame_activex_base.h
+++ b/chrome_frame/chrome_frame_activex_base.h
@@ -37,6 +37,9 @@
// Include without path to make GYP build see it.
#include "chrome_tab.h" // NOLINT
+static const wchar_t kUseChromeNetworking[] = L"UseChromeNetworking";
+static const wchar_t kHandleTopLevelRequests[] = L"HandleTopLevelRequests";
+
// Connection point class to support firing IChromeFrameEvents (dispinterface).
template<class T>
class ATL_NO_VTABLE ProxyDIChromeFrameEvents
@@ -264,6 +267,14 @@ END_MSG_MAP()
IE_8,
IE_8 + 1);
}
+
+ // Query and assign the host networking and top-level-request settings
+ // from the registry.
+ bool chrome_network = GetConfigBool(false, kUseChromeNetworking);
+ bool top_level_requests = GetConfigBool(true, kHandleTopLevelRequests);
+ automation_client_->set_use_chrome_network(chrome_network);
+ automation_client_->set_handle_top_level_requests(top_level_requests);
+
return S_OK;
}
@@ -510,7 +521,7 @@ END_MSG_MAP()
GURL parsed_url(WideToUTF8(wide_url));
std::string url =
- StringPrintf("%hs:%hs?attach_external_tab&%I64u&%d&%d&%d&%d&%d",
+ StringPrintf("%hs:%hs?attach_external_tab&%I64u&%d&%d&%d&%d&%d&%hs",
parsed_url.scheme().c_str(),
parsed_url.host().c_str(),
params.cookie,
@@ -518,7 +529,8 @@ END_MSG_MAP()
params.dimensions.x(),
params.dimensions.y(),
params.dimensions.width(),
- params.dimensions.height());
+ params.dimensions.height(),
+ params.profile_name.c_str());
HostNavigate(GURL(url), GURL(), params.disposition);
}