Bug 1651202 Part 1 - Extract nsBlockFrame's printing child lists logic to a helper methods. r=heycam

`ListChildLists` lives in nsContainerFrame because I'm going to use it
to improve nsContainerFrame::List() in a later patch.

Differential Revision: https://phabricator.services.mozilla.com/D82602
This commit is contained in:
Ting-Yu Lin 2020-07-08 00:59:02 +00:00
parent d84db7a42c
commit 358c2f9ef1
3 changed files with 21 additions and 14 deletions

View File

@ -521,20 +521,7 @@ void nsBlockFrame::List(FILE* out, const char* aPrefix,
// skip the principal list - we printed the lines above
// skip the overflow list - we printed the overflow lines above
ChildListIDs skip = {kPrincipalList, kOverflowList};
for (const auto& [list, listID] : ChildLists()) {
if (skip.contains(listID)) {
continue;
}
fprintf_stderr(out, "%s%s %p <\n", pfx.get(),
mozilla::layout::ChildListName(listID),
&GetChildList(listID));
nsCString nestedPfx(pfx);
nestedPfx += " ";
for (nsIFrame* kid : list) {
kid->List(out, nestedPfx.get(), aFlags);
}
fprintf_stderr(out, "%s>\n", pfx.get());
}
ListChildLists(out, pfx.get(), aFlags, skip);
fprintf_stderr(out, "%s>\n", aPrefix);
}

View File

@ -3297,6 +3297,24 @@ void nsContainerFrame::ListWithMatchedRules(FILE* out,
}
}
void nsContainerFrame::ListChildLists(FILE* aOut, const char* aPrefix,
ListFlags aFlags,
ChildListIDs aSkippedListIDs) const {
const nsCString nestedPfx = nsCString(aPrefix) + " "_ns;
for (const auto& [list, listID] : ChildLists()) {
if (aSkippedListIDs.contains(listID)) {
continue;
}
fprintf_stderr(aOut, "%s%s %p <\n", aPrefix, ChildListName(listID),
&GetChildList(listID));
for (nsIFrame* kid : list) {
kid->List(aOut, nestedPfx.get(), aFlags);
}
fprintf_stderr(aOut, "%s>\n", aPrefix);
}
}
void nsContainerFrame::ExtraContainerFrameInfo(nsACString& aTo) const {
(void)aTo;
}

View File

@ -66,6 +66,8 @@ class nsContainerFrame : public nsSplittableFrame {
ListFlags aFlags = ListFlags()) const override;
void ListWithMatchedRules(FILE* out = stderr,
const char* aPrefix = "") const override;
void ListChildLists(FILE* aOut, const char* aPrefix, ListFlags aFlags,
ChildListIDs aSkippedListIDs) const;
virtual void ExtraContainerFrameInfo(nsACString& aTo) const;
#endif