// Copyright (c) 2016 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef ATOM_BROWSER_OSR_WEB_CONTENTS_VIEW_H_ #define ATOM_BROWSER_OSR_WEB_CONTENTS_VIEW_H_ #include "content/browser/renderer_host/render_view_host_delegate_view.h" #include "content/browser/web_contents/web_contents_view.h" #include "content/public/browser/web_contents.h" #include "atom/browser/osr_render_widget_host_view.h" namespace atom { class OffScreenWebContentsView : public content::WebContentsView, public content::RenderViewHostDelegateView { public: explicit OffScreenWebContentsView(bool transparent); ~OffScreenWebContentsView(); void SetWebContents(content::WebContents*); // content::WebContentsView gfx::NativeView GetNativeView() const override; gfx::NativeView GetContentNativeView() const override; gfx::NativeWindow GetTopLevelNativeWindow() const override; void GetContainerBounds(gfx::Rect* out) const override; void SizeContents(const gfx::Size& size) override; void Focus() override; void SetInitialFocus() override; void StoreFocus() override; void RestoreFocus() override; content::DropData* GetDropData() const override; gfx::Rect GetViewBounds() const override; void CreateView( const gfx::Size& initial_size, gfx::NativeView context) override; content::RenderWidgetHostViewBase* CreateViewForWidget( content::RenderWidgetHost* render_widget_host, bool is_guest_view_hack) override; content::RenderWidgetHostViewBase* CreateViewForPopupWidget( content::RenderWidgetHost* render_widget_host) override; void SetPageTitle(const base::string16& title) override; void RenderViewCreated(content::RenderViewHost* host) override; void RenderViewSwappedIn(content::RenderViewHost* host) override; void SetOverscrollControllerEnabled(bool enabled) override; #if defined(OS_MACOSX) void SetAllowOtherViews(bool allow) override; bool GetAllowOtherViews() const override; bool IsEventTracking() const override; void CloseTabAfterEventTracking() override; #endif // content::RenderViewHostDelegateView void StartDragging( const content::DropData& drop_data, blink::WebDragOperationsMask allowed_ops, const gfx::ImageSkia& image, const gfx::Vector2d& image_offset, const content::DragEventSourceInfo& event_info) override; void UpdateDragCursor(blink::WebDragOperation operation) override; private: const bool transparent_; OffScreenRenderWidgetHostView* view_; content::WebContents* web_contents_; }; } // namespace atom #endif // ATOM_BROWSER_OSR_WEB_CONTENTS_VIEW_H_