| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/ozone/platform/wayland/fake_server.h" | 5 #include "ui/ozone/platform/wayland/fake_server.h" |
| 6 | 6 |
| 7 #include <sys/socket.h> | 7 #include <sys/socket.h> |
| 8 #include <wayland-server.h> | 8 #include <wayland-server.h> |
| 9 #include <xdg-shell-unstable-v5-server-protocol.h> | 9 #include <xdg-shell-unstable-v5-server-protocol.h> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 const uint32_t kSeatVersion = 4; | 22 const uint32_t kSeatVersion = 4; |
| 23 const uint32_t kXdgShellVersion = 1; | 23 const uint32_t kXdgShellVersion = 1; |
| 24 | 24 |
| 25 void DestroyResource(wl_client* client, wl_resource* resource) { | 25 void DestroyResource(wl_client* client, wl_resource* resource) { |
| 26 wl_resource_destroy(resource); | 26 wl_resource_destroy(resource); |
| 27 } | 27 } |
| 28 | 28 |
| 29 // wl_compositor | 29 // wl_compositor |
| 30 | 30 |
| 31 void CreateSurface(wl_client* client, wl_resource* resource, uint32_t id) { | 31 void CreateSurface(wl_client* client, wl_resource* resource, uint32_t id) { |
| 32 auto compositor = | 32 auto* compositor = |
| 33 static_cast<MockCompositor*>(wl_resource_get_user_data(resource)); | 33 static_cast<MockCompositor*>(wl_resource_get_user_data(resource)); |
| 34 wl_resource* surface_resource = wl_resource_create( | 34 wl_resource* surface_resource = wl_resource_create( |
| 35 client, &wl_surface_interface, wl_resource_get_version(resource), id); | 35 client, &wl_surface_interface, wl_resource_get_version(resource), id); |
| 36 if (!surface_resource) { | 36 if (!surface_resource) { |
| 37 wl_client_post_no_memory(client); | 37 wl_client_post_no_memory(client); |
| 38 return; | 38 return; |
| 39 } | 39 } |
| 40 compositor->AddSurface(base::MakeUnique<MockSurface>(surface_resource)); | 40 compositor->AddSurface(base::MakeUnique<MockSurface>(surface_resource)); |
| 41 } | 41 } |
| 42 | 42 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 wl_resource* resource, | 89 wl_resource* resource, |
| 90 int32_t version) { | 90 int32_t version) { |
| 91 static_cast<MockXdgShell*>(wl_resource_get_user_data(resource)) | 91 static_cast<MockXdgShell*>(wl_resource_get_user_data(resource)) |
| 92 ->UseUnstableVersion(version); | 92 ->UseUnstableVersion(version); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void GetXdgSurface(wl_client* client, | 95 void GetXdgSurface(wl_client* client, |
| 96 wl_resource* resource, | 96 wl_resource* resource, |
| 97 uint32_t id, | 97 uint32_t id, |
| 98 wl_resource* surface_resource) { | 98 wl_resource* surface_resource) { |
| 99 auto surface = | 99 auto* surface = |
| 100 static_cast<MockSurface*>(wl_resource_get_user_data(surface_resource)); | 100 static_cast<MockSurface*>(wl_resource_get_user_data(surface_resource)); |
| 101 if (surface->xdg_surface) { | 101 if (surface->xdg_surface) { |
| 102 wl_resource_post_error(resource, XDG_SHELL_ERROR_ROLE, | 102 wl_resource_post_error(resource, XDG_SHELL_ERROR_ROLE, |
| 103 "surface already has a role"); | 103 "surface already has a role"); |
| 104 return; | 104 return; |
| 105 } | 105 } |
| 106 wl_resource* xdg_surface_resource = wl_resource_create( | 106 wl_resource* xdg_surface_resource = wl_resource_create( |
| 107 client, &xdg_surface_interface, wl_resource_get_version(resource), id); | 107 client, &xdg_surface_interface, wl_resource_get_version(resource), id); |
| 108 if (!xdg_surface_resource) { | 108 if (!xdg_surface_resource) { |
| 109 wl_client_post_no_memory(client); | 109 wl_client_post_no_memory(client); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 120 &DestroyResource, // destroy | 120 &DestroyResource, // destroy |
| 121 &UseUnstableVersion, // use_unstable_version | 121 &UseUnstableVersion, // use_unstable_version |
| 122 &GetXdgSurface, // get_xdg_surface | 122 &GetXdgSurface, // get_xdg_surface |
| 123 nullptr, // get_xdg_popup | 123 nullptr, // get_xdg_popup |
| 124 &Pong, // pong | 124 &Pong, // pong |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 // wl_seat | 127 // wl_seat |
| 128 | 128 |
| 129 void GetPointer(wl_client* client, wl_resource* resource, uint32_t id) { | 129 void GetPointer(wl_client* client, wl_resource* resource, uint32_t id) { |
| 130 auto seat = static_cast<MockSeat*>(wl_resource_get_user_data(resource)); | 130 auto* seat = static_cast<MockSeat*>(wl_resource_get_user_data(resource)); |
| 131 wl_resource* pointer_resource = wl_resource_create( | 131 wl_resource* pointer_resource = wl_resource_create( |
| 132 client, &wl_pointer_interface, wl_resource_get_version(resource), id); | 132 client, &wl_pointer_interface, wl_resource_get_version(resource), id); |
| 133 if (!pointer_resource) { | 133 if (!pointer_resource) { |
| 134 wl_client_post_no_memory(client); | 134 wl_client_post_no_memory(client); |
| 135 return; | 135 return; |
| 136 } | 136 } |
| 137 seat->pointer.reset(new MockPointer(pointer_resource)); | 137 seat->pointer.reset(new MockPointer(pointer_resource)); |
| 138 } | 138 } |
| 139 | 139 |
| 140 void GetKeyboard(wl_client* client, wl_resource* resource, uint32_t id) { | 140 void GetKeyboard(wl_client* client, wl_resource* resource, uint32_t id) { |
| 141 auto seat = static_cast<MockSeat*>(wl_resource_get_user_data(resource)); | 141 auto* seat = static_cast<MockSeat*>(wl_resource_get_user_data(resource)); |
| 142 wl_resource* keyboard_resource = wl_resource_create( | 142 wl_resource* keyboard_resource = wl_resource_create( |
| 143 client, &wl_keyboard_interface, wl_resource_get_version(resource), id); | 143 client, &wl_keyboard_interface, wl_resource_get_version(resource), id); |
| 144 if (!keyboard_resource) { | 144 if (!keyboard_resource) { |
| 145 wl_client_post_no_memory(client); | 145 wl_client_post_no_memory(client); |
| 146 return; | 146 return; |
| 147 } | 147 } |
| 148 seat->keyboard.reset(new MockKeyboard(keyboard_resource)); | 148 seat->keyboard.reset(new MockKeyboard(keyboard_resource)); |
| 149 } | 149 } |
| 150 | 150 |
| 151 const struct wl_seat_interface seat_impl = { | 151 const struct wl_seat_interface seat_impl = { |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 | 221 |
| 222 ServerObject::ServerObject(wl_resource* resource) : resource_(resource) {} | 222 ServerObject::ServerObject(wl_resource* resource) : resource_(resource) {} |
| 223 | 223 |
| 224 ServerObject::~ServerObject() { | 224 ServerObject::~ServerObject() { |
| 225 if (resource_) | 225 if (resource_) |
| 226 wl_resource_destroy(resource_); | 226 wl_resource_destroy(resource_); |
| 227 } | 227 } |
| 228 | 228 |
| 229 // static | 229 // static |
| 230 void ServerObject::OnResourceDestroyed(wl_resource* resource) { | 230 void ServerObject::OnResourceDestroyed(wl_resource* resource) { |
| 231 auto obj = static_cast<ServerObject*>(wl_resource_get_user_data(resource)); | 231 auto* obj = static_cast<ServerObject*>(wl_resource_get_user_data(resource)); |
| 232 obj->resource_ = nullptr; | 232 obj->resource_ = nullptr; |
| 233 } | 233 } |
| 234 | 234 |
| 235 MockXdgSurface::MockXdgSurface(wl_resource* resource) : ServerObject(resource) { | 235 MockXdgSurface::MockXdgSurface(wl_resource* resource) : ServerObject(resource) { |
| 236 wl_resource_set_implementation(resource, &xdg_surface_impl, this, | 236 wl_resource_set_implementation(resource, &xdg_surface_impl, this, |
| 237 &ServerObject::OnResourceDestroyed); | 237 &ServerObject::OnResourceDestroyed); |
| 238 } | 238 } |
| 239 | 239 |
| 240 MockXdgSurface::~MockXdgSurface() {} | 240 MockXdgSurface::~MockXdgSurface() {} |
| 241 | 241 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 bool Global::Initialize(wl_display* display) { | 285 bool Global::Initialize(wl_display* display) { |
| 286 global_.reset(wl_global_create(display, interface_, version_, this, &Bind)); | 286 global_.reset(wl_global_create(display, interface_, version_, this, &Bind)); |
| 287 return global_ != nullptr; | 287 return global_ != nullptr; |
| 288 } | 288 } |
| 289 | 289 |
| 290 // static | 290 // static |
| 291 void Global::Bind(wl_client* client, | 291 void Global::Bind(wl_client* client, |
| 292 void* data, | 292 void* data, |
| 293 uint32_t version, | 293 uint32_t version, |
| 294 uint32_t id) { | 294 uint32_t id) { |
| 295 auto global = static_cast<Global*>(data); | 295 auto* global = static_cast<Global*>(data); |
| 296 wl_resource* resource = wl_resource_create( | 296 wl_resource* resource = wl_resource_create( |
| 297 client, global->interface_, std::min(version, global->version_), id); | 297 client, global->interface_, std::min(version, global->version_), id); |
| 298 if (!resource) { | 298 if (!resource) { |
| 299 wl_client_post_no_memory(client); | 299 wl_client_post_no_memory(client); |
| 300 return; | 300 return; |
| 301 } | 301 } |
| 302 if (!global->resource_) | 302 if (!global->resource_) |
| 303 global->resource_ = resource; | 303 global->resource_ = resource; |
| 304 wl_resource_set_implementation(resource, global->implementation_, global, | 304 wl_resource_set_implementation(resource, global->implementation_, global, |
| 305 &Global::OnResourceDestroyed); | 305 &Global::OnResourceDestroyed); |
| 306 global->OnBind(); | 306 global->OnBind(); |
| 307 } | 307 } |
| 308 | 308 |
| 309 // static | 309 // static |
| 310 void Global::OnResourceDestroyed(wl_resource* resource) { | 310 void Global::OnResourceDestroyed(wl_resource* resource) { |
| 311 auto global = static_cast<Global*>(wl_resource_get_user_data(resource)); | 311 auto* global = static_cast<Global*>(wl_resource_get_user_data(resource)); |
| 312 if (global->resource_ == resource) | 312 if (global->resource_ == resource) |
| 313 global->resource_ = nullptr; | 313 global->resource_ = nullptr; |
| 314 } | 314 } |
| 315 | 315 |
| 316 MockCompositor::MockCompositor() | 316 MockCompositor::MockCompositor() |
| 317 : Global(&wl_compositor_interface, &compositor_impl, kCompositorVersion) {} | 317 : Global(&wl_compositor_interface, &compositor_impl, kCompositorVersion) {} |
| 318 | 318 |
| 319 MockCompositor::~MockCompositor() {} | 319 MockCompositor::~MockCompositor() {} |
| 320 | 320 |
| 321 void MockCompositor::AddSurface(std::unique_ptr<MockSurface> surface) { | 321 void MockCompositor::AddSurface(std::unique_ptr<MockSurface> surface) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 } | 429 } |
| 430 | 430 |
| 431 void FakeServer::OnFileCanReadWithoutBlocking(int fd) { | 431 void FakeServer::OnFileCanReadWithoutBlocking(int fd) { |
| 432 wl_event_loop_dispatch(event_loop_, 0); | 432 wl_event_loop_dispatch(event_loop_, 0); |
| 433 wl_display_flush_clients(display_.get()); | 433 wl_display_flush_clients(display_.get()); |
| 434 } | 434 } |
| 435 | 435 |
| 436 void FakeServer::OnFileCanWriteWithoutBlocking(int fd) {} | 436 void FakeServer::OnFileCanWriteWithoutBlocking(int fd) {} |
| 437 | 437 |
| 438 } // namespace wl | 438 } // namespace wl |
| OLD | NEW |