Title: [269298] trunk/Source/WebCore
- Revision
- 269298
- Author
- [email protected]
- Date
- 2020-11-03 06:14:45 -0800 (Tue, 03 Nov 2020)
Log Message
[LFC] showInlineTreeAndRuns should print the inline level boxes in visual order
https://bugs.webkit.org/show_bug.cgi?id=218478
Reviewed by Antti Koivisto.
* layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::nonRootInlineLevelBoxes const):
(WebCore::Layout::LineBox::rootInlineBox):
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (269297 => 269298)
--- trunk/Source/WebCore/ChangeLog 2020-11-03 14:09:35 UTC (rev 269297)
+++ trunk/Source/WebCore/ChangeLog 2020-11-03 14:14:45 UTC (rev 269298)
@@ -1,3 +1,17 @@
+2020-11-03 Zalan Bujtas <[email protected]>
+
+ [LFC] showInlineTreeAndRuns should print the inline level boxes in visual order
+ https://bugs.webkit.org/show_bug.cgi?id=218478
+
+ Reviewed by Antti Koivisto.
+
+ * layout/inlineformatting/InlineLineBox.h:
+ (WebCore::Layout::LineBox::rootInlineBox const):
+ (WebCore::Layout::LineBox::nonRootInlineLevelBoxes const):
+ (WebCore::Layout::LineBox::rootInlineBox):
+ * layout/layouttree/LayoutTreeBuilder.cpp:
+ (WebCore::Layout::showInlineTreeAndRuns):
+
2020-11-03 Youenn Fablet <[email protected]>
REGRESSION (r269244?): ASSERTION FAILED: m_idHashSalt.isEmpty() || m_idHashSalt == salt in WebCore::Document::setDeviceIDHashSalt
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLineBox.h (269297 => 269298)
--- trunk/Source/WebCore/layout/inlineformatting/InlineLineBox.h 2020-11-03 14:09:35 UTC (rev 269297)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLineBox.h 2020-11-03 14:14:45 UTC (rev 269298)
@@ -146,6 +146,10 @@
auto inlineLevelBoxList() const { return m_inlineLevelBoxRectMap.values(); }
bool containsInlineLevelBox(const Box& layoutBox) const { return m_inlineLevelBoxRectMap.contains(&layoutBox); }
+ const InlineLevelBox& rootInlineBox() const { return *m_rootInlineBox; }
+ using InlineLevelBoxList = Vector<std::unique_ptr<InlineLevelBox>>;
+ const InlineLevelBoxList& nonRootInlineLevelBoxes() const { return m_nonRootInlineLevelBoxList; }
+
InlineLayoutUnit alignmentBaseline() const { return m_rootInlineBox->logicalTop() + m_rootInlineBox->baseline(); }
private:
@@ -158,8 +162,6 @@
void addInlineLevelBox(std::unique_ptr<InlineLevelBox>&&);
InlineLevelBox& rootInlineBox() { return *m_rootInlineBox; }
- using InlineLevelBoxList = Vector<std::unique_ptr<InlineLevelBox>>;
- const InlineLevelBoxList& nonRootInlineLevelBoxes() const { return m_nonRootInlineLevelBoxList; }
InlineLevelBox& inlineLevelBoxForLayoutBox(const Box& layoutBox) { return *m_inlineLevelBoxRectMap.get(&layoutBox); }
Modified: trunk/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp (269297 => 269298)
--- trunk/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp 2020-11-03 14:09:35 UTC (rev 269297)
+++ trunk/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp 2020-11-03 14:14:45 UTC (rev 269298)
@@ -400,29 +400,33 @@
addSpacing();
stream << " Inline level boxes:";
stream.nextLine();
+
auto& lineBox = lineBoxes[lineIndex];
- for (auto& inlineLevelBox : lineBox.inlineLevelBoxList()) {
+ auto outputInlineLevelBox = [&](const auto& inlineLevelBox) {
addSpacing();
stream << " ";
- if (inlineLevelBox->isRootInlineBox())
+ if (inlineLevelBox.isRootInlineBox())
stream << "Root inline box";
- else if (inlineLevelBox->isAtomicInlineLevelBox())
+ else if (inlineLevelBox.isAtomicInlineLevelBox())
stream << "Atomic inline level box";
- else if (inlineLevelBox->isLineBreakBox())
+ else if (inlineLevelBox.isLineBreakBox())
stream << "Line break box";
- else if (inlineLevelBox->isInlineBox())
+ else if (inlineLevelBox.isInlineBox())
stream << "Generic inline box";
else
stream << "Generic inline level box";
- auto logicalRect = lineBox.logicalRectForInlineLevelBox(inlineLevelBox->layoutBox());
+ auto logicalRect = lineBox.logicalRectForInlineLevelBox(inlineLevelBox.layoutBox());
stream
<< " at (" << logicalRect.left() << "," << logicalRect.top() << ")"
<< " size (" << logicalRect.width() << "x" << logicalRect.height() << ")"
- << " baseline (" << logicalRect.top() + inlineLevelBox->baseline() << ")"
- << " ascent (" << inlineLevelBox->baseline() << "/" << inlineLevelBox->layoutBounds().ascent << ")"
- << " descent (" << inlineLevelBox->descent().valueOr(0.0f) << "/" << inlineLevelBox->layoutBounds().descent << ")";
+ << " baseline (" << logicalRect.top() + inlineLevelBox.baseline() << ")"
+ << " ascent (" << inlineLevelBox.baseline() << "/" << inlineLevelBox.layoutBounds().ascent << ")"
+ << " descent (" << inlineLevelBox.descent().valueOr(0.0f) << "/" << inlineLevelBox.layoutBounds().descent << ")";
stream.nextLine();
- }
+ };
+ outputInlineLevelBox(lineBox.rootInlineBox());
+ for (auto& inlineLevelBox : lineBox.nonRootInlineLevelBoxes())
+ outputInlineLevelBox(*inlineLevelBox);
addSpacing();
stream << " Runs:";
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes