зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1292930: Hoist ChangeHintToString to RestyleManagerBase. r=heycam
MozReview-Commit-ID: BLW40PYhc0o
This commit is contained in:
Родитель
3f8ce6d753
Коммит
ffa9466398
|
@ -3910,67 +3910,6 @@ RestyleManager::StructsToLog()
|
|||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
/* static */ nsCString
|
||||
RestyleManager::ChangeHintToString(nsChangeHint aHint)
|
||||
{
|
||||
nsCString result;
|
||||
bool any = false;
|
||||
const char* names[] = {
|
||||
"RepaintFrame", "NeedReflow", "ClearAncestorIntrinsics",
|
||||
"ClearDescendantIntrinsics", "NeedDirtyReflow", "SyncFrameView",
|
||||
"UpdateCursor", "UpdateEffects", "UpdateOpacityLayer",
|
||||
"UpdateTransformLayer", "ReconstructFrame", "UpdateOverflow",
|
||||
"UpdateSubtreeOverflow", "UpdatePostTransformOverflow",
|
||||
"UpdateParentOverflow",
|
||||
"ChildrenOnlyTransform", "RecomputePosition", "AddOrRemoveTransform",
|
||||
"BorderStyleNoneChange", "UpdateTextPath", "SchedulePaint",
|
||||
"NeutralChange", "InvalidateRenderingObservers",
|
||||
"ReflowChangesSizeOrPosition", "UpdateComputedBSize",
|
||||
"UpdateUsesOpacity"
|
||||
};
|
||||
uint32_t hint = aHint & ((1 << ArrayLength(names)) - 1);
|
||||
uint32_t rest = aHint & ~((1 << ArrayLength(names)) - 1);
|
||||
if (hint == nsChangeHint_Hints_NotHandledForDescendants) {
|
||||
result.AppendLiteral("nsChangeHint_Hints_NotHandledForDescendants");
|
||||
hint = 0;
|
||||
any = true;
|
||||
} else {
|
||||
if ((hint & NS_STYLE_HINT_REFLOW) == NS_STYLE_HINT_REFLOW) {
|
||||
result.AppendLiteral("NS_STYLE_HINT_REFLOW");
|
||||
hint = hint & ~NS_STYLE_HINT_REFLOW;
|
||||
any = true;
|
||||
} else if ((hint & nsChangeHint_AllReflowHints) == nsChangeHint_AllReflowHints) {
|
||||
result.AppendLiteral("nsChangeHint_AllReflowHints");
|
||||
hint = hint & ~nsChangeHint_AllReflowHints;
|
||||
any = true;
|
||||
} else if ((hint & NS_STYLE_HINT_VISUAL) == NS_STYLE_HINT_VISUAL) {
|
||||
result.AppendLiteral("NS_STYLE_HINT_VISUAL");
|
||||
hint = hint & ~NS_STYLE_HINT_VISUAL;
|
||||
any = true;
|
||||
}
|
||||
}
|
||||
for (uint32_t i = 0; i < ArrayLength(names); i++) {
|
||||
if (hint & (1 << i)) {
|
||||
if (any) {
|
||||
result.AppendLiteral(" | ");
|
||||
}
|
||||
result.AppendPrintf("nsChangeHint_%s", names[i]);
|
||||
any = true;
|
||||
}
|
||||
}
|
||||
if (rest) {
|
||||
if (any) {
|
||||
result.AppendLiteral(" | ");
|
||||
}
|
||||
result.AppendPrintf("0x%0x", rest);
|
||||
} else {
|
||||
if (!any) {
|
||||
result.AppendLiteral("nsChangeHint(0)");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* static */ nsCString
|
||||
RestyleManager::StructNamesToString(uint32_t aSIDs)
|
||||
{
|
||||
|
|
|
@ -380,10 +380,6 @@ public:
|
|||
PostRestyleEventInternal(true);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
static nsCString ChangeHintToString(nsChangeHint aHint);
|
||||
#endif
|
||||
|
||||
public:
|
||||
/**
|
||||
* Asynchronously clear style data from the root frame downwards and ensure
|
||||
|
|
|
@ -136,6 +136,69 @@ RestyleManagerBase::RestyleHintToString(nsRestyleHint aHint)
|
|||
return result;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
/* static */ nsCString
|
||||
RestyleManagerBase::ChangeHintToString(nsChangeHint aHint)
|
||||
{
|
||||
nsCString result;
|
||||
bool any = false;
|
||||
const char* names[] = {
|
||||
"RepaintFrame", "NeedReflow", "ClearAncestorIntrinsics",
|
||||
"ClearDescendantIntrinsics", "NeedDirtyReflow", "SyncFrameView",
|
||||
"UpdateCursor", "UpdateEffects", "UpdateOpacityLayer",
|
||||
"UpdateTransformLayer", "ReconstructFrame", "UpdateOverflow",
|
||||
"UpdateSubtreeOverflow", "UpdatePostTransformOverflow",
|
||||
"UpdateParentOverflow",
|
||||
"ChildrenOnlyTransform", "RecomputePosition", "AddOrRemoveTransform",
|
||||
"BorderStyleNoneChange", "UpdateTextPath", "SchedulePaint",
|
||||
"NeutralChange", "InvalidateRenderingObservers",
|
||||
"ReflowChangesSizeOrPosition", "UpdateComputedBSize",
|
||||
"UpdateUsesOpacity"
|
||||
};
|
||||
uint32_t hint = aHint & ((1 << ArrayLength(names)) - 1);
|
||||
uint32_t rest = aHint & ~((1 << ArrayLength(names)) - 1);
|
||||
if (hint == nsChangeHint_Hints_NotHandledForDescendants) {
|
||||
result.AppendLiteral("nsChangeHint_Hints_NotHandledForDescendants");
|
||||
hint = 0;
|
||||
any = true;
|
||||
} else {
|
||||
if ((hint & NS_STYLE_HINT_REFLOW) == NS_STYLE_HINT_REFLOW) {
|
||||
result.AppendLiteral("NS_STYLE_HINT_REFLOW");
|
||||
hint = hint & ~NS_STYLE_HINT_REFLOW;
|
||||
any = true;
|
||||
} else if ((hint & nsChangeHint_AllReflowHints) == nsChangeHint_AllReflowHints) {
|
||||
result.AppendLiteral("nsChangeHint_AllReflowHints");
|
||||
hint = hint & ~nsChangeHint_AllReflowHints;
|
||||
any = true;
|
||||
} else if ((hint & NS_STYLE_HINT_VISUAL) == NS_STYLE_HINT_VISUAL) {
|
||||
result.AppendLiteral("NS_STYLE_HINT_VISUAL");
|
||||
hint = hint & ~NS_STYLE_HINT_VISUAL;
|
||||
any = true;
|
||||
}
|
||||
}
|
||||
for (uint32_t i = 0; i < ArrayLength(names); i++) {
|
||||
if (hint & (1 << i)) {
|
||||
if (any) {
|
||||
result.AppendLiteral(" | ");
|
||||
}
|
||||
result.AppendPrintf("nsChangeHint_%s", names[i]);
|
||||
any = true;
|
||||
}
|
||||
}
|
||||
if (rest) {
|
||||
if (any) {
|
||||
result.AppendLiteral(" | ");
|
||||
}
|
||||
result.AppendPrintf("0x%0x", rest);
|
||||
} else {
|
||||
if (!any) {
|
||||
result.AppendLiteral("nsChangeHint(0)");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
RestyleManagerBase::PostRestyleEventInternal(bool aForLazyConstruction)
|
||||
{
|
||||
|
|
|
@ -48,6 +48,8 @@ public:
|
|||
static nsCString RestyleHintToString(nsRestyleHint aHint);
|
||||
|
||||
#ifdef DEBUG
|
||||
static nsCString ChangeHintToString(nsChangeHint aHint);
|
||||
|
||||
/**
|
||||
* DEBUG ONLY method to verify integrity of style tree versus frame tree
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче