| Index: chrome/browser/ui/views/extensions/extension_view.cc
|
| ===================================================================
|
| --- chrome/browser/ui/views/extensions/extension_view.cc (revision 110269)
|
| +++ chrome/browser/ui/views/extensions/extension_view.cc (working copy)
|
| @@ -8,11 +8,19 @@
|
| #include "chrome/browser/ui/views/extensions/extension_popup.h"
|
| #include "content/browser/renderer_host/render_view_host.h"
|
| #include "content/browser/renderer_host/render_widget_host_view.h"
|
| -#include "content/browser/tab_contents/tab_contents.h"
|
| -#include "content/browser/tab_contents/tab_contents_view.h"
|
| #include "content/public/browser/content_browser_client.h"
|
| #include "views/widget/widget.h"
|
|
|
| +#if defined(USE_AURA)
|
| +#include "content/browser/renderer_host/render_widget_host_view_aura.h"
|
| +#elif defined(TOUCH_UI)
|
| +#include "chrome/browser/renderer_host/render_widget_host_view_views.h"
|
| +#elif defined(TOOLKIT_USES_GTK)
|
| +#include "content/browser/renderer_host/render_widget_host_view_gtk.h"
|
| +#elif defined(OS_WIN)
|
| +#include "content/browser/renderer_host/render_widget_host_view_win.h"
|
| +#endif
|
| +
|
| ExtensionView::ExtensionView(ExtensionHost* host, Browser* browser)
|
| : host_(host),
|
| browser_(browser),
|
| @@ -76,8 +84,33 @@
|
| void ExtensionView::CreateWidgetHostView() {
|
| DCHECK(!initialized_);
|
| initialized_ = true;
|
| - Attach(host_->host_contents()->view()->GetNativeView());
|
| - host_->CreateRenderViewSoon();
|
| + RenderWidgetHostView* view =
|
| + content::GetContentClient()->browser()->CreateViewForWidget(
|
| + render_view_host());
|
| +
|
| + // TODO(mpcomplete): RWHV needs a cross-platform Init function.
|
| +#if defined(USE_AURA)
|
| + static_cast<RenderWidgetHostViewAura*>(view)->InitAsChild();
|
| +#elif defined(TOUCH_UI)
|
| + static_cast<RenderWidgetHostViewViews*>(view)->InitAsChild();
|
| +#elif defined(TOOLKIT_USES_GTK)
|
| + static_cast<RenderWidgetHostViewGtk*>(view)->InitAsChild();
|
| +#elif defined(OS_WIN)
|
| + // Create the HWND. Note:
|
| + // RenderWidgetHostHWND supports windowed plugins, but if we ever also
|
| + // wanted to support constrained windows with this, we would need an
|
| + // additional HWND to parent off of because windowed plugin HWNDs cannot
|
| + // exist in the same z-order as constrained windows.
|
| + RenderWidgetHostViewWin* view_win =
|
| + static_cast<RenderWidgetHostViewWin*>(view);
|
| + view_win->Create(GetWidget()->GetNativeView());
|
| + view_win->ShowWindow(SW_SHOW);
|
| +#else
|
| + NOTIMPLEMENTED();
|
| +#endif
|
| +
|
| + Attach(view->GetNativeView());
|
| + host_->CreateRenderViewSoon(view);
|
| SetVisible(false);
|
| }
|
|
|
| @@ -153,6 +186,16 @@
|
| render_view_host()->view()->SetSize(size());
|
| }
|
|
|
| +void ExtensionView::HandleMouseMove() {
|
| + if (container_)
|
| + container_->OnExtensionMouseMove(this);
|
| +}
|
| +
|
| +void ExtensionView::HandleMouseLeave() {
|
| + if (container_)
|
| + container_->OnExtensionMouseLeave(this);
|
| +}
|
| +
|
| void ExtensionView::RenderViewCreated() {
|
| if (!pending_background_.empty() && render_view_host()->view()) {
|
| render_view_host()->view()->SetBackground(pending_background_);
|
|
|