diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-17 17:53:48 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-17 17:53:48 +0000 |
commit | 79206cd0e7123e56006b165c824acdb0b3559b63 (patch) | |
tree | 9396cb4c35b46982e7703046a7cc3c6d0c069ce9 /chrome_frame/chrome_frame_automation.cc | |
parent | 2ac837a92d049c5bf89b77888ca2c80be0f260c2 (diff) | |
download | chromium_src-79206cd0e7123e56006b165c824acdb0b3559b63.zip chromium_src-79206cd0e7123e56006b165c824acdb0b3559b63.tar.gz chromium_src-79206cd0e7123e56006b165c824acdb0b3559b63.tar.bz2 |
Make use of the new version flag in Chrome to load the correct chrome.dll version.
Also fix a memory leak in the Chrome Frame automation code.
BUG=61609
TEST=Chrome.exe always loads the specified chrome.dll when run by Chrome Frame.
Review URL: http://codereview.chromium.org/5090001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66462 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_automation.cc')
-rw-r--r-- | chrome_frame/chrome_frame_automation.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/chrome_frame/chrome_frame_automation.cc b/chrome_frame/chrome_frame_automation.cc index b05c32aa..7a49f18 100644 --- a/chrome_frame/chrome_frame_automation.cc +++ b/chrome_frame/chrome_frame_automation.cc @@ -45,6 +45,15 @@ static const wchar_t kUmaSendIntervalValue[] = L"UmaSendInterval"; // threads. Lock g_ChromeFrameHistogramLock; +namespace { +std::wstring GetCurrentModuleVersion() { + scoped_ptr<FileVersionInfo> module_version_info( + FileVersionInfo::CreateFileVersionInfoForCurrentModule()); + DCHECK(module_version_info.get() != NULL); + return module_version_info->file_version(); +} +} + class ChromeFrameAutomationProxyImpl::TabProxyNotificationMessageFilter : public IPC::ChannelProxy::MessageFilter { public: @@ -305,6 +314,10 @@ void AutomationProxyCacheEntry::CreateProxy(ChromeFrameLaunchParams* params, command_line->AppendSwitchPath(switches::kUserDataDir, params->profile_path()); + // Ensure that Chrome is running the specified version of chrome.dll. + command_line->AppendSwitchNative(switches::kChromeVersion, + GetCurrentModuleVersion()); + if (!params->language().empty()) command_line->AppendSwitchNative(switches::kLang, params->language()); @@ -1301,14 +1314,7 @@ void ChromeFrameAutomationClient::SendContextMenuCommandToChromeFrame( } std::wstring ChromeFrameAutomationClient::GetVersion() const { - static FileVersionInfo* version_info = - FileVersionInfo::CreateFileVersionInfoForCurrentModule(); - - std::wstring version; - if (version_info) - version = version_info->product_version(); - - return version; + return GetCurrentModuleVersion(); } void ChromeFrameAutomationClient::Print(HDC print_dc, |