mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-19 14:57:32 +09:00
Vim control lines were re-introduced or not entirely cleaned up. This nukes them again. Removing from embedding, extensions, gfx, hal, ipc, layout, mailnews, media and memory. More to come.
37 lines
1.2 KiB
Text
37 lines
1.2 KiB
Text
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
* 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 PLayerTransaction;
|
|
|
|
namespace mozilla {
|
|
namespace layers {
|
|
|
|
/**
|
|
* PLayer represents a layer shared across thread contexts.
|
|
*/
|
|
|
|
async protocol PLayer {
|
|
manager PLayerTransaction;
|
|
|
|
/**
|
|
* OWNERSHIP MODEL
|
|
*
|
|
* Roughly speaking, the child side "actually owns" a Layer. This
|
|
* is because the parent side is the "shadow"; when the child
|
|
* releases a Layer, the parent's shadow is no longer meaningful.
|
|
*
|
|
* To implement this model, the concrete PLayerParent keeps a
|
|
* strong ref to its Layer, so the Layer's lifetime is bound to
|
|
* the PLayerParent's. Then, when the Layer's refcount hits 0 on
|
|
* the child side, we send __delete__() from the child to parent.
|
|
* The parent then releases its Layer, which results in the Layer
|
|
* being deleted "soon" (usually immediately).
|
|
*/
|
|
parent:
|
|
async __delete__();
|
|
};
|
|
|
|
} // layers
|
|
} // mozilla
|