PGMPService.ipdl (1246B)
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 protocol PGMPContent; 7 include GMPTypes; 8 9 // FIXME: Should use GeckoChildID over ProcessId to identify processes. 10 using base::ProcessId from "base/process.h"; 11 using GMPPluginType from "GMPNativeTypes.h"; 12 13 namespace mozilla { 14 namespace gmp { 15 16 struct GMPLaunchResult { 17 uint32_t pluginId; 18 GMPPluginType pluginType; 19 ProcessId pid; 20 nsCString displayName; 21 Endpoint<PGMPContentParent> endpoint; 22 nsresult result; 23 nsCString errorDescription; 24 }; 25 26 [NeedsOtherPid, ChildImpl=virtual, ParentImpl=virtual, ChildProc=Content] 27 async protocol PGMPService 28 { 29 parent: 30 async LaunchGMP(NodeIdVariant nodeIdVariant, 31 nsCString api, 32 nsCString[] tags, 33 ProcessId[] alreadyBridgedTo) 34 returns (GMPLaunchResult aResult); 35 36 async GetGMPNodeId(nsString origin, nsString topLevelOrigin, nsString gmpName) 37 returns (nsCString id); 38 child: 39 async BeginShutdown(); 40 }; 41 42 } // namespace gmp 43 } // namespace mozilla