From 4f031794922127aec7b4583b93e125cd198f111a Mon Sep 17 00:00:00 2001 From: Botond Ballo Date: Tue, 25 Feb 2014 10:56:46 -0500 Subject: [PATCH] Bug 958596 - Print ScrollableLayerGuids of APZCs when printing the tree. r=kats --HG-- extra : rebase_source : cc3688109bb8a8a074e24b2f0268fdc556f05c1f --- gfx/layers/FrameMetrics.h | 6 ++++++ gfx/layers/composite/APZCTreeManager.cpp | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gfx/layers/FrameMetrics.h b/gfx/layers/FrameMetrics.h index c60b7eeff0d..363972d5fbb 100644 --- a/gfx/layers/FrameMetrics.h +++ b/gfx/layers/FrameMetrics.h @@ -12,6 +12,7 @@ #include "mozilla/gfx/BasePoint.h" // for BasePoint #include "mozilla/gfx/Rect.h" // for RoundedIn #include "mozilla/gfx/ScaleFactor.h" // for ScaleFactor +#include "mozilla/gfx/Logging.h" // for Log namespace IPC { template struct ParamTraits; @@ -425,6 +426,11 @@ struct ScrollableLayerGuid { } }; +template +gfx::Log& operator<<(gfx::Log& log, const ScrollableLayerGuid& aGuid) { + return log << '(' << aGuid.mLayersId << ',' << aGuid.mPresShellId << ',' << aGuid.mScrollId << ')'; +} + struct ZoomConstraints { bool mAllowZoom; bool mAllowDoubleTapZoom; diff --git a/gfx/layers/composite/APZCTreeManager.cpp b/gfx/layers/composite/APZCTreeManager.cpp index bc2c5940da6..74b9ba63a37 100644 --- a/gfx/layers/composite/APZCTreeManager.cpp +++ b/gfx/layers/composite/APZCTreeManager.cpp @@ -170,7 +170,8 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, // be possible because of DLBI heuristics) then we don't want to keep using // the same old APZC for the new content. Null it out so we run through the // code to find another one or create one. - if (apzc && !apzc->Matches(ScrollableLayerGuid(aLayersId, container->GetFrameMetrics()))) { + ScrollableLayerGuid guid(aLayersId, container->GetFrameMetrics()); + if (apzc && !apzc->Matches(guid)) { apzc = nullptr; } @@ -181,9 +182,8 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, // underlying content for which the APZC was originally created is still // there. So it makes sense to pick up that APZC instance again and use it here. if (apzc == nullptr) { - ScrollableLayerGuid target(aLayersId, container->GetFrameMetrics()); for (size_t i = 0; i < aApzcsToDestroy->Length(); i++) { - if (aApzcsToDestroy->ElementAt(i)->Matches(target)) { + if (aApzcsToDestroy->ElementAt(i)->Matches(guid)) { apzc = aApzcsToDestroy->ElementAt(i); break; } @@ -234,7 +234,7 @@ APZCTreeManager::UpdatePanZoomControllerTree(CompositorParent* aCompositor, visible.width, visible.height, apzc); - sApzcTreeLog << "APZC " + sApzcTreeLog << "APZC " << guid << "\tcb=" << visible << "\tsr=" << container->GetFrameMetrics().mScrollableRect << "\t" << container->GetFrameMetrics().GetContentDescription();