Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Unified Diff: chrome/browser/tab_contents/tab_contents_view.h

Issue 6537015: Start moving core pieces of Chrome multi-process code to src\content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/tab_contents_view.h
===================================================================
--- chrome/browser/tab_contents/tab_contents_view.h (revision 75368)
+++ chrome/browser/tab_contents/tab_contents_view.h (working copy)
@@ -6,213 +6,7 @@
#define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_VIEW_H_
#pragma once
-#include <map>
-#include <string>
+// TODO(jam): remove this file when all files have been converted.
+#include "content/browser/tab_contents/tab_contents_view.h"
-#include "base/basictypes.h"
-#include "chrome/browser/renderer_host/render_view_host_delegate.h"
-#include "chrome/browser/tab_contents/render_view_host_delegate_helper.h"
-#include "ui/gfx/native_widget_types.h"
-#include "ui/gfx/rect.h"
-#include "ui/gfx/size.h"
-
-class RenderViewHost;
-class RenderWidgetHost;
-class RenderWidgetHostView;
-class TabContents;
-
-// The TabContentsView is an interface that is implemented by the platform-
-// dependent web contents views. The TabContents uses this interface to talk to
-// them. View-related messages will also get forwarded directly to this class
-// from RenderViewHost via RenderViewHostDelegate::View.
-//
-// It contains a small amount of logic with respect to creating new sub-view
-// that should be the same for all platforms.
-class TabContentsView : public RenderViewHostDelegate::View {
- public:
- explicit TabContentsView(TabContents* tab_contents);
- virtual ~TabContentsView();
-
- // Creates the appropriate type of TabContentsView for the current system.
- // The return value is a new heap allocated view with ownership passing to
- // the caller.
- static TabContentsView* Create(TabContents* tab_contents);
-
- TabContents* tab_contents() const { return tab_contents_; }
-
- virtual void CreateView(const gfx::Size& initial_size) = 0;
-
- // Sets up the View that holds the rendered web page, receives messages for
- // it and contains page plugins. The host view should be sized to the current
- // size of the TabContents.
- virtual RenderWidgetHostView* CreateViewForWidget(
- RenderWidgetHost* render_widget_host) = 0;
-
- // Returns the native widget that contains the contents of the tab.
- virtual gfx::NativeView GetNativeView() const = 0;
-
- // Returns the native widget with the main content of the tab (i.e. the main
- // render view host, though there may be many popups in the tab as children of
- // the container).
- virtual gfx::NativeView GetContentNativeView() const = 0;
-
- // Returns the outermost native view. This will be used as the parent for
- // dialog boxes.
- virtual gfx::NativeWindow GetTopLevelNativeWindow() const = 0;
-
- // Computes the rectangle for the native widget that contains the contents of
- // the tab relative to its parent.
- virtual void GetContainerBounds(gfx::Rect *out) const = 0;
-
- // Helper function for GetContainerBounds. Most callers just want to know the
- // size, and this makes it more clear.
- gfx::Size GetContainerSize() const {
- gfx::Rect rc;
- GetContainerBounds(&rc);
- return gfx::Size(rc.width(), rc.height());
- }
-
- // Sets the page title for the native widgets corresponding to the view. This
- // is not strictly necessary and isn't expected to be displayed anywhere, but
- // can aid certain debugging tools such as Spy++ on Windows where you are
- // trying to find a specific window.
- virtual void SetPageTitle(const std::wstring& title) = 0;
-
- // Used to notify the view that a tab has crashed so each platform can
- // prepare the sad tab.
- virtual void OnTabCrashed(base::TerminationStatus status,
- int error_code) = 0;
-
- // TODO(brettw) this is a hack. It's used in two places at the time of this
- // writing: (1) when render view hosts switch, we need to size the replaced
- // one to be correct, since it wouldn't have known about sizes that happened
- // while it was hidden; (2) in constrained windows.
- //
- // (1) will be fixed once interstitials are cleaned up. (2) seems like it
- // should be cleaned up or done some other way, since this works for normal
- // TabContents without the special code.
- virtual void SizeContents(const gfx::Size& size) = 0;
-
- // Invoked from the platform dependent web contents view when a
- // RenderWidgetHost is deleted. Removes |host| from internal maps.
- void RenderWidgetHostDestroyed(RenderWidgetHost* host);
-
- // Invoked when the TabContents is notified that the RenderView has been
- // fully created. The default implementation does nothing; override
- // for platform-specific behavior is needed.
- virtual void RenderViewCreated(RenderViewHost* host);
-
- // Sets focus to the native widget for this tab.
- virtual void Focus() = 0;
-
- // Sets focus to the appropriate element when the tab contents is shown the
- // first time.
- virtual void SetInitialFocus() = 0;
-
- // Stores the currently focused view.
- virtual void StoreFocus() = 0;
-
- // Restores focus to the last focus view. If StoreFocus has not yet been
- // invoked, SetInitialFocus is invoked.
- virtual void RestoreFocus() = 0;
-
- // RenderViewHostDelegate::View method. Forwards to the TabContentsDelegate.
- virtual void LostCapture();
-
- // Keyboard events forwarding from the RenderViewHost.
- // The default implementation just forward the events to the
- // TabContentsDelegate object.
- virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
- bool* is_keyboard_shortcut);
-
- // Keyboard events forwarding from the RenderViewHost.
- // The default implementation just forward the events to the
- // TabContentsDelegate object.
- virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event);
-
- // Simple mouse event forwarding from the RenderViewHost.
- virtual void HandleMouseMove() {}
- virtual void HandleMouseDown() {}
- virtual void HandleMouseLeave() {}
- virtual void HandleMouseUp();
- virtual void HandleMouseActivate();
-
- // Notification that the preferred size of the contents has changed.
- virtual void UpdatePreferredSize(const gfx::Size& pref_size);
-
- // If we try to close the tab while a drag is in progress, we crash. These
- // methods allow the tab contents to determine if a drag is in progress and
- // postpone the tab closing.
- virtual bool IsDoingDrag() const;
- virtual void CancelDragAndCloseTab() {}
-
- // If we close the tab while a UI control is in an event-tracking
- // loop, the control may message freed objects and crash.
- // TabContents::Close() calls IsEventTracking(), and if it returns
- // true CloseTabAfterEventTracking() is called and the close is not
- // completed.
- virtual bool IsEventTracking() const;
- virtual void CloseTabAfterEventTracking() {}
-
- // Get the bounds of the View, relative to the parent.
- virtual void GetViewBounds(gfx::Rect* out) const = 0;
-
- protected:
- TabContentsView(); // Abstract interface.
-
- // 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,
- WebKit::WebPopupType popup_type);
- virtual void ShowCreatedWidgetInternal(RenderWidgetHostView* widget_host_view,
- const gfx::Rect& initial_pos);
- virtual void ShowCreatedFullscreenWidgetInternal(
- RenderWidgetHostView* widget_host_view);
- virtual RenderWidgetHostView* CreateNewFullscreenWidgetInternal(int route_id);
-
- // Common implementations of some RenderViewHostDelegate::View methods.
- RenderViewHostDelegateViewHelper delegate_view_helper_;
-
- private:
- // We implement these functions on RenderViewHostDelegate::View directly and
- // do some book-keeping associated with the request. The request is then
- // forwarded to *Internal which does platform-specific work.
- virtual void CreateNewWindow(
- int route_id,
- const ViewHostMsg_CreateWindow_Params& params);
- virtual void CreateNewWidget(int route_id, WebKit::WebPopupType popup_type);
- virtual void CreateNewFullscreenWidget(int route_id);
- virtual void ShowCreatedWindow(int route_id,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture);
- virtual void ShowCreatedWidget(int route_id, const gfx::Rect& initial_pos);
- virtual void Activate();
- virtual void Deactivate();
- virtual void ShowCreatedFullscreenWidget(int route_id);
-
- // The TabContents whose contents we display.
- TabContents* tab_contents_;
-
- // Tracks created TabContents objects that have not been shown yet. They are
- // identified by the route ID passed to CreateNewWindow.
- typedef std::map<int, TabContents*> PendingContents;
- PendingContents pending_contents_;
-
- // These maps hold on to the widgets that we created on behalf of the
- // renderer that haven't shown yet.
- typedef std::map<int, RenderWidgetHostView*> PendingWidgetViews;
- PendingWidgetViews pending_widget_views_;
-
- DISALLOW_COPY_AND_ASSIGN(TabContentsView);
-};
-
#endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_VIEW_H_
« no previous file with comments | « chrome/browser/tab_contents/tab_contents_observer.cc ('k') | chrome/browser/tab_contents/tab_contents_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698