diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 01:03:43 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 01:03:43 +0000 |
commit | 28b3a811ffc8c1563a699fa4a185bc11583a8ccd (patch) | |
tree | 3a19c6f3abdb1a56d693516c8b014904123bc120 /chrome/browser/extensions/extension_host_mac.mm | |
parent | 309722bbac4f5c65361683f8800abdb2f62059fe (diff) | |
download | chromium_src-28b3a811ffc8c1563a699fa4a185bc11583a8ccd.zip chromium_src-28b3a811ffc8c1563a699fa4a185bc11583a8ccd.tar.gz chromium_src-28b3a811ffc8c1563a699fa4a185bc11583a8ccd.tar.bz2 |
Revert "Have ExtensionHost use TabContents instead of RenderViewHost. This is part"
It broke a browser test on Mac.
BUG=84146
TEST=no
Review URL: http://codereview.chromium.org/8467039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108957 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_host_mac.mm')
-rw-r--r-- | chrome/browser/extensions/extension_host_mac.mm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_host_mac.mm b/chrome/browser/extensions/extension_host_mac.mm index 424db46..64c5d92 100644 --- a/chrome/browser/extensions/extension_host_mac.mm +++ b/chrome/browser/extensions/extension_host_mac.mm @@ -22,6 +22,33 @@ ExtensionHostMac::~ExtensionHostMac() { } } +RenderWidgetHostView* ExtensionHostMac::CreateNewWidgetInternal( + int route_id, + WebKit::WebPopupType popup_type) { + // A RenderWidgetHostViewMac has lifetime scoped to the view. We'll retain it + // to allow it to survive the trip without being hosed. + RenderWidgetHostView* widget_view = + ExtensionHost::CreateNewWidgetInternal(route_id, popup_type); + RenderWidgetHostViewMac* widget_view_mac = + static_cast<RenderWidgetHostViewMac*>(widget_view); + [widget_view_mac->native_view() retain]; + + return widget_view; +} + +void ExtensionHostMac::ShowCreatedWidgetInternal( + RenderWidgetHostView* widget_host_view, + const gfx::Rect& initial_pos) { + ExtensionHost::ShowCreatedWidgetInternal(widget_host_view, initial_pos); + + // A RenderWidgetHostViewMac has lifetime scoped to the view. Now that it's + // properly embedded (or purposefully ignored) we can release the reference we + // took in CreateNewWidgetInternal(). + RenderWidgetHostViewMac* widget_view_mac = + static_cast<RenderWidgetHostViewMac*>(widget_host_view); + [widget_view_mac->native_view() release]; +} + void ExtensionHostMac::UnhandledKeyboardEvent( const NativeWebKeyboardEvent& event) { if (event.skip_in_browser || event.type == NativeWebKeyboardEvent::Char || |