// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_ #define CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_ #include <vector> #include "base/memory/weak_ptr.h" #include "build/build_config.h" #include "content/public/browser/browser_plugin_guest_delegate.h" #include "content/public/browser/web_contents_observer.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "third_party/blink/public/mojom/choosers/popup_menu.mojom.h" namespace content { class RenderFrameHostImpl; class WebContentsImpl; // A browser plugin guest provides functionality for WebContents to operate in // the guest role. // // When a guest is initially created, it is in an unattached state. That is, // it is not visible anywhere and has no embedder WebContents assigned. // A BrowserPluginGuest is said to be "attached" if it has an embedder. // A BrowserPluginGuest can also create a new unattached guest via // CreateNewWindow. The newly created guest will live in the same partition, // which means it can share storage and can script this guest. // // TODO(wjmaclean): Get rid of "BrowserPlugin" in the name of this class. // Perhaps "InnerWebContentsGuestConnector"? class BrowserPluginGuest : public WebContentsObserver { … }; } // namespace content #endif // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_H_