Name Description Size
AsyncImagePipelineManager.cpp static 26551
AsyncImagePipelineManager.h 10602
ClipManager.cpp 16007
ClipManager.h This class manages creating and assigning scroll layers and clips in WebRender based on the gecko display list. It has a few public functions that are intended to be invoked while traversing the Gecko display list, and it uses the ASR and clip information from the display list to create the necessary clip state in WebRender. The structure of the clip state in WebRender ends up quite similar to how it is in Gecko. For each ASR in Gecko, we create a scroll layer (i.e. a scrolling clip) in WebRender; these form a tree structure similar to the ASR tree structure. Ancestors of scroll layers are always other scroll layers, or the root scroll node. The DisplayItemClipChain list of clips from the gecko display list is converted to a WR clip chain and pushed on the stack prior to creating any WR commands for that item, and is popped afterwards. In addition, the WR clip chain has a parent pointer, which points to the clip chain for any enclosing stacking context. This again results in a strucuture very similar to that in Gecko, where the clips from container display items get applied to the contained display items. 6473
DisplayItemCache.cpp 5023
DisplayItemCache.h DisplayItemCache keeps track of which Gecko display items have already had their respective WebRender display items sent to WebRender backend. Ideally creating the WR display items for a Gecko display item would not depend on any external state. However currently pipeline id, clip id, and spatial id can change between display lists, even if the Gecko display items have not. This state is tracked by DisplayItemCache. 6084
HitTestInfoManager.cpp TODO(miko): This used to be a performance bottle-neck, but it does not show up in profiles anymore, see bugs 1424637 and 1424968. A better way of doing this would be to store current app units per dev pixel in wr::DisplayListBuilder, and update it whenever display items that separate presshell boundaries are encountered. 4314
HitTestInfoManager.h This class extracts the hit testing information (area, flags, ViewId) from Gecko display items and pushes them into WebRender display list. The hit testing information is deduplicated: a new hit test item is only added if the new area is not contained in the previous area, or if the flags, ViewId, or current spatial id is different. 1877
IpcResourceUpdateQueue.cpp 16366
IpcResourceUpdateQueue.h 7580
OMTAController.cpp 1267
OMTAController.h This class just delegates the jank animations notification to the compositor thread from the sampler thread. 1280
OMTASampler.cpp static 8605
OMTASampler.h This interface exposes OMTA methods related to "sampling" (i.e. calculating animating values) and "". All sampling methods should be called on the sampler thread, all some of them should be called on the compositor thread. 5553
RenderRootStateManager.cpp 7769
RenderRootTypes.cpp 4510
RenderRootTypes.h GFX_RENDERROOTTYPES_H 2210
StackingContextHelper.cpp aCanDraw2D = 5826
StackingContextHelper.h This is a helper class that pushes/pops a stacking context, and manages some of the coordinate space transformations needed. 5908
WebRenderBridgeChild.cpp 20366
WebRenderBridgeChild.h Clean this up, finishing with SendShutDown() which will cause __delete__ to be sent from the parent side. 9742
WebRenderBridgeParent.cpp 92745
WebRenderBridgeParent.h 21122
WebRenderCanvasRenderer.cpp 2670
WebRenderCanvasRenderer.h 1505
WebRenderCommandBuilder.cpp 107422
WebRenderCommandBuilder.h 9177
WebRenderDrawEventRecorder.cpp 1092
WebRenderDrawEventRecorder.h 1543
WebRenderImageHost.cpp 9321
WebRenderImageHost.h ImageHost. Works with ImageClientSingle and ImageClientBuffered 3577
WebRenderLayerManager.cpp aIsSync 27073
WebRenderLayerManager.h 10169
WebRenderMessageUtils.h 5195
WebRenderScrollData.cpp 15579
WebRenderScrollData.h 12240
WebRenderScrollDataWrapper.h This class is a wrapper to walk through a WebRenderScrollData object, with an exposed API that is template-compatible to LayerMetricsWrapper. This allows APZ to walk through both layer trees and WebRender scroll metadata structures without a lot of code duplication. (Note that not all functions from LayerMetricsWrapper are implemented here, only the ones we've needed in APZ code so far.) A WebRenderScrollData object is basically a flattened layer tree, with a number of WebRenderLayerScrollData objects that have a 1:1 correspondence to layers in a layer tree. Therefore the mLayer pointer in this class can be considered equivalent to the mLayer pointer in the LayerMetricsWrapper. There are some extra fields (mData, mLayerIndex, mContainingSubtreeLastIndex) to move around between these "layers" given the flattened representation. The mMetadataIndex field in this class corresponds to the mIndex field in LayerMetricsWrapper, as both classes also need to manage walking through "virtual" container layers implied by the list of ScrollMetadata objects. One important note here is that this class holds a pointer to the "owning" WebRenderScrollData. The caller must ensure that this class does not outlive the owning WebRenderScrollData, or this may result in use-after-free errors. This class being declared a MOZ_STACK_CLASS should help with that. Refer to LayerMetricsWrapper.h for actual documentation on the exposed API. 14957
WebRenderTextureHost.cpp 8507
WebRenderTextureHost.h 3948
WebRenderUserData.cpp static 14900
WebRenderUserData.h 12330