| Index: chrome_frame/chrome_frame_automation.cc
|
| diff --git a/chrome_frame/chrome_frame_automation.cc b/chrome_frame/chrome_frame_automation.cc
|
| index 8fb4d48709cbfd7f942ff638c668b3a7a7155182..e0d8ead839173eef44d166df0f554a18b4c6ec03 100644
|
| --- a/chrome_frame/chrome_frame_automation.cc
|
| +++ b/chrome_frame/chrome_frame_automation.cc
|
| @@ -136,10 +136,13 @@ class ChromeFrameAutomationProxyImpl::CFMsgDispatcher
|
| };
|
|
|
| ChromeFrameAutomationProxyImpl::ChromeFrameAutomationProxyImpl(
|
| - AutomationProxyCacheEntry* entry, int launch_timeout)
|
| + AutomationProxyCacheEntry* entry,
|
| + std::string channel_id, int launch_timeout)
|
| : AutomationProxy(launch_timeout, false), proxy_entry_(entry) {
|
| TRACE_EVENT_BEGIN("chromeframe.automationproxy", this, "");
|
|
|
| + InitializeChannel(channel_id, false);
|
| +
|
| sync_ = new CFMsgDispatcher();
|
| message_filter_ = new TabProxyNotificationMessageFilter(tracker_.get());
|
|
|
| @@ -263,8 +266,10 @@ void AutomationProxyCacheEntry::CreateProxy(ChromeFrameLaunchParams* params,
|
| // destruction notification.
|
|
|
| // At same time we must destroy/stop the thread from another thread.
|
| + std::string channel_id = AutomationProxy::GenerateChannelID();
|
| ChromeFrameAutomationProxyImpl* proxy =
|
| - new ChromeFrameAutomationProxyImpl(this, params->launch_timeout());
|
| + new ChromeFrameAutomationProxyImpl(this, channel_id,
|
| + params->launch_timeout());
|
|
|
| // Ensure that the automation proxy actually respects our choice on whether
|
| // or not to check the version.
|
| @@ -274,7 +279,7 @@ void AutomationProxyCacheEntry::CreateProxy(ChromeFrameLaunchParams* params,
|
| scoped_ptr<CommandLine> command_line(
|
| chrome_launcher::CreateLaunchCommandLine());
|
| command_line->AppendSwitchASCII(switches::kAutomationClientChannelID,
|
| - proxy->channel_id());
|
| + channel_id);
|
|
|
| // Run Chrome in Chrome Frame mode. In practice, this modifies the paths
|
| // and registry keys that Chrome looks in via the BrowserDistribution
|
|
|