diff options
author | twiz@google.com <twiz@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-08 22:36:09 +0000 |
---|---|---|
committer | twiz@google.com <twiz@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-08 22:36:09 +0000 |
commit | 8103c7fa6b614bf834b080962bdc28465ebe612b (patch) | |
tree | 0d0df40bff18ed832060bdd85969bf232f91117f /chrome_frame/chrome_frame_activex_base.h | |
parent | a19124714ececf0de3c5b7b69b013fbbdec9a1b3 (diff) | |
download | chromium_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.h | 16 |
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); } |