1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=99: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 include protocol PCompositorBridge;
9 include "mozilla/dom/TabMessageUtils.h";
10 include "mozilla/widget/WidgetMessageUtils.h";
12 using mozilla::gfx::IntSize from "mozilla/gfx/Point.h";
13 using mozilla::WindowsHandle from "mozilla/ipc/IPCTypes.h";
14 using mozilla::widget::TransparencyMode from "nsIWidget.h";
15 using nsSizeMode from "nsIWidget.h";
20 struct RemoteBackbufferHandles {
21 FileDescriptor fileMapping;
22 FileDescriptor requestReadyEvent;
23 FileDescriptor responseReadyEvent;
26 [ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
27 sync protocol PCompositorWidget
29 manager PCompositorBridge;
32 sync Initialize(RemoteBackbufferHandles aRemoteHandles);
34 sync EnterPresentLock();
35 sync LeavePresentLock();
36 async NotifyVisibilityUpdated(bool aIsFullyOccluded);
37 async UpdateTransparency(TransparencyMode aMode);
38 sync ClearTransparentWindow();
43 async UnobserveVsync();
44 async UpdateCompositorWnd(WindowsHandle aCompositorWnd, WindowsHandle aParentWnd)
45 returns (bool success);
49 } // namespace mozilla