Home | History | Annotate | Download | only in browser
      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 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_
     65