Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: sw=2 ts=8 et :
3 */
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
8 include protocol PBrowser;
9 include protocol PLayerTransaction;
12 using class nsRegion from "nsRegion.h";
14 namespace mozilla {
15 namespace layout {
17 /**
18 * PRenderFrame (in the layout sense of "frame") represents one web
19 * "page". It's used to graft content processes' layer trees into
20 * chrome's rendering path. The lifetime of a PRenderFrame is tied to
21 * its PresShell in the child process.
22 *
23 * The child process conceptually "owns" a PRenderFrame, because it
24 * only makes sense wrt documents loaded by the child.
25 */
26 sync protocol PRenderFrame
27 {
28 manager PBrowser;
29 manages PLayerTransaction;
31 parent:
32 /**
33 * Shadow layer trees can be grafted into the parent's in one of
34 * two ways
35 * - direct shadow tree: updates are sent to parent
36 * - indirect: the parent holds a reference (ID) to a shadow tree
37 * that's managed by the compositor. During composition, the
38 * shadow tree is looked up and grafted appropriately
39 *
40 * |id| is set to 0 in the "direct" case, and to a whole number
41 * in the "indirect" case.
42 */
43 async PLayerTransaction();
45 async NotifyCompositorTransaction();
47 async UpdateHitRegion(nsRegion aRegion);
49 async __delete__();
51 state EMPTY_OR_DIRECT_COMPOSITOR:
52 recv PLayerTransaction goto HAVE_CONTENT;
53 recv NotifyCompositorTransaction goto EMPTY_OR_DIRECT_COMPOSITOR;
54 recv UpdateHitRegion goto EMPTY_OR_DIRECT_COMPOSITOR;
55 recv __delete__;
57 state HAVE_CONTENT:
58 recv NotifyCompositorTransaction goto HAVE_CONTENT;
59 recv UpdateHitRegion goto HAVE_CONTENT;
60 recv __delete__;
61 };
63 } // namespace layout
64 } // namespace mozilla