summaryrefslogtreecommitdiffstats
path: root/chrome/browser/external_tab_container.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 18:15:34 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-22 18:15:34 +0000
commit5951b5c1c74422be6793df444364f2f5436685ff (patch)
treecb424f37692a95576cd314cb8bc9dc8e6b844c88 /chrome/browser/external_tab_container.h
parent750d1df01bae3a105313008e649d6a8e756bc316 (diff)
downloadchromium_src-5951b5c1c74422be6793df444364f2f5436685ff.zip
chromium_src-5951b5c1c74422be6793df444364f2f5436685ff.tar.gz
chromium_src-5951b5c1c74422be6793df444364f2f5436685ff.tar.bz2
Initial HTTP requests issued by ChromeFrame popups could bypass the host network stack. The host network
stack in ChromeFrame intercepts HTTP requests based on registered render views. When a popup window is created we register it in the AddNewContents notification on the TabContentsDelegate. This is a little late as network requests could be issued before the view actually becomes visible. To fix this we now have a new method in the TabContentsDelegate interface called TabContentsCreated which notifies the delegate about the creation of a new TabContents. The ExternalTabContainer implements this method and registers the render view as pending. I also changed the signature of the RenderViewHostDelegateViewHelper::CreateNewWindow method to return the new TabContents. As part of this fix we also unregister the render view when the ExternalTabContainer is deleted. The container registers for the NotificationType::RENDER_VIEW_HOST_DELETED notification. However we end up deleting the TabContents in WM_DESTROY, which results in the container never receiving this notification. Fixes bug http://code.google.com/p/chromium/issues/detail?id=36323 Bug=36323 Test=Will be covered by the automation proxy test which Stoyan is adding Review URL: http://codereview.chromium.org/652009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39611 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/external_tab_container.h')
-rw-r--r--chrome/browser/external_tab_container.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/chrome/browser/external_tab_container.h b/chrome/browser/external_tab_container.h
index 154d258..d3d8625 100644
--- a/chrome/browser/external_tab_container.h
+++ b/chrome/browser/external_tab_container.h
@@ -196,6 +196,8 @@ class ExternalTabContainer : public TabContentsDelegate,
// InfoBarContainer::Delegate overrides
virtual void InfoBarSizeChanged(bool is_animating);
+ virtual void TabContentsCreated(TabContents* new_contents);
+
protected:
// Overridden from views::WidgetWin:
virtual LRESULT OnCreate(LPCREATESTRUCT create_struct);