gecko-dev/dom/ipc/PProcessHangMonitor.ipdl
Aaron Klotz 094a7b0970 Bug 1161169: Clean up usage of mContentParent and clearly identify it as specifically for async plugin init; r=billm,jimm
mContentParent is really just to be used while handling a synchronous
ContentParent::RecvLoadPlugin call when async plugin init turned on.

In any other context, using it will be unsafe.

This patch adds comments and assertions to ensure that this value isn't set
otherwise, and converts the one use of mContentParent outside of async plugin
init to use an alternative mechanism for identifying the content process.

MozReview-Commit-ID: Esgt1kj0MCt

--HG--
extra : rebase_source : 166b913b401582c6948e4b61efc102dc1b9c8d2f
2016-03-03 00:24:36 -07:00

45 lines
859 B
Plaintext

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* vim: sw=2 ts=8 et :
*/
/* 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/. */
using base::ProcessId from "base/process.h";
using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h";
namespace mozilla {
struct SlowScriptData
{
TabId tabId;
nsCString filename;
uint32_t lineno;
};
struct PluginHangData
{
uint32_t pluginId;
ProcessId contentProcessId;
};
union HangData
{
SlowScriptData;
PluginHangData;
};
protocol PProcessHangMonitor
{
parent:
async HangEvidence(HangData data);
child:
async TerminateScript();
async BeginStartingDebugger();
async EndStartingDebugger();
};
} // namespace mozilla