gecko-dev/dom/plugins/ipc/PluginBridge.h
Mike Conley 22a0f74e8f Bug 1148012 - Add a run ID for plugins to differentiate subsequent runs of the same plugins. r=jimm.
Normally, this could be served by the process ID of a plugin, however, run ID is meant
to be consumed by multi-process browser chrome code for telling different runs of a
plugin apart (for example, for searching the DOM for a crashed instance of a plugin,
while ensuring that we don't accidentally find newly spawned instances that have not
crashed). Exposing something as low-level as the process ID to browser chrome code
seemed like Too Much Information. Also, there is the extremely unlikely chance that
a process ID might be re-used immediately after the original process shuts down. This
run ID avoids that case, regardless of how unlikely.

--HG--
extra : rebase_source : 4f0072ef660645efdb26d8fa7c9f03dfc60a4f4a
2015-03-17 13:42:34 -04:00

34 lines
898 B
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* vim: sw=2 ts=2 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/. */
#ifndef mozilla_plugins_PluginBridge_h
#define mozilla_plugins_PluginBridge_h
namespace mozilla {
namespace dom {
class ContentParent;
}
namespace plugins {
bool
SetupBridge(uint32_t aPluginId, dom::ContentParent* aContentParent,
bool aForceBridgeNow, nsresult* aResult, uint32_t* aRunID);
bool
FindPluginsForContent(uint32_t aPluginEpoch,
nsTArray<PluginTag>* aPlugins,
uint32_t* aNewPluginEpoch);
void
TerminatePlugin(uint32_t aPluginId);
} // namespace plugins
} // namespace mozilla
#endif // mozilla_plugins_PluginBridge_h