Modified: trunk/Source/WebCore/ChangeLog (272601 => 272602)
--- trunk/Source/WebCore/ChangeLog 2021-02-09 20:24:36 UTC (rev 272601)
+++ trunk/Source/WebCore/ChangeLog 2021-02-09 20:27:58 UTC (rev 272602)
@@ -1,5 +1,17 @@
2021-02-09 Zalan Bujtas <[email protected]>
+ [LFC][IFC] Disable BIDI processing for modern line layout
+ https://bugs.webkit.org/show_bug.cgi?id=221615
+
+ Reviewed by Sam Weinig.
+
+ This was added in preparation for BIDI content support but we are not there yet. Let's just disable it for now.
+
+ * layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
+ (WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
+
+2021-02-09 Zalan Bujtas <[email protected]>
+
[LFC][Integration] Style change on an inline box should trigger invalidation
https://bugs.webkit.org/show_bug.cgi?id=221573
Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationInlineContentBuilder.cpp (272601 => 272602)
--- trunk/Source/WebCore/layout/integration/LayoutIntegrationInlineContentBuilder.cpp 2021-02-09 20:24:36 UTC (rev 272601)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationInlineContentBuilder.cpp 2021-02-09 20:27:58 UTC (rev 272602)
@@ -42,6 +42,8 @@
namespace WebCore {
namespace LayoutIntegration {
+#define PROCESS_BIDI_CONTENT 0
+
struct LineLevelVisualAdjustmentsForRuns {
bool needsIntegralPosition { false };
// It's only 'text-overflow: ellipsis' for now.
@@ -60,6 +62,7 @@
return std::max(lineBoxLogicalWidth, lineContentLogicalWidth);
}
+#if PROCESS_BIDI_CONTENT
class Iterator {
public:
Iterator() = default;
@@ -145,6 +148,7 @@
else
m_level = (direction == U_RIGHT_TO_LEFT) ? m_level + 1 : (direction == U_ARABIC_NUMBER || direction == U_EUROPEAN_NUMBER) ? m_level + 2 : m_level;
}
+#endif
InlineContentBuilder::InlineContentBuilder(const Layout::LayoutState& layoutState, const RenderBlockFlow& blockFlow)
: m_layoutState(layoutState)
@@ -202,6 +206,7 @@
return;
auto& lines = inlineFormattingState.lines();
+#if PROCESS_BIDI_CONTENT
BidiResolver<Iterator, BidiRun> bidiResolver;
// FIXME: Add support for override.
bidiResolver.setStatus(BidiStatus(m_layoutState.root().style().direction(), false));
@@ -208,6 +213,7 @@
// FIXME: Grab the nested isolates from the previous line.
bidiResolver.setPosition(Iterator(&runList, 0), 0);
bidiResolver.createBidiRunsForLine(Iterator(&runList, runList.size()));
+#endif
Vector<bool> hasAdjustedTrailingLineList(lines.size(), false);
@@ -287,18 +293,13 @@
inlineContent.runs.append(displayRun);
};
- auto& bidiRuns = bidiResolver.runs();
- if (bidiRuns.runCount() == 1) {
- // Fast path for cases when there's no bidi boundary.
- inlineContent.runs.reserveInitialCapacity(inlineFormattingState.lineRuns().size());
- for (auto& lineRun : inlineFormattingState.lineRuns()) {
- if (auto& text = lineRun.text())
- createDisplayTextRunForRange(lineRun, text->start(), text->end());
- else
- createDisplayBoxRun(lineRun);
- }
- } else
- ASSERT_NOT_IMPLEMENTED_YET();
+ inlineContent.runs.reserveInitialCapacity(inlineFormattingState.lineRuns().size());
+ for (auto& lineRun : inlineFormattingState.lineRuns()) {
+ if (auto& text = lineRun.text())
+ createDisplayTextRunForRange(lineRun, text->start(), text->end());
+ else
+ createDisplayBoxRun(lineRun);
+ }
}
void InlineContentBuilder::createDisplayLines(const Layout::InlineFormattingState& inlineFormattingState, InlineContent& inlineContent, const LineLevelVisualAdjustmentsForRunsList& lineLevelVisualAdjustmentsForRuns) const