1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #include "CompositorWidgetParent.h"
7 #include "mozilla/Unused.h"
8 #include "mozilla/widget/PlatformWidgetTypes.h"
9 
10 namespace mozilla {
11 namespace widget {
12 
CompositorWidgetParent(const CompositorWidgetInitData & aInitData,const layers::CompositorOptions & aOptions)13 CompositorWidgetParent::CompositorWidgetParent(
14     const CompositorWidgetInitData& aInitData,
15     const layers::CompositorOptions& aOptions)
16     : GtkCompositorWidget(aInitData.get_GtkCompositorWidgetInitData(), aOptions,
17                           nullptr) {
18   MOZ_ASSERT(XRE_GetProcessType() == GeckoProcessType_GPU);
19 }
20 
21 CompositorWidgetParent::~CompositorWidgetParent() = default;
22 
ObserveVsync(VsyncObserver * aObserver)23 void CompositorWidgetParent::ObserveVsync(VsyncObserver* aObserver) {
24   if (aObserver) {
25     Unused << SendObserveVsync();
26   } else {
27     Unused << SendUnobserveVsync();
28   }
29   mVsyncObserver = aObserver;
30 }
31 
GetVsyncObserver() const32 RefPtr<VsyncObserver> CompositorWidgetParent::GetVsyncObserver() const {
33   MOZ_ASSERT(XRE_GetProcessType() == GeckoProcessType_GPU);
34   return mVsyncObserver;
35 }
36 
RecvNotifyClientSizeChanged(const LayoutDeviceIntSize & aClientSize)37 mozilla::ipc::IPCResult CompositorWidgetParent::RecvNotifyClientSizeChanged(
38     const LayoutDeviceIntSize& aClientSize) {
39   NotifyClientSizeChanged(aClientSize);
40   return IPC_OK();
41 }
42 
43 }  // namespace widget
44 }  // namespace mozilla
45