Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / content / port / browser / web_contents_view_port.h
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_PORT_BROWSER_WEB_CONTENTS_VIEW_PORT_H_
6 #define CONTENT_PORT_BROWSER_WEB_CONTENTS_VIEW_PORT_H_
7
8 #include "content/public/browser/web_contents_view.h"
9
10 namespace content {
11 class RenderViewHost;
12 class RenderWidgetHost;
13 class RenderWidgetHostView;
14
15 // This is the larger WebContentsView interface exposed only within content/ and
16 // to embedders looking to port to new platforms.
17 class CONTENT_EXPORT WebContentsViewPort : public WebContentsView {
18  public:
19   virtual ~WebContentsViewPort() {}
20
21   virtual void CreateView(
22       const gfx::Size& initial_size, gfx::NativeView context) = 0;
23
24   // Sets up the View that holds the rendered web page, receives messages for
25   // it and contains page plugins. The host view should be sized to the current
26   // size of the WebContents.
27   virtual RenderWidgetHostView* CreateViewForWidget(
28       RenderWidgetHost* render_widget_host) = 0;
29
30   // Creates a new View that holds a popup and receives messages for it.
31   virtual RenderWidgetHostView* CreateViewForPopupWidget(
32       RenderWidgetHost* render_widget_host) = 0;
33
34   // Sets the page title for the native widgets corresponding to the view. This
35   // is not strictly necessary and isn't expected to be displayed anywhere, but
36   // can aid certain debugging tools such as Spy++ on Windows where you are
37   // trying to find a specific window.
38   virtual void SetPageTitle(const base::string16& title) = 0;
39
40   // Invoked when the WebContents is notified that the RenderView has been
41   // fully created.
42   virtual void RenderViewCreated(RenderViewHost* host) = 0;
43
44   // Invoked when the WebContents is notified that the RenderView has been
45   // swapped in.
46   virtual void RenderViewSwappedIn(RenderViewHost* host) = 0;
47
48   // Invoked to enable/disable overscroll gesture navigation.
49   virtual void SetOverscrollControllerEnabled(bool enabled) = 0;
50
51 #if defined(OS_MACOSX)
52   // If we close the tab while a UI control is in an event-tracking
53   // loop, the control may message freed objects and crash.
54   // WebContents::Close() calls IsEventTracking(), and if it returns
55   // true CloseTabAfterEventTracking() is called and the close is not
56   // completed.
57   virtual bool IsEventTracking() const = 0;
58   virtual void CloseTabAfterEventTracking() = 0;
59 #endif
60 };
61
62 }  // namespace content
63
64 #endif  // CONTENT_PORT_BROWSER_WEB_CONTENTS_VIEW_PORT_H_