// Copyright (c) 2015 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef SHELL_RENDERER_GUEST_VIEW_CONTAINER_H_ #define SHELL_RENDERER_GUEST_VIEW_CONTAINER_H_ #include "base/callback.h" #include "content/public/renderer/browser_plugin_delegate.h" #include "content/public/renderer/render_frame.h" namespace gfx { class Size; } namespace electron { class GuestViewContainer : public content::BrowserPluginDelegate { public: typedef base::Callback ResizeCallback; explicit GuestViewContainer(content::RenderFrame* render_frame); ~GuestViewContainer() override; static GuestViewContainer* FromID(int element_instance_id); void RegisterElementResizeCallback(const ResizeCallback& callback); // content::BrowserPluginDelegate: void SetElementInstanceID(int element_instance_id) final; void DidResizeElement(const gfx::Size& new_size) final; base::WeakPtr GetWeakPtr() final; private: int element_instance_id_; ResizeCallback element_resize_callback_; base::WeakPtrFactory weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(GuestViewContainer); }; } // namespace electron #endif // SHELL_RENDERER_GUEST_VIEW_CONTAINER_H_