| Index: chrome_frame/chrome_frame_automation.cc
 | 
| ===================================================================
 | 
| --- chrome_frame/chrome_frame_automation.cc	(revision 67218)
 | 
| +++ chrome_frame/chrome_frame_automation.cc	(working copy)
 | 
| @@ -144,10 +144,13 @@
 | 
|  };
 | 
|  
 | 
|  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());
 | 
|  
 | 
| @@ -271,8 +274,10 @@
 | 
|    // 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.
 | 
| @@ -282,7 +287,7 @@
 | 
|    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
 | 
| 
 |