| Index: chrome/browser/external_tab/external_tab_container_win.h | 
| diff --git a/chrome/browser/external_tab/external_tab_container_win.h b/chrome/browser/external_tab/external_tab_container_win.h | 
| index ed6f20fa92b4bbf47efcf880e2cbd91a701d7bd4..4a66a109835b89a8a5040277be6dbf940b91c462 100644 | 
| --- a/chrome/browser/external_tab/external_tab_container_win.h | 
| +++ b/chrome/browser/external_tab/external_tab_container_win.h | 
| @@ -24,6 +24,7 @@ | 
| #include "content/public/browser/notification_registrar.h" | 
| #include "content/public/browser/web_contents_delegate.h" | 
| #include "content/public/browser/web_contents_observer.h" | 
| +#include "content/public/common/referrer.h" | 
| #include "ui/base/accelerators/accelerator.h" | 
| #include "ui/views/widget/native_widget_win.h" | 
|  | 
| @@ -122,6 +123,13 @@ class ExternalTabContainer : public content::WebContentsDelegate, | 
| virtual content::WebContents* OpenURLFromTab( | 
| content::WebContents* source, | 
| const content::OpenURLParams& params) OVERRIDE; | 
| +  virtual bool ShouldIgnoreNavigation( | 
| +      content::WebContents* source, | 
| +      const GURL& url, | 
| +      const content::Referrer& referrer, | 
| +      WindowOpenDisposition disposition, | 
| +      bool is_content_initiated, | 
| +      content::PageTransition transition_type) OVERRIDE; | 
| virtual void NavigationStateChanged(const content::WebContents* source, | 
| unsigned changed_flags) OVERRIDE; | 
| virtual void AddNewContents(content::WebContents* source, | 
| @@ -280,6 +288,13 @@ class ExternalTabContainer : public content::WebContentsDelegate, | 
| // Creates and initializes the view hierarchy for this ExternalTabContainer. | 
| void SetupExternalTabView(); | 
|  | 
| +  // Send a URL open request to the external host. | 
| +  content::WebContents* OpenUrlInExtenalHost( | 
| +      content::WebContents* source, | 
| +      const GURL& url, | 
| +      WindowOpenDisposition disposition, | 
| +      const content::Referrer& referrer); | 
| + | 
| scoped_ptr<TabContentsWrapper> tab_contents_; | 
| scoped_refptr<AutomationProvider> automation_; | 
|  | 
| @@ -322,6 +337,11 @@ class ExternalTabContainer : public content::WebContentsDelegate, | 
| // A mapping between accelerators and commands. | 
| std::map<ui::Accelerator, int> accelerator_table_; | 
|  | 
| +  struct PendingOpenUrlRequest { | 
| +    GURL url; | 
| +    WindowOpenDisposition disposition; | 
| +    content::Referrer referrer; | 
| +  }; | 
| // Top level navigations received for a tab while it is waiting for an ack | 
| // from the external host go here. Scenario is a window.open executes on a | 
| // page in ChromeFrame. A new TabContents is created and the current | 
| @@ -333,7 +353,7 @@ class ExternalTabContainer : public content::WebContentsDelegate, | 
| // attach tab request. | 
| // Contains the list of URL requests which are pending waiting for an ack | 
| // from the external host. | 
| -  std::vector<content::OpenURLParams> pending_open_url_requests_; | 
| +  std::vector<PendingOpenUrlRequest> pending_open_url_requests_; | 
|  | 
| // Set to true if the ExternalTabContainer instance is waiting for an ack | 
| // from the host. | 
|  |