Chromium Code Reviews| Index: content/child/child_thread_impl.cc |
| diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc |
| index 3978af0b74a438b49b1758b62803fa11f0f28ca1..e720fa4869dd600377d2ae6cee0305923cd7f05b 100644 |
| --- a/content/child/child_thread_impl.cc |
| +++ b/content/child/child_thread_impl.cc |
| @@ -68,6 +68,10 @@ |
| #include "content/child/child_io_surface_manager_mac.h" |
| #endif |
| +#if defined(USE_OZONE) |
| +#include "ui/ozone/public/client_native_pixmap_factory.h" |
| +#endif |
| + |
| #if defined(OS_WIN) |
| #include "ipc/attachment_broker_unprivileged_win.h" |
| #endif |
| @@ -192,6 +196,31 @@ class IOSurfaceManagerFilter : public IPC::MessageFilter { |
| }; |
| #endif |
| +#if defined(USE_OZONE) |
| +class ClientNativePixmapFactoryFilter : public IPC::MessageFilter { |
| + public: |
| + // Overridden from IPC::MessageFilter: |
| + bool OnMessageReceived(const IPC::Message& message) override { |
| + bool handled = true; |
| + IPC_BEGIN_MESSAGE_MAP(ClientNativePixmapFactoryFilter, message) |
| + IPC_MESSAGE_HANDLER(ChildProcessMsg_InitializeClientNativePixmapFactory, |
| + OnInitializeClientNativePixmapFactory) |
| + IPC_MESSAGE_UNHANDLED(handled = false) |
| + IPC_END_MESSAGE_MAP() |
| + return handled; |
| + } |
| + |
| + protected: |
| + ~ClientNativePixmapFactoryFilter() override {} |
| + |
| + void OnInitializeClientNativePixmapFactory( |
| + const base::FileDescriptor& device_fd) { |
| + ui::ClientNativePixmapFactory::GetInstance()->Initialize( |
|
jam
2015/08/24 15:00:32
do you specifically want this to happen on the IO
|
| + base::ScopedFD(device_fd.fd)); |
| + } |
| +}; |
| +#endif |
| + |
| #if defined(OS_ANDROID) |
| // A class that allows for triggering a clean shutdown from another |
| // thread through draining the main thread's msg loop. |
| @@ -428,6 +457,10 @@ void ChildThreadImpl::Init(const Options& options) { |
| channel_->AddFilter(new IOSurfaceManagerFilter()); |
| #endif |
| +#if defined(USE_OZONE) |
| + channel_->AddFilter(new ClientNativePixmapFactoryFilter()); |
| +#endif |
| + |
| // Add filters passed here via options. |
| for (auto startup_filter : options.startup_filters) { |
| channel_->AddFilter(startup_filter); |