Bug 989054 - Update the rendertrace output to handle displayport margins. r=botond

This commit is contained in:
Kartikaya Gupta 2014-04-10 03:15:09 -04:00
parent ec7db4d4d0
commit c6a911d3e8

View File

@ -1485,14 +1485,26 @@ void AsyncPanZoomController::RequestContentRepaint(FrameMetrics& aFrameMetrics)
mLastPaintRequestMetrics = aFrameMetrics;
}
/*static*/ CSSRect
GetDisplayPortRect(const FrameMetrics& aFrameMetrics)
{
// This computation is based on what happens in CalculatePendingDisplayPort. If that
// changes then this might need to change too
CSSRect baseRect(aFrameMetrics.GetScrollOffset(),
CSSSize(std::min(aFrameMetrics.CalculateCompositedSizeInCssPixels().width,
aFrameMetrics.GetRootCompositionSize().width),
std::min(aFrameMetrics.CalculateCompositedSizeInCssPixels().height,
aFrameMetrics.GetRootCompositionSize().height)));
baseRect.Inflate(aFrameMetrics.GetDisplayPortMargins() / aFrameMetrics.LayersPixelsPerCSSPixel());
return baseRect;
}
void
AsyncPanZoomController::DispatchRepaintRequest(const FrameMetrics& aFrameMetrics) {
nsRefPtr<GeckoContentController> controller = GetGeckoContentController();
if (controller) {
APZC_LOG_FM(aFrameMetrics, "%p requesting content repaint", this);
LogRendertraceRect(GetGuid(), "requested displayport", "yellow",
aFrameMetrics.mDisplayPort + aFrameMetrics.GetScrollOffset());
LogRendertraceRect(GetGuid(), "requested displayport", "yellow", GetDisplayPortRect(aFrameMetrics));
controller->RequestContentRepaint(aFrameMetrics);
mLastDispatchedPaintMetrics = aFrameMetrics;