/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */ /* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ include protocol PBrowser; include protocol PInProcess; include protocol PBrowserBridge; include DOMTypes; using JSWindowActorMessageKind from "mozilla/dom/JSWindowActor.h"; using mozilla::gfx::IntRect from "mozilla/gfx/Rect.h"; using moveonly mozilla::gfx::PaintFragment from "mozilla/gfx/CrossProcessPaint.h"; using nscolor from "nsColor.h"; namespace mozilla { namespace dom { struct JSWindowActorMessageMeta { nsString actorName; nsString messageName; uint64_t queryId; JSWindowActorMessageKind kind; }; /** * A PWindowGlobal actor has a lifetime matching that of a single Window Global, * specifically a |nsGlobalWindowInner|. These actors will form a parent/child * link either between the chrome/content process, or will be in-process, for * documents which are loaded in the chrome process. */ async refcounted protocol PWindowGlobal { manager PBrowser or PInProcess; child: async __delete__(); async ChangeFrameRemoteness(BrowsingContext aFrameContext, nsString aRemoteType, uint64_t aSwitchId) returns (nsresult rv, nullable PBrowserBridge bridge); async DrawSnapshot(IntRect? aRect, float aScale, nscolor aBackgroundColor) returns (PaintFragment retval); /** * Returns the serialized security info associated with this window. */ async GetSecurityInfo() returns(nsCString? serializedSecInfo); both: async RawMessage(JSWindowActorMessageMeta aMetadata, ClonedMessageData aData); parent: /// Update the URI of the document in this WindowGlobal. async UpdateDocumentURI(nsIURI aUri); /// Send down initial document bit to the parent. async SetIsInitialDocument(bool aIsInitialDocument); /// Tell the parent if this WindowGlobal has any "beforeunload" event /// listeners. async SetHasBeforeUnload(bool aHasBeforeUnload); /// Notify the parent that this PWindowGlobal is now the current global. async BecomeCurrentWindowGlobal(); /// Notify the parent that this PWindowGlobal has embedded the given /// BrowsingContext. async DidEmbedBrowsingContext(BrowsingContext aContext); async Destroy(); }; } // namespace dom } // namespace mozilla