0

Move CursorFactoryOzone to ui/base/cursor/

This CL moves cursor_factory_ozone.* to ui/base/cursor/cursor_factory.*
to serve as a superclass for all platform cursor factories.

Bug: 1029142, 1040499
Change-Id: I94370bfe98efd3af4c6596e2de652370d011ea7e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2188395
Commit-Queue: Henrique Ferreiro <hferreiro@igalia.com>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#771267}
This commit is contained in:
Henrique Ferreiro
2020-05-22 00:36:15 +00:00
committed by Commit Bot
parent 3ee579a610
commit aaa2a62606
33 changed files with 143 additions and 172 deletions

@ -32,6 +32,7 @@ executable("vr_testapp") {
"//components/security_state/core",
"//components/tracing:startup_tracing",
"//components/vector_icons:vector_icons",
"//ui/base/cursor:cursor_base",
"//ui/display/types",
"//ui/events",
"//ui/events:dom_keycode_converter",

@ -18,6 +18,7 @@
#include "chrome/browser/vr/testapp/gl_renderer.h"
#include "chrome/browser/vr/testapp/vr_test_context.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/display/types/display_snapshot.h"
#include "ui/display/types/native_display_delegate.h"
#include "ui/display/types/native_display_observer.h"
@ -28,7 +29,6 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/gl/gl_surface.h"
#include "ui/gl/init/gl_factory.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/ozone_gpu_test_helper.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/platform_window/platform_window.h"
@ -110,8 +110,8 @@ class AppWindow : public ui::PlatformWindowDelegate {
// Supply an empty cursor to override and hide the default system pointer.
platform_window_->SetCursor(
ui::CursorFactoryOzone::GetInstance()->CreateImageCursor(SkBitmap(),
{0, 0}, 0));
ui::CursorFactory::GetInstance()->CreateImageCursor(SkBitmap(), {0, 0},
0));
}
~AppWindow() override {}

@ -41,7 +41,7 @@
#endif
#if defined(USE_OZONE)
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/base/cursor/cursor_factory.h"
#endif
namespace exo {
@ -684,8 +684,8 @@ void Pointer::UpdateCursor() {
// TODO(reveman): Add interface for creating cursors from GpuMemoryBuffers
// and use that here instead of the current bitmap API.
// https://crbug.com/686600
platform_cursor = ui::CursorFactoryOzone::GetInstance()->CreateImageCursor(
bitmap, hotspot, 0);
platform_cursor =
ui::CursorFactory::GetInstance()->CreateImageCursor(bitmap, hotspot, 0);
#elif defined(USE_X11)
XcursorImage* image = ui::SkBitmapToXcursorImage(&bitmap, hotspot);
platform_cursor = ui::CreateReffedCustomXCursor(image);
@ -694,7 +694,7 @@ void Pointer::UpdateCursor() {
cursor_.set_custom_bitmap(bitmap);
cursor_.set_custom_hotspot(hotspot);
#if defined(USE_OZONE)
ui::CursorFactoryOzone::GetInstance()->UnrefImageCursor(platform_cursor);
ui::CursorFactory::GetInstance()->UnrefImageCursor(platform_cursor);
#elif defined(USE_X11)
ui::UnrefCustomXCursor(platform_cursor);
#endif

@ -345,9 +345,7 @@ source_set("common") {
deps += [ "//ppapi/proxy:ipc_sources" ]
}
if (use_ozone) {
deps += [ "//ui/ozone" ]
} else {
if (!use_ozone) {
sources -= [ "cursors/webcursor_ozone.cc" ]
}

@ -1,11 +1,3 @@
include_rules = [
"+third_party/blink/public/platform",
]
specific_include_rules = {
# TODO(crbug.com/734668): Dependencies on ozone should be removed, as content
# embedded in mus won't be able to talk to the native ozone.
"webcursor_ozone.cc": [
"+ui/ozone/public/cursor_factory_ozone.h",
],
}

@ -8,8 +8,8 @@
#include "base/check_op.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
namespace content {
@ -18,7 +18,7 @@ ui::PlatformCursor WebCursor::GetPlatformCursor(const ui::Cursor& cursor) {
DCHECK_EQ(cursor.type(), ui::mojom::CursorType::kCustom);
if (!platform_cursor_) {
platform_cursor_ = ui::CursorFactoryOzone::GetInstance()->CreateImageCursor(
platform_cursor_ = ui::CursorFactory::GetInstance()->CreateImageCursor(
cursor.custom_bitmap(), cursor.custom_hotspot(),
cursor.image_scale_factor());
}
@ -61,7 +61,7 @@ bool WebCursor::IsPlatformDataEqual(const WebCursor& other) const {
void WebCursor::CleanupPlatformData() {
if (platform_cursor_) {
ui::CursorFactoryOzone::GetInstance()->UnrefImageCursor(platform_cursor_);
ui::CursorFactory::GetInstance()->UnrefImageCursor(platform_cursor_);
platform_cursor_ = NULL;
}
custom_cursor_.reset();
@ -69,10 +69,10 @@ void WebCursor::CleanupPlatformData() {
void WebCursor::CopyPlatformData(const WebCursor& other) {
if (platform_cursor_)
ui::CursorFactoryOzone::GetInstance()->UnrefImageCursor(platform_cursor_);
ui::CursorFactory::GetInstance()->UnrefImageCursor(platform_cursor_);
platform_cursor_ = other.platform_cursor_;
if (platform_cursor_)
ui::CursorFactoryOzone::GetInstance()->RefImageCursor(platform_cursor_);
ui::CursorFactory::GetInstance()->RefImageCursor(platform_cursor_);
device_scale_factor_ = other.device_scale_factor_;
maximum_cursor_size_ = other.maximum_cursor_size_;

@ -56,7 +56,6 @@ Ozone moves platform-specific code behind the following interfaces:
access to IPC between the browser & GPU processes. Some platforms need this
to provide additional services in the GPU process such as display
configuration.
* `CursorFactoryOzone` is used to load & set platform cursors.
* `OverlayManagerOzone` is used to manage overlays.
* `InputController` allows to control input devices such as keyboard, mouse or
touchpad.
@ -91,7 +90,7 @@ Users of the Ozone abstraction need to do the following, at minimum:
invoke `PlatformWindowDelegate::DispatchEvent` to dispatch each event.
* Write a subclass of `SurfaceFactoryOzone` that handles allocating accelerated
surfaces. I'll call this `SurfaceFactoryOzoneImpl`.
* Write a subclass of `CursorFactoryOzone` to manage cursors, or use the
* Write a subclass of `CursorFactory` to manage cursors, or use the
`BitmapCursorFactoryOzone` implementation if only bitmap cursors need to be
supported.
* Write a subclass of `OverlayManagerOzone` or just use `StubOverlayManager` if

@ -8,34 +8,29 @@ import("//build/config/ui.gni")
# bringing all of //ui/base/cursor.
component("cursor_base") {
output_name = "ui_base_cursor_base"
sources = [
"cursor.cc",
"cursor.h",
"cursor_factory.cc",
"cursor_factory.h",
"cursor_size.h",
]
defines = [ "IS_UI_BASE_CURSOR_BASE_IMPL" ]
public_deps = [
"//base",
"//skia",
"//ui/base/cursor/mojom:cursor_type",
"//ui/gfx/geometry",
]
deps = [ "//ui/gfx:geometry_skia" ]
if (use_x11 && use_aura) {
if (use_x11) {
sources += [ "cursor_x11.cc" ]
deps += [ "//ui/base/x" ]
}
if (use_ozone) {
sources += [ "cursor_ozone.cc" ]
deps += [ "//ui/ozone:ozone_base" ]
}
if (is_win) {
@ -109,8 +104,8 @@ if (use_aura) {
"ozone/bitmap_cursor_factory_ozone.h",
]
public_deps += [
"//skia",
"//ui/gfx/geometry",
"//ui/ozone:ozone_base",
]
}
}

@ -1,3 +0,0 @@
include_rules = [
"+ui/ozone/public",
]

@ -0,0 +1,63 @@
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/base/cursor/cursor_factory.h"
#include "base/check.h"
#include "base/check_op.h"
#include "base/notreached.h"
namespace ui {
namespace {
CursorFactory* g_instance = nullptr;
} // namespace
CursorFactory::CursorFactory() {
DCHECK(!g_instance) << "There should only be a single CursorFactory.";
g_instance = this;
}
CursorFactory::~CursorFactory() {
DCHECK_EQ(g_instance, this);
g_instance = nullptr;
}
CursorFactory* CursorFactory::GetInstance() {
DCHECK(g_instance);
return g_instance;
}
PlatformCursor CursorFactory::GetDefaultCursor(mojom::CursorType type) {
NOTIMPLEMENTED();
return 0;
}
PlatformCursor CursorFactory::CreateImageCursor(const SkBitmap& bitmap,
const gfx::Point& hotspot,
float bitmap_dpi) {
NOTIMPLEMENTED();
return 0;
}
PlatformCursor CursorFactory::CreateAnimatedCursor(
const std::vector<SkBitmap>& bitmaps,
const gfx::Point& hotspot,
int frame_delay_ms,
float bitmap_dpi) {
NOTIMPLEMENTED();
return 0;
}
void CursorFactory::RefImageCursor(PlatformCursor cursor) {
NOTIMPLEMENTED();
}
void CursorFactory::UnrefImageCursor(PlatformCursor cursor) {
NOTIMPLEMENTED();
}
} // namespace ui

@ -2,14 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_OZONE_PUBLIC_CURSOR_FACTORY_OZONE_H_
#define UI_OZONE_PUBLIC_CURSOR_FACTORY_OZONE_H_
#ifndef UI_BASE_CURSOR_CURSOR_FACTORY_H_
#define UI_BASE_CURSOR_CURSOR_FACTORY_H_
#include <vector>
#include "base/component_export.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-forward.h"
#include "ui/gfx/native_widget_types.h"
class SkBitmap;
namespace gfx {
class Point;
@ -17,15 +19,13 @@ class Point;
namespace ui {
typedef void* PlatformCursor;
class COMPONENT_EXPORT(OZONE_BASE) CursorFactoryOzone {
class COMPONENT_EXPORT(UI_BASE_CURSOR_BASE) CursorFactory {
public:
CursorFactoryOzone();
virtual ~CursorFactoryOzone();
CursorFactory();
virtual ~CursorFactory();
// Returns the thread-local instance.
static CursorFactoryOzone* GetInstance();
static CursorFactory* GetInstance();
// Return the default cursor of the specified type. The types are listed in
// ui/base/cursor/cursor.h. Default cursors are managed by the implementation
@ -58,4 +58,4 @@ class COMPONENT_EXPORT(OZONE_BASE) CursorFactoryOzone {
} // namespace ui
#endif // UI_OZONE_PUBLIC_CURSOR_FACTORY_OZONE_H_
#endif // UI_BASE_CURSOR_CURSOR_FACTORY_H_

@ -6,14 +6,14 @@
#include <vector>
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/cursor_util.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
namespace ui {
CursorLoaderOzone::CursorLoaderOzone() {
factory_ = CursorFactoryOzone::GetInstance();
factory_ = CursorFactory::GetInstance();
}
CursorLoaderOzone::~CursorLoaderOzone() {

@ -14,13 +14,10 @@
#include "ui/base/cursor/mojom/cursor_type.mojom-forward.h"
namespace ui {
class CursorFactoryOzone;
class CursorFactory;
class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorLoaderOzone : public CursorLoader {
public:
// CursorLoaderOzone will use CursorFactoryOzone corresponding to the thread
// it was constructed on.
CursorLoaderOzone();
~CursorLoaderOzone() override;
@ -38,7 +35,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorLoaderOzone : public CursorLoader {
private:
// Pointers are owned by ResourceBundle and must not be freed here.
std::map<mojom::CursorType, PlatformCursor> image_cursors_;
CursorFactoryOzone* factory_ = nullptr;
CursorFactory* factory_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(CursorLoaderOzone);
};

@ -4,18 +4,18 @@
#include "ui/base/cursor/cursor.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/base/cursor/cursor_factory.h"
namespace ui {
void Cursor::RefCustomCursor() {
if (platform_cursor_)
CursorFactoryOzone::GetInstance()->RefImageCursor(platform_cursor_);
CursorFactory::GetInstance()->RefImageCursor(platform_cursor_);
}
void Cursor::UnrefCustomCursor() {
if (platform_cursor_)
CursorFactoryOzone::GetInstance()->UnrefImageCursor(platform_cursor_);
CursorFactory::GetInstance()->UnrefImageCursor(platform_cursor_);
}
} // namespace ui

@ -13,9 +13,9 @@
#include "base/memory/ref_counted.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-forward.h"
#include "ui/gfx/geometry/point.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
namespace ui {
@ -46,7 +46,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) BitmapCursorOzone
DISALLOW_COPY_AND_ASSIGN(BitmapCursorOzone);
};
// CursorFactoryOzone implementation for bitmapped cursors.
// CursorFactory implementation for bitmapped cursors.
//
// This is a base class for platforms where PlatformCursor is an SkBitmap
// combined with a gfx::Point for the hotspot.
@ -54,7 +54,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) BitmapCursorOzone
// Subclasses need only implement SetBitmapCursor() as everything else is
// implemented here.
class COMPONENT_EXPORT(UI_BASE_CURSOR) BitmapCursorFactoryOzone
: public CursorFactoryOzone {
: public CursorFactory {
public:
BitmapCursorFactoryOzone();
~BitmapCursorFactoryOzone() override;

@ -66,8 +66,6 @@ constructor_list_cc_file = "$target_gen_dir/constructor_list.cc"
jumbo_component("ozone_base") {
sources = [
"public/cursor_factory_ozone.cc",
"public/cursor_factory_ozone.h",
"public/gl_ozone.h",
"public/gpu_platform_support_host.cc",
"public/gpu_platform_support_host.h",
@ -105,7 +103,6 @@ jumbo_component("ozone_base") {
"//ipc",
"//skia",
"//ui/base/clipboard:clipboard_types",
"//ui/base/cursor/mojom:cursor_type",
"//ui/display",
"//ui/display/types",
"//ui/display/util",
@ -128,7 +125,6 @@ jumbo_component("ozone_base") {
visibility += [
# Everyone should depend on //ui/ozone instead except a handful of
# things that would otherwise create a cycle.
"//ui/base/cursor:*",
"//ui/events/ozone/*",
"//ui/ozone/common/*",
"//ui/ozone/public/mojom",

@ -43,6 +43,7 @@ source_set("cast") {
"//chromecast:chromecast_buildflags",
"//chromecast/base:base",
"//chromecast/graphics:libcast_graphics_1.0",
"//ui/base/cursor:cursor_base",
"//ui/base/ime",
"//ui/events/ozone",
"//ui/events/ozone/evdev",

@ -14,6 +14,7 @@
#include "chromecast/chromecast_buildflags.h"
#include "chromecast/public/cast_egl_platform.h"
#include "chromecast/public/cast_egl_platform_shlib.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/ime/input_method_minimal.h"
#include "ui/display/types/native_display_delegate.h"
#include "ui/events/ozone/device/device_manager.h"
@ -24,7 +25,6 @@
#include "ui/ozone/platform/cast/overlay_manager_cast.h"
#include "ui/ozone/platform/cast/platform_window_cast.h"
#include "ui/ozone/platform/cast/surface_factory_cast.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/input_controller.h"
#include "ui/ozone/public/ozone_platform.h"
@ -83,9 +83,7 @@ class OzonePlatformCast : public OzonePlatform {
OverlayManagerOzone* GetOverlayManager() override {
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return event_factory_ozone_->input_controller();
}
@ -123,7 +121,7 @@ class OzonePlatformCast : public OzonePlatform {
void InitializeUI(const InitParams& params) override {
device_manager_ = CreateDeviceManager();
cursor_factory_ = std::make_unique<CursorFactoryOzone>();
cursor_factory_ = std::make_unique<CursorFactory>();
gpu_platform_support_host_.reset(CreateStubGpuPlatformSupportHost());
// Enable dummy software rendering support if GPU process disabled
@ -157,7 +155,7 @@ class OzonePlatformCast : public OzonePlatform {
std::unique_ptr<DeviceManager> device_manager_;
std::unique_ptr<CastEglPlatform> egl_platform_;
std::unique_ptr<SurfaceFactoryCast> surface_factory_;
std::unique_ptr<CursorFactoryOzone> cursor_factory_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<GpuPlatformSupportHost> gpu_platform_support_host_;
std::unique_ptr<OverlayManagerOzone> overlay_manager_;
std::unique_ptr<EventFactoryEvdev> event_factory_ozone_;

@ -128,6 +128,7 @@ source_set("gbm") {
"//third_party/minigbm",
"//ui/base",
"//ui/base/cursor",
"//ui/base/cursor:cursor_base",
"//ui/base/ime",
"//ui/display",
"//ui/display/types",

@ -21,6 +21,7 @@
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "ui/base/buildflags.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/events/ozone/device/device_manager.h"
#include "ui/events/ozone/evdev/event_factory_evdev.h"
@ -43,7 +44,6 @@
#include "ui/ozone/platform/drm/host/drm_window_host.h"
#include "ui/ozone/platform/drm/host/drm_window_host_manager.h"
#include "ui/ozone/platform/drm/host/host_drm_device.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/mojom/drm_device.mojom.h"
#include "ui/ozone/public/ozone_platform.h"
@ -80,9 +80,7 @@ class OzonePlatformGbm : public OzonePlatform {
OverlayManagerOzone* GetOverlayManager() override {
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_ozone_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return event_factory_ozone_->input_controller();
}
@ -202,7 +200,7 @@ class OzonePlatformGbm : public OzonePlatform {
display_manager_ = std::make_unique<DrmDisplayHostManager>(
adapter, device_manager_.get(), &host_properties_,
event_factory_ozone_->input_controller());
cursor_factory_ozone_ = std::make_unique<BitmapCursorFactoryOzone>();
cursor_factory_ = std::make_unique<BitmapCursorFactoryOzone>();
host_drm_device_->SetDisplayManager(display_manager_.get());
}
@ -307,7 +305,7 @@ class OzonePlatformGbm : public OzonePlatform {
scoped_refptr<HostDrmDevice> host_drm_device_;
base::PlatformThreadRef host_thread_;
std::unique_ptr<DeviceManager> device_manager_;
std::unique_ptr<BitmapCursorFactoryOzone> cursor_factory_ozone_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<DrmWindowHostManager> window_manager_;
std::unique_ptr<DrmCursor> cursor_;
std::unique_ptr<EventFactoryEvdev> event_factory_ozone_;

@ -27,6 +27,7 @@ source_set("headless") {
"//skia",
"//ui/base",
"//ui/base/cursor",
"//ui/base/cursor:cursor_base",
"//ui/base/ime",
"//ui/events",
"//ui/events/ozone/layout",

@ -10,6 +10,7 @@
#include "base/files/file_path.h"
#include "base/macros.h"
#include "build/build_config.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/base/ime/input_method_minimal.h"
#include "ui/display/types/native_display_delegate.h"
@ -21,7 +22,6 @@
#include "ui/ozone/platform/headless/headless_surface_factory.h"
#include "ui/ozone/platform/headless/headless_window.h"
#include "ui/ozone/platform/headless/headless_window_manager.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/input_controller.h"
#include "ui/ozone/public/ozone_platform.h"
@ -63,9 +63,7 @@ class OzonePlatformHeadless : public OzonePlatform {
OverlayManagerOzone* GetOverlayManager() override {
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_ozone_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return input_controller_.get();
}
@ -110,7 +108,7 @@ class OzonePlatformHeadless : public OzonePlatform {
overlay_manager_ = std::make_unique<StubOverlayManager>();
input_controller_ = CreateStubInputController();
cursor_factory_ozone_ = std::make_unique<BitmapCursorFactoryOzone>();
cursor_factory_ = std::make_unique<BitmapCursorFactoryOzone>();
gpu_platform_support_host_.reset(CreateStubGpuPlatformSupportHost());
}
@ -124,7 +122,7 @@ class OzonePlatformHeadless : public OzonePlatform {
std::unique_ptr<HeadlessWindowManager> window_manager_;
std::unique_ptr<HeadlessSurfaceFactory> surface_factory_;
std::unique_ptr<PlatformEventSource> platform_event_source_;
std::unique_ptr<CursorFactoryOzone> cursor_factory_ozone_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<InputController> input_controller_;
std::unique_ptr<GpuPlatformSupportHost> gpu_platform_support_host_;
std::unique_ptr<OverlayManagerOzone> overlay_manager_;

@ -56,6 +56,7 @@ source_set("scenic") {
"//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
"//ui/base",
"//ui/base/cursor",
"//ui/base/cursor:cursor_base",
"//ui/base/ime/fuchsia",
"//ui/display/fake",
"//ui/events:dom_keycode_converter",

@ -15,6 +15,7 @@
#include "base/message_loop/message_pump_type.h"
#include "base/notreached.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/base/ime/fuchsia/input_method_fuchsia.h"
#include "ui/display/fake/fake_display_delegate.h"
@ -30,7 +31,6 @@
#include "ui/ozone/platform/scenic/scenic_window_manager.h"
#include "ui/ozone/platform/scenic/sysmem_buffer_collection.h"
#include "ui/ozone/platform_selection.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/input_controller.h"
#include "ui/ozone/public/mojom/scenic_gpu_service.mojom.h"
@ -77,9 +77,7 @@ class OzonePlatformScenic
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_ozone_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return input_controller_.get();
@ -137,7 +135,7 @@ class OzonePlatformScenic
window_manager_ = std::make_unique<ScenicWindowManager>();
overlay_manager_ = std::make_unique<StubOverlayManager>();
input_controller_ = CreateStubInputController();
cursor_factory_ozone_ = std::make_unique<BitmapCursorFactoryOzone>();
cursor_factory_ = std::make_unique<BitmapCursorFactoryOzone>();
scenic_gpu_host_ = std::make_unique<ScenicGpuHost>(window_manager_.get());
@ -208,7 +206,7 @@ class OzonePlatformScenic
std::unique_ptr<KeyboardLayoutEngine> keyboard_layout_engine_;
std::unique_ptr<PlatformEventSource> platform_event_source_;
std::unique_ptr<CursorFactoryOzone> cursor_factory_ozone_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<InputController> input_controller_;
std::unique_ptr<OverlayManagerOzone> overlay_manager_;
std::unique_ptr<ScenicGpuHost> scenic_gpu_host_;

@ -152,6 +152,7 @@ source_set("wayland") {
"//ui/base",
"//ui/base:buildflags",
"//ui/base/cursor",
"//ui/base/cursor:cursor_base",
"//ui/base/ime/linux",
"//ui/events",
"//ui/events:dom_keycode_converter",

@ -14,6 +14,7 @@
#include "base/message_loop/message_pump_type.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "ui/base/buildflags.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/base/ime/linux/input_method_auralinux.h"
#include "ui/events/ozone/layout/keyboard_layout_engine_manager.h"
@ -98,9 +99,7 @@ class OzonePlatformWayland : public OzonePlatform {
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return input_controller_.get();
@ -249,7 +248,7 @@ class OzonePlatformWayland : public OzonePlatform {
std::unique_ptr<KeyboardLayoutEngine> keyboard_layout_engine_;
std::unique_ptr<WaylandConnection> connection_;
std::unique_ptr<WaylandSurfaceFactory> surface_factory_;
std::unique_ptr<BitmapCursorFactoryOzone> cursor_factory_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<StubOverlayManager> overlay_manager_;
std::unique_ptr<InputController> input_controller_;
std::unique_ptr<GpuPlatformSupportHost> gpu_platform_support_host_;

@ -25,6 +25,7 @@ source_set("windows") {
"//skia",
"//ui/base",
"//ui/base/cursor",
"//ui/base/cursor:cursor_base",
"//ui/display/fake",
"//ui/events",
"//ui/events/ozone/layout",

@ -10,6 +10,7 @@
#include "base/files/file_path.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/display/fake/fake_display_delegate.h"
#include "ui/events/ozone/layout/keyboard_layout_engine_manager.h"
@ -20,7 +21,6 @@
#include "ui/ozone/platform/windows/windows_surface_factory.h"
#include "ui/ozone/platform/windows/windows_window.h"
#include "ui/ozone/platform/windows/windows_window_manager.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/input_controller.h"
#include "ui/ozone/public/ozone_platform.h"
@ -56,9 +56,7 @@ class OzonePlatformWindows : public OzonePlatform {
OverlayManagerOzone* GetOverlayManager() override {
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_ozone_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
InputController* GetInputController() override {
return input_controller_.get();
}
@ -96,7 +94,7 @@ class OzonePlatformWindows : public OzonePlatform {
overlay_manager_ = std::make_unique<StubOverlayManager>();
input_controller_ = CreateStubInputController();
cursor_factory_ozone_ = std::make_unique<BitmapCursorFactoryOzone>();
cursor_factory_ = std::make_unique<BitmapCursorFactory>();
gpu_platform_support_host_.reset(CreateStubGpuPlatformSupportHost());
}
@ -110,7 +108,7 @@ class OzonePlatformWindows : public OzonePlatform {
std::unique_ptr<WindowsWindowManager> window_manager_;
std::unique_ptr<WindowsSurfaceFactory> surface_factory_;
std::unique_ptr<PlatformEventSource> platform_event_source_;
std::unique_ptr<CursorFactoryOzone> cursor_factory_ozone_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<InputController> input_controller_;
std::unique_ptr<GpuPlatformSupportHost> gpu_platform_support_host_;
std::unique_ptr<OverlayManagerOzone> overlay_manager_;

@ -34,7 +34,10 @@ source_set("x11") {
"x11_surface_factory.h",
]
public_deps = [ "//ui/base/cursor/mojom:cursor_type" ]
public_deps = [
"//ui/base/cursor:cursor_base",
"//ui/base/cursor/mojom:cursor_type",
]
deps = [
"//base",

@ -11,6 +11,7 @@
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "ui/base/buildflags.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/dragdrop/os_exchange_data_provider_factory.h"
#include "ui/base/dragdrop/os_exchange_data_provider_factory_ozone.h"
#include "ui/base/ime/linux/linux_input_method_context_factory.h"
@ -88,9 +89,7 @@ class OzonePlatformX11 : public OzonePlatform,
return overlay_manager_.get();
}
CursorFactoryOzone* GetCursorFactoryOzone() override {
return cursor_factory_ozone_.get();
}
CursorFactory* GetCursorFactory() override { return cursor_factory_.get(); }
std::unique_ptr<SystemInputInjector> CreateSystemInputInjector() override {
return nullptr;
@ -167,7 +166,7 @@ class OzonePlatformX11 : public OzonePlatform,
overlay_manager_ = std::make_unique<StubOverlayManager>();
input_controller_ = CreateStubInputController();
clipboard_ = std::make_unique<X11ClipboardOzone>();
cursor_factory_ozone_ = std::make_unique<X11CursorFactoryOzone>();
cursor_factory_ = std::make_unique<X11CursorFactoryOzone>();
gpu_platform_support_host_.reset(CreateStubGpuPlatformSupportHost());
#if BUILDFLAG(USE_XKBCOMMON)
@ -238,7 +237,7 @@ class OzonePlatformX11 : public OzonePlatform,
std::unique_ptr<OverlayManagerOzone> overlay_manager_;
std::unique_ptr<InputController> input_controller_;
std::unique_ptr<X11ClipboardOzone> clipboard_;
std::unique_ptr<X11CursorFactoryOzone> cursor_factory_ozone_;
std::unique_ptr<CursorFactory> cursor_factory_;
std::unique_ptr<GpuPlatformSupportHost> gpu_platform_support_host_;
// Objects in the GPU process.

@ -11,15 +11,15 @@
#include "base/macros.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-forward.h"
#include "ui/gfx/x/x11.h"
#include "ui/ozone/platform/x11/x11_cursor_ozone.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
namespace ui {
// CursorFactoryOzone implementation for X11 cursors.
class X11CursorFactoryOzone : public CursorFactoryOzone {
class X11CursorFactoryOzone : public CursorFactory {
public:
X11CursorFactoryOzone();
~X11CursorFactoryOzone() override;

@ -1,63 +0,0 @@
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "base/check_op.h"
#include "base/notreached.h"
namespace ui {
namespace {
CursorFactoryOzone* g_instance = nullptr;
} // namespace
CursorFactoryOzone::CursorFactoryOzone() {
DCHECK(!g_instance)
<< "There should only be a single CursorFactoryOzone per thread.";
g_instance = this;
}
CursorFactoryOzone::~CursorFactoryOzone() {
DCHECK_EQ(g_instance, this);
g_instance = nullptr;
}
CursorFactoryOzone* CursorFactoryOzone::GetInstance() {
DCHECK(g_instance);
return g_instance;
}
PlatformCursor CursorFactoryOzone::GetDefaultCursor(mojom::CursorType type) {
NOTIMPLEMENTED();
return NULL;
}
PlatformCursor CursorFactoryOzone::CreateImageCursor(const SkBitmap& bitmap,
const gfx::Point& hotspot,
float bitmap_dpi) {
NOTIMPLEMENTED();
return NULL;
}
PlatformCursor CursorFactoryOzone::CreateAnimatedCursor(
const std::vector<SkBitmap>& bitmaps,
const gfx::Point& hotspot,
int frame_delay_ms,
float bitmap_dpi) {
NOTIMPLEMENTED();
return NULL;
}
void CursorFactoryOzone::RefImageCursor(PlatformCursor cursor) {
NOTIMPLEMENTED();
}
void CursorFactoryOzone::UnrefImageCursor(PlatformCursor cursor) {
NOTIMPLEMENTED();
}
} // namespace ui

@ -23,8 +23,7 @@ class NativeDisplayDelegate;
}
namespace ui {
class CursorFactoryOzone;
class CursorFactory;
class InputController;
class GpuPlatformSupportHost;
class OverlayManagerOzone;
@ -129,7 +128,7 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
// inject these objects themselves. Ownership is retained by OzonePlatform.
virtual ui::SurfaceFactoryOzone* GetSurfaceFactoryOzone() = 0;
virtual ui::OverlayManagerOzone* GetOverlayManager() = 0;
virtual ui::CursorFactoryOzone* GetCursorFactoryOzone() = 0;
virtual ui::CursorFactory* GetCursorFactory() = 0;
virtual ui::InputController* GetInputController() = 0;
virtual ui::GpuPlatformSupportHost* GetGpuPlatformSupportHost() = 0;
virtual std::unique_ptr<SystemInputInjector> CreateSystemInputInjector() = 0;