mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-03-05 12:18:20 +01:00
This change moves the runtime-specific implementations of CefBrowserHostImpl methods to CefBrowserPlatformDelegate. Some WebContentsDelegate methods implemented by CefBrowserHostImpl set state or trigger client callbacks. Those implementations will likely stay with CefBrowserHostImpl and will need to be called from the Browser equivalents when using the Chrome runtime.
85 lines
3.8 KiB
C++
85 lines
3.8 KiB
C++
// Copyright 2016 The Chromium Embedded Framework Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef CEF_LIBCEF_BROWSER_VIEWS_BROWSER_PLATFORM_DELEGATE_VIEWS_H_
|
|
#define CEF_LIBCEF_BROWSER_VIEWS_BROWSER_PLATFORM_DELEGATE_VIEWS_H_
|
|
|
|
#include "libcef/browser/browser_platform_delegate.h"
|
|
#include "libcef/browser/native/browser_platform_delegate_native.h"
|
|
#include "libcef/browser/views/browser_view_impl.h"
|
|
|
|
// Implementation of Views-based browser functionality.
|
|
class CefBrowserPlatformDelegateViews
|
|
: public CefBrowserPlatformDelegate,
|
|
public CefBrowserPlatformDelegateNative::WindowlessHandler {
|
|
public:
|
|
// Platform-specific behaviors will be delegated to |native_delegate|.
|
|
// |browser_view_getter| may be initially empty for popup browsers.
|
|
CefBrowserPlatformDelegateViews(
|
|
std::unique_ptr<CefBrowserPlatformDelegateNative> native_delegate,
|
|
CefRefPtr<CefBrowserViewImpl> browser_view);
|
|
|
|
// CefBrowserPlatformDelegate methods:
|
|
void WebContentsCreated(content::WebContents* web_contents,
|
|
bool owned) override;
|
|
void BrowserCreated(CefBrowserHostImpl* browser) override;
|
|
void NotifyBrowserCreated() override;
|
|
void NotifyBrowserDestroyed() override;
|
|
void BrowserDestroyed(CefBrowserHostImpl* browser) override;
|
|
bool CreateHostWindow() override;
|
|
void CloseHostWindow() override;
|
|
CefWindowHandle GetHostWindowHandle() const override;
|
|
views::Widget* GetWindowWidget() const override;
|
|
CefRefPtr<CefBrowserView> GetBrowserView() const override;
|
|
void PopupWebContentsCreated(
|
|
const CefBrowserSettings& settings,
|
|
CefRefPtr<CefClient> client,
|
|
content::WebContents* new_web_contents,
|
|
CefBrowserPlatformDelegate* new_platform_delegate,
|
|
bool is_devtools) override;
|
|
void PopupBrowserCreated(CefBrowserHostImpl* new_browser,
|
|
bool is_devtools) override;
|
|
bool CanUseSharedTexture() const override;
|
|
bool CanUseExternalBeginFrame() const override;
|
|
SkColor GetBackgroundColor() const override;
|
|
void WasResized() override;
|
|
void SendKeyEvent(const CefKeyEvent& event) override;
|
|
void SendMouseClickEvent(const CefMouseEvent& event,
|
|
CefBrowserHost::MouseButtonType type,
|
|
bool mouseUp,
|
|
int clickCount) override;
|
|
void SendMouseMoveEvent(const CefMouseEvent& event, bool mouseLeave) override;
|
|
void SendMouseWheelEvent(const CefMouseEvent& event,
|
|
int deltaX,
|
|
int deltaY) override;
|
|
void SendTouchEvent(const CefTouchEvent& event) override;
|
|
void SendFocusEvent(bool setFocus) override;
|
|
gfx::Point GetScreenPoint(const gfx::Point& view) const override;
|
|
void ViewText(const std::string& text) override;
|
|
bool HandleKeyboardEvent(
|
|
const content::NativeWebKeyboardEvent& event) override;
|
|
CefEventHandle GetEventHandle(
|
|
const content::NativeWebKeyboardEvent& event) const override;
|
|
std::unique_ptr<CefFileDialogRunner> CreateFileDialogRunner() override;
|
|
std::unique_ptr<CefJavaScriptDialogRunner> CreateJavaScriptDialogRunner()
|
|
override;
|
|
std::unique_ptr<CefMenuRunner> CreateMenuRunner() override;
|
|
bool IsWindowless() const override;
|
|
bool IsViewsHosted() const override;
|
|
gfx::Point GetDialogPosition(const gfx::Size& size) override;
|
|
gfx::Size GetMaximumDialogSize() override;
|
|
|
|
// CefBrowserPlatformDelegateNative::WindowlessHandler methods:
|
|
CefWindowHandle GetParentWindowHandle() const override;
|
|
gfx::Point GetParentScreenPoint(const gfx::Point& view) const override;
|
|
|
|
private:
|
|
void SetBrowserView(CefRefPtr<CefBrowserViewImpl> browser_view);
|
|
|
|
std::unique_ptr<CefBrowserPlatformDelegateNative> native_delegate_;
|
|
CefRefPtr<CefBrowserViewImpl> browser_view_;
|
|
};
|
|
|
|
#endif // CEF_LIBCEF_BROWSER_VIEWS_BROWSER_PLATFORM_DELEGATE_VIEWS_H_
|