diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 19:46:28 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 19:46:28 +0000 |
commit | 98b3860142549f66f841c1a073182628a05a823e (patch) | |
tree | f5d8db358c4a7f5d8a58c41b20cb9a0abcd1102f /chrome | |
parent | e4d8e1c51a06fee5e6c35d47feea83b1c7347dc4 (diff) | |
download | chromium_src-98b3860142549f66f841c1a073182628a05a823e.zip chromium_src-98b3860142549f66f841c1a073182628a05a823e.tar.gz chromium_src-98b3860142549f66f841c1a073182628a05a823e.tar.bz2 |
Refactor some widget creation code in web_contents_view and render_widget_host_view.
This only affects popups. The advantages of this refactoring are to get rid of a TODO and allow some unforking of web_contents_view_*.
Review URL: http://codereview.chromium.org/48103
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
16 files changed, 86 insertions, 145 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view.h b/chrome/browser/renderer_host/render_widget_host_view.h index f269844..0779e5f 100644 --- a/chrome/browser/renderer_host/render_widget_host_view.h +++ b/chrome/browser/renderer_host/render_widget_host_view.h @@ -43,6 +43,11 @@ class RenderWidgetHostView { // going to be a regular RenderWidgetHost or a RenderViewHost (a subclass). static RenderWidgetHostView* CreateViewForWidget(RenderWidgetHost* widget); + // Perform all the initialization steps necessary for this object to represent + // a popup (such as a <select> dropdown), then shows the popup at |pos|. + virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos) = 0; + // Returns the associated RenderWidgetHost. virtual RenderWidgetHost* GetRenderWidgetHost() const = 0; @@ -113,9 +118,18 @@ class RenderWidgetHostView { // Allocate a backing store for this view virtual BackingStore* AllocBackingStore(const gfx::Size& size) = 0; + void set_activatable(bool activatable) { + activatable_ = activatable; + } + bool activatable() const { return activatable_; } + protected: // Interface class only, do not construct. - RenderWidgetHostView() {} + RenderWidgetHostView() : activatable_(true) {} + + // Whether the window can be activated. Autocomplete popup windows for example + // cannot be activated. Default is true. + bool activatable_; private: DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostView); diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.h b/chrome/browser/renderer_host/render_widget_host_view_gtk.h index e045213..61edf67 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_gtk.h +++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.h @@ -25,10 +25,6 @@ class RenderWidgetHostViewGtk : public RenderWidgetHostView { // Initialize this object for use as a drawing area. void InitAsChild(); - // Initialize this object for use as a popup (e.g. HTML dropdown menu). - void InitAsPopup(RenderWidgetHostView* parent_host_view, - const gfx::Rect& pos); - // TODO(estade): unfork this with RenderWidgetHostViewWin function of same // name. void set_activatable(bool activatable) { activatable_ = activatable; } @@ -36,6 +32,8 @@ class RenderWidgetHostViewGtk : public RenderWidgetHostView { // --------------------------------------------------------------------------- // Implementation of RenderWidgetHostView... + void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos); RenderWidgetHost* GetRenderWidgetHost() const { return host_; } void DidBecomeSelected(); void WasHidden(); diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.h b/chrome/browser/renderer_host/render_widget_host_view_mac.h index 38f72dd..fef0336 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.h +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.h @@ -56,6 +56,8 @@ class RenderWidgetHostViewMac : public RenderWidgetHostView { gfx::NativeView native_view() const { return cocoa_view_; } // Implementation of RenderWidgetHostView: + virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos); virtual RenderWidgetHost* GetRenderWidgetHost() const; virtual void DidBecomeSelected(); virtual void WasHidden(); diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm index 8e32152..0111baf 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm @@ -51,6 +51,12 @@ RenderWidgetHostViewMac::~RenderWidgetHostViewMac() { /////////////////////////////////////////////////////////////////////////////// // RenderWidgetHostViewMac, RenderWidgetHostView implementation: +void RenderWidgetHostViewMac::InitAsPopup( + RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos) { + NOTIMPLEMENTED(); +} + RenderWidgetHost* RenderWidgetHostViewMac::GetRenderWidgetHost() const { return render_widget_host_; } diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc index 52751ea..a6b3773 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_win.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc @@ -82,8 +82,7 @@ RenderWidgetHostViewWin::RenderWidgetHostViewWin(RenderWidgetHost* widget) tooltip_showing_(false), shutdown_factory_(this), parent_hwnd_(NULL), - is_loading_(false), - activatable_(true) { + is_loading_(false) { render_widget_host_->set_view(this); renderer_accessible_ = CommandLine::ForCurrentProcess()->HasSwitch( @@ -97,6 +96,15 @@ RenderWidgetHostViewWin::~RenderWidgetHostViewWin() { /////////////////////////////////////////////////////////////////////////////// // RenderWidgetHostViewWin, RenderWidgetHostView implementation: +void RenderWidgetHostViewWin::InitAsPopup( + RenderWidgetHostView* parent_host_view, const gfx::Rect& pos) { + parent_hwnd_ = parent_host_view->GetPluginNativeView(); + close_on_deactivate_ = true; + Create(parent_hwnd_, NULL, NULL, WS_POPUP, WS_EX_TOOLWINDOW); + MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); + ShowWindow(activatable_ ? SW_SHOW : SW_SHOWNA); +} + RenderWidgetHost* RenderWidgetHostViewWin::GetRenderWidgetHost() const { return render_widget_host_; } diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.h b/chrome/browser/renderer_host/render_widget_host_view_win.h index 4e6d7f8..0a93555 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_win.h +++ b/chrome/browser/renderer_host/render_widget_host_view_win.h @@ -58,17 +58,6 @@ class RenderWidgetHostViewWin : explicit RenderWidgetHostViewWin(RenderWidgetHost* widget); virtual ~RenderWidgetHostViewWin(); - void set_close_on_deactivate(bool close_on_deactivate) { - close_on_deactivate_ = close_on_deactivate; - } - - void set_activatable(bool activatable) { - activatable_ = activatable; - } - bool activatable() const { return activatable_; } - - void set_parent_hwnd(HWND parent) { parent_hwnd_ = parent; } - DECLARE_WND_CLASS_EX(kRenderWidgetHostHWNDClass, CS_DBLCLKS, 0); BEGIN_MSG_MAP(RenderWidgetHostHWND) @@ -117,6 +106,8 @@ class RenderWidgetHostViewWin : END_MSG_MAP() // Implementation of RenderWidgetHostView: + virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos); virtual RenderWidgetHost* GetRenderWidgetHost() const; virtual void DidBecomeSelected(); virtual void WasHidden(); @@ -270,10 +261,6 @@ class RenderWidgetHostViewWin : // value returns true for is_null() if we are not recording whiteout times. base::TimeTicks whiteout_start_time_; - // Whether the window can be activated. Autocomplete popup windows for example - // cannot be activated. Default is true. - bool activatable_; - // Whether the renderer is made accessible. // TODO(jcampan): http://b/issue?id=1432077 This is a temporary work-around // until that bug is fixed. diff --git a/chrome/browser/renderer_host/test_render_view_host.h b/chrome/browser/renderer_host/test_render_view_host.h index 5f558b1..d89ebd5 100644 --- a/chrome/browser/renderer_host/test_render_view_host.h +++ b/chrome/browser/renderer_host/test_render_view_host.h @@ -39,6 +39,8 @@ class TestRenderWidgetHostView : public RenderWidgetHostView { public: TestRenderWidgetHostView() : is_showing_(false) {} + virtual void InitAsPopup(RenderWidgetHostView* parent_host_view, + const gfx::Rect& pos) {} virtual RenderWidgetHost* GetRenderWidgetHost() const { return NULL; } virtual void DidBecomeSelected() {} virtual void WasHidden() {} diff --git a/chrome/browser/tab_contents/web_contents.h b/chrome/browser/tab_contents/web_contents.h index 21ca7eb..310eeab 100644 --- a/chrome/browser/tab_contents/web_contents.h +++ b/chrome/browser/tab_contents/web_contents.h @@ -471,6 +471,7 @@ class WebContents : public TabContents, friend class TestWebContents; // Temporary until the view/contents separation is complete. + friend class WebContentsView; #if defined(OS_WIN) friend class WebContentsViewWin; #elif defined(OS_MACOSX) diff --git a/chrome/browser/tab_contents/web_contents_view.cc b/chrome/browser/tab_contents/web_contents_view.cc index eee0d98..5ac141f 100644 --- a/chrome/browser/tab_contents/web_contents_view.cc +++ b/chrome/browser/tab_contents/web_contents_view.cc @@ -4,7 +4,15 @@ #include "chrome/browser/tab_contents/web_contents_view.h" +#include "chrome/browser/renderer_host/render_process_host.h" #include "chrome/browser/renderer_host/render_widget_host.h" +#include "chrome/browser/renderer_host/render_widget_host_view.h" +#include "chrome/browser/tab_contents/tab_contents_delegate.h" +#include "chrome/browser/tab_contents/web_contents.h" + +WebContentsView::WebContentsView(WebContents* web_contents) + : web_contents_(web_contents) { +} void WebContentsView::RenderWidgetHostDestroyed(RenderWidgetHost* host) { for (PendingWidgetViews::iterator i = pending_widget_views_.begin(); @@ -59,3 +67,30 @@ void WebContentsView::ShowCreatedWidget(int route_id, ShowCreatedWidgetInternal(widget_host_view, initial_pos); } + +RenderWidgetHostView* WebContentsView::CreateNewWidgetInternal( + int route_id, + bool activatable) { + RenderWidgetHost* widget_host = + new RenderWidgetHost(web_contents_->process(), route_id); + RenderWidgetHostView* widget_view = + RenderWidgetHostView::CreateViewForWidget(widget_host); + widget_view->set_activatable(activatable); + + return widget_view; +} + +void WebContentsView::ShowCreatedWidgetInternal( + RenderWidgetHostView* widget_host_view, + const gfx::Rect& initial_pos) { + RenderWidgetHost* widget_host = widget_host_view->GetRenderWidgetHost(); + if (!widget_host->process()->channel()) { + // The view has gone away or the renderer crashed. Nothing to do. + return; + } + + widget_host_view->InitAsPopup( + web_contents_->render_widget_host_view(), initial_pos); + web_contents_->delegate()->RenderWidgetShowing(); + widget_host->Init(); +} diff --git a/chrome/browser/tab_contents/web_contents_view.h b/chrome/browser/tab_contents/web_contents_view.h index 2e61681..174ba63 100644 --- a/chrome/browser/tab_contents/web_contents_view.h +++ b/chrome/browser/tab_contents/web_contents_view.h @@ -34,6 +34,7 @@ class WaitableEvent; // that should be the same for all platforms. class WebContentsView : public RenderViewHostDelegate::View { public: + WebContentsView(WebContents* web_contents); virtual ~WebContentsView() {} // Creates the appropriate type of WebContentsView for the current system. @@ -134,14 +135,18 @@ class WebContentsView : public RenderViewHostDelegate::View { virtual WebContents* CreateNewWindowInternal( int route_id, base::WaitableEvent* modal_dialog_event) = 0; - virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, - bool activatable) = 0; virtual void ShowCreatedWindowInternal(WebContents* new_web_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture) = 0; + + virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, + bool activatable); virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos) = 0; + const gfx::Rect& initial_pos); + + protected: + WebContents* web_contents_; private: // We implement these functions on RenderViewHostDelegate::View directly and diff --git a/chrome/browser/tab_contents/web_contents_view_gtk.cc b/chrome/browser/tab_contents/web_contents_view_gtk.cc index 3f4785f..5b7603a11 100644 --- a/chrome/browser/tab_contents/web_contents_view_gtk.cc +++ b/chrome/browser/tab_contents/web_contents_view_gtk.cc @@ -65,7 +65,7 @@ WebContentsView* WebContentsView::Create(WebContents* web_contents) { } WebContentsViewGtk::WebContentsViewGtk(WebContents* web_contents) - : web_contents_(web_contents), + : WebContentsView(web_contents), vbox_(gtk_vbox_new(FALSE, 0)) { } @@ -213,19 +213,6 @@ WebContents* WebContentsViewGtk::CreateNewWindowInternal( return NULL; } -// TODO(estade): unfork this from the version in web_contents_view_win. -RenderWidgetHostView* WebContentsViewGtk::CreateNewWidgetInternal( - int route_id, - bool activatable) { - RenderWidgetHost* widget_host = - new RenderWidgetHost(web_contents_->process(), route_id); - RenderWidgetHostViewGtk* widget_view = - new RenderWidgetHostViewGtk(widget_host); - widget_view->set_activatable(activatable); - - return widget_view; -} - void WebContentsViewGtk::ShowCreatedWindowInternal( WebContents* new_web_contents, WindowOpenDisposition disposition, @@ -233,20 +220,3 @@ void WebContentsViewGtk::ShowCreatedWindowInternal( bool user_gesture) { NOTIMPLEMENTED(); } - -// TODO(estade): unfork this from the version in web_contents_view_win. -void WebContentsViewGtk::ShowCreatedWidgetInternal( - RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos) { - RenderWidgetHostViewGtk* widget_host_view_gtk = - static_cast<RenderWidgetHostViewGtk*>(widget_host_view); - - RenderWidgetHost* widget_host = widget_host_view->GetRenderWidgetHost(); - if (!widget_host->process()->channel()) { - // The view has gone away or the renderer crashed. Nothing to do. - return; - } - - widget_host_view_gtk->InitAsPopup( - web_contents_->render_widget_host_view(), initial_pos); -} diff --git a/chrome/browser/tab_contents/web_contents_view_gtk.h b/chrome/browser/tab_contents/web_contents_view_gtk.h index 7e69ae9..79408914 100644 --- a/chrome/browser/tab_contents/web_contents_view_gtk.h +++ b/chrome/browser/tab_contents/web_contents_view_gtk.h @@ -47,14 +47,10 @@ class WebContentsViewGtk : public WebContentsView { // Backend implementation of RenderViewHostDelegate::View. virtual WebContents* CreateNewWindowInternal( int route_id, base::WaitableEvent* modal_dialog_event); - virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, - bool activatable); virtual void ShowCreatedWindowInternal(WebContents* new_web_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture); - virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos); virtual void ShowContextMenu(const ContextMenuParams& params); virtual void StartDragging(const WebDropData& drop_data); virtual void UpdateDragCursor(bool is_drop_target); @@ -66,8 +62,6 @@ class WebContentsViewGtk : public WebContentsView { int active_match_ordinal, bool final_update); private: - WebContents* web_contents_; - // The native widget for the tab. OwnedWidgetGtk vbox_; diff --git a/chrome/browser/tab_contents/web_contents_view_mac.h b/chrome/browser/tab_contents/web_contents_view_mac.h index 1c46221..333f3b8 100644 --- a/chrome/browser/tab_contents/web_contents_view_mac.h +++ b/chrome/browser/tab_contents/web_contents_view_mac.h @@ -62,14 +62,10 @@ class WebContentsViewMac : public WebContentsView, // Backend implementation of RenderViewHostDelegate::View. virtual WebContents* CreateNewWindowInternal( int route_id, base::WaitableEvent* modal_dialog_event); - virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, - bool activatable); virtual void ShowCreatedWindowInternal(WebContents* new_web_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture); - virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos); virtual void ShowContextMenu(const ContextMenuParams& params); virtual void StartDragging(const WebDropData& drop_data); virtual void UpdateDragCursor(bool is_drop_target); @@ -90,8 +86,6 @@ class WebContentsViewMac : public WebContentsView, private: // --------------------------------------------------------------------------- - WebContents* web_contents_; - // The Cocoa NSView that lives in the view hierarchy. scoped_nsobject<WebContentsViewCocoa> cocoa_view_; diff --git a/chrome/browser/tab_contents/web_contents_view_mac.mm b/chrome/browser/tab_contents/web_contents_view_mac.mm index e2af736..705192b 100644 --- a/chrome/browser/tab_contents/web_contents_view_mac.mm +++ b/chrome/browser/tab_contents/web_contents_view_mac.mm @@ -24,7 +24,7 @@ WebContentsView* WebContentsView::Create(WebContents* web_contents) { } WebContentsViewMac::WebContentsViewMac(WebContents* web_contents) - : web_contents_(web_contents) { + : WebContentsView(web_contents_) { registrar_.Add(this, NotificationType::WEB_CONTENTS_CONNECTED, Source<WebContents>(web_contents)); registrar_.Add(this, NotificationType::WEB_CONTENTS_DISCONNECTED, @@ -204,15 +204,6 @@ WebContents* WebContentsViewMac::CreateNewWindowInternal( return new_contents; } -RenderWidgetHostView* WebContentsViewMac::CreateNewWidgetInternal( - int route_id, - bool activatable) { - // I don't understand what role this plays in the grand scheme of things. I'm - // not going to fake it. - NOTIMPLEMENTED(); - return NULL; -} - void WebContentsViewMac::ShowCreatedWindowInternal( WebContents* new_web_contents, WindowOpenDisposition disposition, @@ -230,14 +221,6 @@ void WebContentsViewMac::ShowCreatedWindowInternal( user_gesture); } -void WebContentsViewMac::ShowCreatedWidgetInternal( - RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos) { - // I don't understand what role this plays in the grand scheme of things. I'm - // not going to fake it. - NOTIMPLEMENTED(); -} - void WebContentsViewMac::Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details) { diff --git a/chrome/browser/tab_contents/web_contents_view_win.cc b/chrome/browser/tab_contents/web_contents_view_win.cc index acd4349..de2e840 100644 --- a/chrome/browser/tab_contents/web_contents_view_win.cc +++ b/chrome/browser/tab_contents/web_contents_view_win.cc @@ -51,7 +51,7 @@ WebContentsView* WebContentsView::Create(WebContents* web_contents) { } WebContentsViewWin::WebContentsViewWin(WebContents* web_contents) - : web_contents_(web_contents), + : WebContentsView(web_contents), ignore_next_char_event_(false) { last_focused_view_storage_id_ = views::ViewStorage::GetSharedInstance()->CreateStorageID(); @@ -392,29 +392,6 @@ WebContents* WebContentsViewWin::CreateNewWindowInternal( return new_contents; } -RenderWidgetHostView* WebContentsViewWin::CreateNewWidgetInternal( - int route_id, - bool activatable) { - // Create the widget and its associated view. - // TODO(brettw) can widget creation be cross-platform? - RenderWidgetHost* widget_host = - new RenderWidgetHost(web_contents_->process(), route_id); - RenderWidgetHostViewWin* widget_view = - new RenderWidgetHostViewWin(widget_host); - - // We set the parent HWND explicitly as pop-up HWNDs are parented and owned by - // the first non-child HWND of the HWND that was specified to the CreateWindow - // call. - // TODO(brettw) this should not need to get the current RVHView from the - // WebContents. We should have it somewhere ourselves. - widget_view->set_parent_hwnd( - web_contents_->render_widget_host_view()->GetPluginNativeView()); - widget_view->set_close_on_deactivate(true); - widget_view->set_activatable(activatable); - - return widget_view; -} - void WebContentsViewWin::ShowCreatedWindowInternal( WebContents* new_web_contents, WindowOpenDisposition disposition, @@ -432,35 +409,6 @@ void WebContentsViewWin::ShowCreatedWindowInternal( user_gesture); } -void WebContentsViewWin::ShowCreatedWidgetInternal( - RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos) { - // TODO(beng): (Cleanup) move all this windows-specific creation and showing - // code into RenderWidgetHostView behind some API that a - // ChromeView can also reasonably implement. - RenderWidgetHostViewWin* widget_host_view_win = - static_cast<RenderWidgetHostViewWin*>(widget_host_view); - - RenderWidgetHost* widget_host = widget_host_view->GetRenderWidgetHost(); - if (!widget_host->process()->channel()) { - // The view has gone away or the renderer crashed. Nothing to do. - return; - } - - // This logic should be implemented by RenderWidgetHostHWND (as mentioned - // above) in the ::Init function, which should take a parent and some initial - // bounds. - widget_host_view_win->Create(GetNativeView(), NULL, NULL, - WS_POPUP, WS_EX_TOOLWINDOW); - widget_host_view_win->MoveWindow(initial_pos.x(), initial_pos.y(), - initial_pos.width(), initial_pos.height(), - TRUE); - web_contents_->delegate()->RenderWidgetShowing(); - widget_host_view_win->ShowWindow(widget_host_view_win->activatable() ? - SW_SHOW : SW_SHOWNA); - widget_host->Init(); -} - void WebContentsViewWin::OnHScroll(int scroll_type, short position, HWND scrollbar) { ScrollCommon(WM_HSCROLL, scroll_type, position, scrollbar); diff --git a/chrome/browser/tab_contents/web_contents_view_win.h b/chrome/browser/tab_contents/web_contents_view_win.h index e154946..43b23e8 100644 --- a/chrome/browser/tab_contents/web_contents_view_win.h +++ b/chrome/browser/tab_contents/web_contents_view_win.h @@ -47,14 +47,10 @@ class WebContentsViewWin : public WebContentsView, // Backend implementation of RenderViewHostDelegate::View. virtual WebContents* CreateNewWindowInternal( int route_id, base::WaitableEvent* modal_dialog_event); - virtual RenderWidgetHostView* CreateNewWidgetInternal(int route_id, - bool activatable); virtual void ShowCreatedWindowInternal(WebContents* new_web_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, bool user_gesture); - virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view, - const gfx::Rect& initial_pos); virtual void ShowContextMenu(const ContextMenuParams& params); virtual void StartDragging(const WebDropData& drop_data); virtual void UpdateDragCursor(bool is_drop_target); @@ -98,8 +94,6 @@ class WebContentsViewWin : public WebContentsView, // --------------------------------------------------------------------------- - WebContents* web_contents_; - // A drop target object that handles drags over this WebContents. scoped_refptr<WebDropTarget> drop_target_; |