mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-05 00:25:27 +00:00
38 lines
1.2 KiB
Plaintext
38 lines
1.2 KiB
Plaintext
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
* vim: sw=4 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/. */
|
|
|
|
include protocol PPluginInstance;
|
|
|
|
namespace mozilla {
|
|
namespace plugins {
|
|
|
|
/**
|
|
* This protocol exists to allow us to correctly destroy background
|
|
* surfaces. The browser owns the surfaces, but shares a "reference"
|
|
* with the plugin. The browser needs to notify the plugin when the
|
|
* background is going to be destroyed, but it can't rely on the
|
|
* plugin to destroy it because the plugin may crash at any time. So
|
|
* the plugin instance relinquishes destruction of the its old
|
|
* background to actors of this protocol, which can deal with crashy
|
|
* corner cases more easily than the instance.
|
|
*/
|
|
protocol PPluginBackgroundDestroyer {
|
|
manager PPluginInstance;
|
|
|
|
// The ctor message for this protocol serves double-duty as
|
|
// notification that that the background is stale.
|
|
|
|
parent:
|
|
__delete__();
|
|
|
|
state DESTROYING:
|
|
recv __delete__;
|
|
};
|
|
|
|
} // namespace plugins
|
|
} // namespace mozilla
|