Bug 1104266 - Add logging of nsDisplayLayerEventRegions fields in the display list dump. r=mattwoodrow

This commit is contained in:
Kartikaya Gupta 2014-11-25 08:45:20 -05:00
Родитель 4a94a25a0d
Коммит 3b921e945e
4 изменённых файлов: 42 добавлений и 1 удалений

Просмотреть файл

@ -107,6 +107,23 @@ AppendToString(std::stringstream& aStream, const nsIntRect& r,
aStream << sfx;
}
void
AppendToString(std::stringstream& aStream, const nsRegion& r,
const char* pfx, const char* sfx)
{
aStream << pfx;
nsRegionRectIterator it(r);
aStream << "< ";
while (const nsRect* sr = it.Next()) {
AppendToString(aStream, *sr);
aStream << "; ";
}
aStream << ">";
aStream << sfx;
}
void
AppendToString(std::stringstream& aStream, const nsIntRegion& r,
const char* pfx, const char* sfx)

Просмотреть файл

@ -13,7 +13,7 @@
#include "mozilla/layers/CompositorTypes.h" // for TextureFlags
#include "nsAString.h"
#include "nsPrintfCString.h" // for nsPrintfCString
#include "nsRegion.h" // for nsIntRegion
#include "nsRegion.h" // for nsRegion, nsIntRegion
#include "nscore.h" // for nsACString, etc
struct gfxRGBA;
@ -93,6 +93,10 @@ AppendToString(std::stringstream& aStream, const mozilla::gfx::IntRectTyped<T>&
aStream << sfx;
}
void
AppendToString(std::stringstream& aStream, const nsRegion& r,
const char* pfx="", const char* sfx="");
void
AppendToString(std::stringstream& aStream, const nsIntRegion& r,
const char* pfx="", const char* sfx="");

Просмотреть файл

@ -2988,6 +2988,22 @@ nsDisplayLayerEventRegions::AddInactiveScrollPort(const nsRect& aRect)
mDispatchToContentHitRegion.Or(mDispatchToContentHitRegion, aRect);
}
#ifdef MOZ_DUMP_PAINTING
void
nsDisplayLayerEventRegions::WriteDebugInfo(std::stringstream& aStream)
{
if (!mHitRegion.IsEmpty()) {
AppendToString(aStream, mHitRegion, " (hitRegion ", ")");
}
if (!mMaybeHitRegion.IsEmpty()) {
AppendToString(aStream, mMaybeHitRegion, " (maybeHitRegion ", ")");
}
if (!mDispatchToContentHitRegion.IsEmpty()) {
AppendToString(aStream, mDispatchToContentHitRegion, " (dispatchToContentRegion ", ")");
}
}
#endif
nsDisplayCaret::nsDisplayCaret(nsDisplayListBuilder* aBuilder,
nsIFrame* aCaretFrame)
: nsDisplayItem(aBuilder, aCaretFrame)

Просмотреть файл

@ -2629,6 +2629,10 @@ public:
const nsRegion& MaybeHitRegion() { return mMaybeHitRegion; }
const nsRegion& DispatchToContentHitRegion() { return mDispatchToContentHitRegion; }
#ifdef MOZ_DUMP_PAINTING
virtual void WriteDebugInfo(std::stringstream& aStream) MOZ_OVERRIDE;
#endif
private:
// Relative to aFrame's reference frame.
// These are the points that are definitely in the hit region.