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. |