// Copyright 2015 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_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_LINUX_H_ #define CEF_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_LINUX_H_ #include "base/memory/raw_ptr.h" #include "cef/libcef/browser/native/browser_platform_delegate_native_aura.h" #include "ui/base/ozone_buildflags.h" #if BUILDFLAG(IS_OZONE_X11) class CefWindowX11; #endif // Windowed browser implementation for Linux. class CefBrowserPlatformDelegateNativeLinux : public CefBrowserPlatformDelegateNativeAura { public: CefBrowserPlatformDelegateNativeLinux(const CefWindowInfo& window_info, SkColor background_color); // CefBrowserPlatformDelegate methods: void BrowserDestroyed(CefBrowserHostBase* browser) override; bool CreateHostWindow() override; void CloseHostWindow() override; CefWindowHandle GetHostWindowHandle() const override; views::Widget* GetWindowWidget() const override; void SetFocus(bool setFocus) override; void NotifyMoveOrResizeStarted() override; void SizeTo(int width, int height) override; void ViewText(const std::string& text) override; bool HandleKeyboardEvent(const input::NativeWebKeyboardEvent& event) override; CefEventHandle GetEventHandle( const input::NativeWebKeyboardEvent& event) const override; // CefBrowserPlatformDelegateNativeAura methods: ui::KeyEvent TranslateUiKeyEvent(const CefKeyEvent& key_event) const override; input::NativeWebKeyboardEvent TranslateWebKeyEvent( const CefKeyEvent& key_event) const override; private: // True if the host window has been created. bool host_window_created_ = false; #if BUILDFLAG(IS_OZONE_X11) raw_ptr window_x11_ = nullptr; #endif }; #endif // CEF_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_LINUX_H_