Re-subimission of https://codereview.chromium.org/1041213003/
[chromium-blink-merge.git] / content / public / browser / guest_host.h
blobc955e4616c9d095c2148e1774bb1db67a9c55273
1 // Copyright 2015 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.
5 #ifndef CONTENT_PUBLIC_BROWSER_GUEST_HOST_H_
6 #define CONTENT_PUBLIC_BROWSER_GUEST_HOST_H_
8 #include "ui/gfx/geometry/size.h"
10 namespace content {
12 // A GuestHost is the content API for a guest WebContents.
13 // Guests are top-level frames that can be embedded within other pages.
14 // The content module manages routing of input events and compositing, but all
15 // other operations are managed outside of content. To limit exposure of
16 // implementation details within content, content embedders must use this
17 // interface for loading, sizing, and cleanup of guests.
19 // This class currently only serves as a base class for BrowserPluginGuest, and
20 // its API can only be accessed by a BrowserPluginGuestDelegate.
21 class GuestHost {
22 public:
23 // Loads a URL using the specified |load_params| and returns a routing ID for
24 // a proxy for the guest.
25 virtual int LoadURLWithParams(
26 const NavigationController::LoadURLParams& load_params) = 0;
28 // Sets the size of the guest WebContents.
29 virtual void SizeContents(const gfx::Size& new_size) = 0;
31 // Called when the GuestHost is about to be destroyed.
32 virtual void WillDestroy() = 0;
35 } // namespace content
37 #endif // CONTENT_PUBLIC_BROWSER_GUEST_HOST_H_