Name Description Size
APZCTreeManagerChild.cpp 6047
APZCTreeManagerChild.h 3255
APZCTreeManagerParent.cpp 6661
APZCTreeManagerParent.h Called when the layer tree that this protocol is connected to is adopted by another compositor, and we need to switch APZCTreeManagers. 2771
APZChild.cpp 3158
APZChild.h APZChild implements PAPZChild and is used to remote a GeckoContentController that lives in a different process than where APZ lives. 2148
APZInputBridgeChild.cpp 3554
APZInputBridgeChild.h 1426
APZInputBridgeParent.cpp 4049
APZInputBridgeParent.h 2562
CanvasChild.cpp 8939
CanvasChild.h Ensures that the DrawEventRecorder has been created. @params aTextureType the TextureType to create in the CanvasTranslator. 4070
CanvasThread.cpp static 5686
CanvasThread.h The CanvasThreadHolder is used to manage the lifetime of the canvas thread (IPC) and workers and also provides methods for using them. 3165
CanvasTranslator.cpp static 15655
CanvasTranslator.h Create an uninitialized CanvasTranslator and bind it to the given endpoint on the CanvasPlaybackLoop. @param aEndpoint the endpoint to bind to @return the new CanvasTranslator 10145
CompositableForwarder.h A transaction is a set of changes that happenned on the content side, that should be sent to the compositor side. CompositableForwarder is an interface to manage a transaction of compositable objetcs. ShadowLayerForwarder is an example of a CompositableForwarder (that can additionally forward modifications of the Layer tree). ImageBridgeChild is another CompositableForwarder. CompositableForwarder implements KnowsCompositor for simplicity as all implementations of CompositableForwarder currently also implement KnowsCompositor. This dependency could be split if we add new use cases. 5336
CompositableTransactionParent.cpp 11583
CompositableTransactionParent.h Handle the IPDL messages that affect PCompositable actors. 2375
CompositorBench.cpp 10763
CompositorBench.h 911
CompositorBridgeChild.cpp 43624
CompositorBridgeChild.h Initialize the singleton compositor bridge for a content process. 15762
CompositorBridgeParent.cpp 103835
CompositorBridgeParent.h 35371
CompositorManagerChild.cpp static 8763
CompositorManagerChild.h 3615
CompositorManagerParent.cpp static 11687
CompositorManagerParent.h 3040
CompositorThread.cpp static 5050
CompositorThread.h Creates the compositor thread and the global compositor map. 1878
CompositorVsyncScheduler.cpp 12960
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. 5274
CompositorVsyncSchedulerOwner.h 1015
ContentCompositorBridgeParent.cpp aManager 27283
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. 9910
ISurfaceAllocator.cpp static 7490
ISurfaceAllocator.h The allocated buffer must be efficiently mappable as a DataSourceSurface. 8750
ImageBridgeChild.cpp 32868
ImageBridgeChild.h Returns true if the current thread is the ImageBrdigeChild's thread. Can be called from any thread. 15163
ImageBridgeParent.cpp static 23875
ImageBridgeParent.h ImageBridgeParent is the manager Protocol of async Compositables. 6281
KnowsCompositor.h See ActiveResourceTracker below. 6084
LayerAnimationUtils.cpp static 1523
LayerAnimationUtils.h 798
LayerTransactionChild.cpp 1245
LayerTransactionChild.h Clean this up, finishing with SendShutDown() which will cause __delete__ to be sent from the parent side. It is expected (checked with an assert) that all shadow layers created by this have already been destroyed and Send__delete__()d by the time this method is called. 2146
LayerTransactionParent.cpp 34904
LayerTransactionParent.h 8744
LayerTreeOwnerTracker.cpp 2121
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. 2114
LayersMessageUtils.h 37415
LayersMessages.ipdlh 16258
LayersSurfaces.ipdlh 4279
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. 3126
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. 3293
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 main thread in the UI process, and the parent side lives on the main thread in the GPU process. If there is no GPU process, then this protocol is not instantiated. 3108
PCanvas.ipdl PCanvas is the IPDL for recorded Canvas drawing. 1517
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. 12551
PCompositorBridgeTypes.ipdlh 476
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. 3551
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. 2919
PLayerTransaction.ipdl The layers protocol is spoken between thread contexts that manage layer (sub)trees. The protocol comprises atomically publishing layer subtrees to a "shadow" thread context (which grafts the subtree into its own tree), and atomically updating a published subtree. ("Atomic" in this sense is wrt painting.) 4904
PTexture.ipdl PTexture is the IPDL glue between a TextureClient and a TextureHost. 1071
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. 1714
PVideoBridge.ipdl The PVideoBridge protocol is used to share textures from the video decoders to the compositor. 931
PWebRenderBridge.ipdl 5091
RefCountedShmem.cpp 2418
RefCountedShmem.h 1320
RemoteContentController.cpp 15142
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. 4225
ShadowLayerUtils.h 1556
ShadowLayerUtilsMac.cpp static 934
ShadowLayerUtilsX11.cpp static 4906
ShadowLayerUtilsX11.h 2680
ShadowLayers.cpp 34759
ShadowLayers.h 18553
SharedPlanarYCbCrImage.cpp 6319
SharedPlanarYCbCrImage.h 2061
SharedRGBImage.cpp 6210
SharedRGBImage.h Stores RGB data in shared memory It is assumed that the image width and stride are equal 1851
SharedSurfacesChild.cpp static 23352
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. 9758
SharedSurfacesMemoryReport.h 2461
SharedSurfacesParent.cpp static 8217
SharedSurfacesParent.h 2853
SynchronousTask.h 1370
TextureForwarder.h An abstract interface for classes that implement the autogenerated IPDL actor class. Lets us check if they are still valid for IPC. 2827
ThreadSafeRefcountingWithMainThreadDestruction.h 4413
UiCompositorControllerChild.cpp static 10057
UiCompositorControllerChild.h 3331
UiCompositorControllerMessageTypes.h 2437
UiCompositorControllerParent.cpp static 11656
UiCompositorControllerParent.h 3918
VideoBridgeChild.cpp static 5710
VideoBridgeChild.h 3591
VideoBridgeParent.cpp static 4591
VideoBridgeParent.h 2896
VideoBridgeUtils.h 994
WebRenderMessages.ipdlh 4629
fuzztest 2