Bug 570620, part j: Add a PRenderFrame protocol for cross-process frame objects. r=tn
authorChris Jones <jones.chris.g@gmail.com>
Fri, 20 Aug 2010 18:24:41 -0500
changeset 54014 84f9361915784a64ae48bf25c53d259ec8bdaf16
parent 54013 dc39260535b2a43b1d47f747dd1277de016f7f09
child 54015 9fb8965e9a5a65373511628a827593213251f562
push idunknown
push userunknown
push dateunknown
reviewerstn
bugs570620
milestone2.0b5pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 570620, part j: Add a PRenderFrame protocol for cross-process frame objects. r=tn
layout/ipc/PRenderFrame.ipdl
new file mode 100644
--- /dev/null
+++ b/layout/ipc/PRenderFrame.ipdl
@@ -0,0 +1,72 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ * vim: sw=2 ts=8 et :
+ */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Code.
+ *
+ * The Initial Developer of the Original Code is
+ *   The Mozilla Foundation
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Chris Jones <jones.chris.g@gmail.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+include protocol PBrowser;
+include protocol PLayers;
+
+namespace mozilla {
+namespace layout {
+
+/**
+ * PRenderFrame (in the layout sense of "frame") represents one web
+ * "page".  It's used to graft content processes' layer trees into
+ * chrome's rendering path.  The lifetime of a PRenderFrame is tied to
+ * its PresShell in the child process.
+ *
+ * The child process conceptually "owns" a PRenderFrame, because it
+ * only makes sense wrt documents loaded by the child.
+ */
+sync protocol PRenderFrame
+{
+    manager PBrowser;
+    manages PLayers;
+
+parent:
+    async PLayers();
+    async __delete__();
+
+state EMPTY:
+    recv PLayers goto HAVE_CONTENT;
+state HAVE_CONTENT:
+    recv __delete__;
+};
+
+} // namespace layout
+} // namespace mozilla