diff options
author | andybons@chromium.org <andybons@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-09 04:14:02 +0000 |
---|---|---|
committer | andybons@chromium.org <andybons@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-09 04:14:02 +0000 |
commit | cf390ea428a6c56280c61b5998c8ffffefa971c5 (patch) | |
tree | fe65fd6ae8816a3994b52efc18db625987a26c11 /chrome/browser/extensions/extension_host.h | |
parent | 3cd15376f3e5fdabe9f41c8f4b65f33025a3d0b6 (diff) | |
download | chromium_src-cf390ea428a6c56280c61b5998c8ffffefa971c5.zip chromium_src-cf390ea428a6c56280c61b5998c8ffffefa971c5.tar.gz chromium_src-cf390ea428a6c56280c61b5998c8ffffefa971c5.tar.bz2 |
Fixes issue where clicking on a <SELECT> dropdown in an extension popup window would hard crash the browser.
I'm hoping that this will open up discussions for refactoring work amongst ExtensionHost and TabContentsView, since
so much code is shared between the two and both need sufficient Mac love.
BUG=29353
TEST=load a browser action with a popup that contains a SELECT element. click on the element and observe that it acts normally (no crashing).
Review URL: http://codereview.chromium.org/465108
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34136 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_host.h')
-rw-r--r-- | chrome/browser/extensions/extension_host.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_host.h b/chrome/browser/extensions/extension_host.h index 35fc89e..76f20d2 100644 --- a/chrome/browser/extensions/extension_host.h +++ b/chrome/browser/extensions/extension_host.h @@ -159,6 +159,20 @@ class ExtensionHost : public ExtensionPopupHost::PopupDelegate, virtual TabContents* AsTabContents() { return NULL; } virtual ExtensionHost* AsExtensionHost() { return this; } + protected: + // Internal functions used to support the CreateNewWidget() method. If a + // platform requires plugging into widget creation at a lower level, then a + // subclass might want to override these functions, but otherwise they should + // be fine just implementing RenderWidgetHostView::InitAsPopup(). + // + // The Create function returns the newly created widget so it can be + // associated with the given route. When the widget needs to be shown later, + // we'll look it up again and pass the object to the Show functions rather + // than the route ID. + virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, + bool activatable); + virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view, + const gfx::Rect& initial_pos); private: friend class ProcessCreationQueue; |