Name Description Size Coverage
ActiveResource.h See ActiveResourceTracker below. 1301 89 %
APZChild.cpp 3919 79 %
APZChild.h APZChild implements PAPZChild and is used to remote a GeckoContentController that lives in a different process than where APZ lives. 2775 100 %
APZCTreeManagerChild.cpp 6798 88 %
APZCTreeManagerChild.h 3256 100 %
APZCTreeManagerParent.cpp 7282 89 %
APZCTreeManagerParent.h Called when the layer tree that this protocol is connected to is adopted by another compositor, and we need to switch APZCTreeManagers. 2919 100 %
APZInputBridgeChild.cpp static 9820 76 %
APZInputBridgeChild.h 2934 100 %
APZInputBridgeParent.cpp static 7534 61 %
APZInputBridgeParent.h 2955 100 %
CanvasChild.cpp 26919 76 %
CanvasChild.h @returns true if remote canvas has been deactivated due to failure. 7056 80 %
CanvasTranslator.cpp 62849 70 %
CanvasTranslator.h Dispatches a runnable to the preferred task queue or thread. @param aRunnable the runnable to dispatch 21004 91 %
CompositableForwarder.cpp 630 100 %
CompositableForwarder.h FwdTransactionCounter issues forwarder transaction numbers that represent a sequential stream of transactions to be transported over IPDL. Since every top-level protocol represents its own independently-sequenced IPDL queue, transaction numbers most naturally align with top-level protocols, rather than have different sub-protocols with their own independent transaction numbers that can't be usefully sequenced. FwdTransactionCounter expects users of it to provide themselves as proof they are a top-level protocol to avoid issues. 7172 91 %
CompositableTransactionParent.cpp 6116 87 %
CompositableTransactionParent.h Handle the IPDL messages that affect PCompositable actors. 2238 100 %
CompositorBench.cpp 10859 -
CompositorBench.h 911 -
CompositorBridgeChild.cpp 20181 75 %
CompositorBridgeChild.h Initialize the singleton compositor bridge for a content process. 8876 83 %
CompositorBridgeParent.cpp static 70929 83 %
CompositorBridgeParent.h 26656 63 %
CompositorManagerChild.cpp static 9460 74 %
CompositorManagerChild.h 4014 100 %
CompositorManagerParent.cpp static 14020 84 %
CompositorManagerParent.h 4143 80 %
CompositorThread.cpp static 7568 91 %
CompositorThread.h Returns true if the calling thread is the compositor thread. This works even if the CompositorThread has begun to shutdown. 2307 80 %
CompositorVsyncScheduler.cpp 14108 91 %
CompositorVsyncScheduler.h Manages the vsync (de)registration and tracking on behalf of the compositor when it need to paint. Turns vsync notifications into scheduled composites. 5999 75 %
CompositorVsyncSchedulerOwner.h 1121 -
ContentCompositorBridgeParent.cpp 17270 70 %
ContentCompositorBridgeParent.h This class handles layer updates pushed directly from child processes to the compositor thread. It's associated with a CompositorBridgeParent on the compositor thread. While it uses the PCompositorBridge protocol to manage these updates, it doesn't actually drive compositing itself. For that it hands off work to the CompositorBridgeParent it's associated with. 7361 26 %
ImageBridgeChild.cpp 30174 84 %
ImageBridgeChild.h Returns true if the current thread is the ImageBrdigeChild's thread. Can be called from any thread. 13914 70 %
ImageBridgeParent.cpp static 15472 85 %
ImageBridgeParent.h ImageBridgeParent is the manager Protocol of async Compositables. 4892 91 %
IOSurfacePort.cpp 1099 -
IOSurfacePort.h mozilla_gfx_IOSurfacePort_h_ 1963 0 %
ISurfaceAllocator.cpp 7811 91 %
ISurfaceAllocator.h The allocated buffer must be efficiently mappable as a DataSourceSurface. 9048 66 %
KnowsCompositor.cpp 3861 75 %
KnowsCompositor.h An abstract interface for classes that are tied to a specific Compositor across IPDL and uses TextureFactoryIdentifier to describe this Compositor. 8084 92 %
LayersMessages.ipdlh 13402 -
LayersMessageUtils.h 49308 93 %
LayersSurfaces.ipdlh 6620 -
LayerTreeOwnerTracker.cpp 2333 91 %
LayerTreeOwnerTracker.h A utility class for tracking which content processes should be allowed to access which layer trees. ProcessId's are used to track which content process can access the layer tree, and in the case of nested browser's we use the top level content processes' ProcessId. This class is only available in the main process and gpu process. Mappings are synced from main process to the gpu process. The actual syncing happens in GPUProcessManager, and so this class should not be used directly. 2130 -
PAPZ.ipdl PAPZ is a protocol for remoting a GeckoContentController. PAPZ lives on the PCompositorBridge protocol which either connects to the compositor thread in the main process, or to the compositor thread in the gpu processs. PAPZParent lives in the compositor thread, while PAPZChild lives wherever the remoted GeckoContentController lives (generally the main thread of the main or content process). RemoteContentController implements PAPZParent, while APZChild implements PAPZChild. PAPZ is always used for ContentProcessController and only used for ChromeProcessController when there is a gpu process, otherwhise ChromeProcessController is used directly on the compositor thread. Only the methods that are used by the [Chrome,Content]ProcessController are implemented. If a new method is needed then PAPZ, APZChild, and RemoteContentController must be updated to handle it. 3335 -
PAPZCTreeManager.ipdl PAPZCTreeManager is a protocol for remoting an IAPZCTreeManager. PAPZCTreeManager lives on the PCompositorBridge protocol which either connects to the compositor thread in the main process, or to the compositor thread in the gpu processs. PAPZCTreeManagerParent lives in the compositor thread, while PAPZCTreeManagerChild lives in the main thread of the main or the content process. APZCTreeManagerParent and APZCTreeManagerChild implement this protocol. 3772 -
PAPZInputBridge.ipdl This protocol is used to send input events from the UI process to the GPU process for handling by APZ. There is one instance per top-level compositor, or in other words, one instance per concrete APZCTreeManager instance. The child side lives on the controller thread in the UI process, ie the main thread on most platforms, but the Android UI thread on Android. The parent side lives on the main thread in the GPU process. If there is no GPU process, then this protocol is not instantiated. 4260 -
PCanvas.ipdl PCanvas is the IPDL for recorded Canvas drawing. 3769 -
PCompositorBridge.ipdl The PCompositorBridge protocol is a top-level protocol for the compositor. There is an instance of the protocol for each compositor, plus one for each content process. In other words: - There is a CompositorBridgeParent/CompositorBridgeChild pair created for each "top level browser window", which has its own compositor. The CompositorBridgeChild instance lives in the UI process, and the CompositorBridgeParent lives in the GPU process (if there is one) or the UI process otherwise. - There is also a ContentCompositorBridgeParent/CompositorBridgeChild pair created for each content process. The ContentCompositorBridgeParent lives in the GPU process (if there is one) or the UI process otherwise. The CompositorBridgeChild is a singleton in the content process. Note that a given content process may have multiple browser instances (represented by BrowserChild instances), that are attached to different windows, and therefore rendered by different compositors. This means that when a browser instance sends messages via its CompositorBridgeChild, the corresponding ContentCompositorBridgeParent has to use the layers id in the message to find the correct compositor or CompositorBridgeParent to pass the message on to. One of the main goals of this protocol is to manage the PLayerTransaction sub- protocol, which is per-browser. A lot of the functions in the protocol are basically multiplexing/demultiplexing stuff in PLayerTransaction. 8849 -
PCompositorBridgeTypes.ipdlh 600 -
PCompositorManager.ipdl The PCompositorManager protocol is the top-level protocol between the compositor thread and the creators of compositors. It exists in the following conditions: - One PCompositorManager between the GPU process and each content process. If the GPU/UI processes are combined, there is one PCompositorManager between the combined GPU/UI process and each content process. - One PCompositorManager between the GPU process and the UI process. If they are combined, there is still one PCompositorManager, but both the child and parent live in the same process. The intention for this protocol is to facilitate communication with the compositor thread for compositor data that is only shared once, rather than per PCompositorBridge instance. 3581 -
PImageBridge.ipdl The PImageBridge protocol is used to allow isolated threads or processes to push frames directly to the compositor thread/process without relying on the main thread which might be too busy dealing with content script. 2592 -
PNativeLayerRemote.ipdl 2405 -
PTexture.ipdl PTexture is the IPDL glue between a TextureClient and a TextureHost. 1090 -
PUiCompositorController.ipdl The PUiCompositorController protocol is used to pause and resume the compositor from the UI thread. Primarily used on Android to coordinate registering and releasing the surface with the compositor. 2080 -
PVideoBridge.ipdl The PVideoBridge protocol is used to share textures from the video decoders to the compositor. 1328 -
PWebRenderBridge.ipdl 6402 -
RefCountedShmem.cpp 2343 82 %
RefCountedShmem.h 1320 -
RemoteContentController.cpp 21225 58 %
RemoteContentController.h RemoteContentController implements PAPZChild and is used to access a GeckoContentController that lives in a different process. RemoteContentController lives on the compositor thread. All methods can be called off the compositor thread and will get dispatched to the right thread, with the exception of RequestContentRepaint and NotifyFlushComplete, which must be called on the repaint thread, which in this case is the compositor thread. 4982 100 %
ShadowLayerUtils.h 892 -
SharedPlanarYCbCrImage.cpp 6920 82 %
SharedPlanarYCbCrImage.h 2308 33 %
SharedRGBImage.cpp 5898 0 %
SharedRGBImage.h Stores RGB data in shared memory It is assumed that the image width and stride are equal 1738 0 %
SharedSurfacesChild.cpp static 20940 94 %
SharedSurfacesChild.h Request that the surface be mapped into the compositor thread's memory space. This is useful for when the caller itself has no present need for the surface to be mapped, but knows there will be such a need in the future. This may be called from any thread, but it may cause a dispatch to the main thread. 8646 71 %
SharedSurfacesMemoryReport.h 1709 0 %
SharedSurfacesParent.cpp static 12949 63 %
SharedSurfacesParent.h Helper class that is used to keep SourceSurfaceSharedDataWrapper objects around as long as one of the dependent IPDL actors is still alive and may reference them for a given PCompositorManager namespace. 5604 82 %
SurfaceDescriptor.h 509 -
SynchronousTask.h 2085 79 %
TextureForwarder.h An abstract interface for classes that implement the autogenerated IPDL actor class. Lets us check if they are still valid for IPC. 2899 63 %
UiCompositorControllerChild.cpp static 13544 0 %
UiCompositorControllerChild.h 5901 0 %
UiCompositorControllerMessageTypes.h 1288 -
UiCompositorControllerParent.cpp static 10346 6 %
UiCompositorControllerParent.h 3500 0 %
VideoBridgeChild.cpp static 5617 71 %
VideoBridgeChild.h 3197 38 %
VideoBridgeParent.cpp static 9891 60 %
VideoBridgeParent.h 3236 50 %
VideoBridgeUtils.h 1020 -
WebRenderMessages.ipdlh 5066 -