Title: [270164] trunk/Source/WebCore
- Revision
- 270164
- Author
- [email protected]
- Date
- 2020-11-22 06:52:43 -0800 (Sun, 22 Nov 2020)
Log Message
[LFC][Integration] Convert some remaining InlineBox access to use inline iterator
https://bugs.webkit.org/show_bug.cgi?id=219244
Reviewed by Zalan Bujtas.
* dom/Position.cpp:
(WebCore::hasInlineRun):
(WebCore::nextRenderedEditable):
(WebCore::previousRenderedEditable):
(WebCore::hasInlineBoxWrapper): Deleted.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const):
* rendering/RenderText.cpp:
(WebCore::RenderText::topOfFirstText const): Deleted.
* rendering/RenderText.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (270163 => 270164)
--- trunk/Source/WebCore/ChangeLog 2020-11-22 13:52:24 UTC (rev 270163)
+++ trunk/Source/WebCore/ChangeLog 2020-11-22 14:52:43 UTC (rev 270164)
@@ -1,3 +1,21 @@
+2020-11-22 Antti Koivisto <[email protected]>
+
+ [LFC][Integration] Convert some remaining InlineBox access to use inline iterator
+ https://bugs.webkit.org/show_bug.cgi?id=219244
+
+ Reviewed by Zalan Bujtas.
+
+ * dom/Position.cpp:
+ (WebCore::hasInlineRun):
+ (WebCore::nextRenderedEditable):
+ (WebCore::previousRenderedEditable):
+ (WebCore::hasInlineBoxWrapper): Deleted.
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::getLeadingCorner const):
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::topOfFirstText const): Deleted.
+ * rendering/RenderText.h:
+
2020-11-22 Zalan Bujtas <[email protected]>
[LFC][IFC] Only process floats that fit the current line.
Modified: trunk/Source/WebCore/dom/Position.cpp (270163 => 270164)
--- trunk/Source/WebCore/dom/Position.cpp 2020-11-22 13:52:24 UTC (rev 270163)
+++ trunk/Source/WebCore/dom/Position.cpp 2020-11-22 14:52:43 UTC (rev 270164)
@@ -68,13 +68,13 @@
using namespace HTMLNames;
-static bool hasInlineBoxWrapper(RenderObject& renderer)
+static bool hasInlineRun(RenderObject& renderer)
{
- if (is<RenderBox>(renderer) && downcast<RenderBox>(renderer).inlineBoxWrapper())
+ if (is<RenderBox>(renderer) && LayoutIntegration::runFor(downcast<RenderBox>(renderer)))
return true;
- if (is<RenderText>(renderer) && downcast<RenderText>(renderer).firstTextBox())
+ if (is<RenderText>(renderer) && LayoutIntegration::firstTextRunFor(downcast<RenderText>(renderer)))
return true;
- if (is<RenderLineBreak>(renderer) && downcast<RenderLineBreak>(renderer).inlineBoxWrapper())
+ if (is<RenderLineBreak>(renderer) && LayoutIntegration::runFor(downcast<RenderLineBreak>(renderer)))
return true;
return false;
}
@@ -85,7 +85,7 @@
RenderObject* renderer = node->renderer();
if (!renderer || !node->hasEditableStyle())
continue;
- if (hasInlineBoxWrapper(*renderer))
+ if (hasInlineRun(*renderer))
return node;
}
return nullptr;
@@ -97,7 +97,7 @@
RenderObject* renderer = node->renderer();
if (!renderer || !node->hasEditableStyle())
continue;
- if (hasInlineBoxWrapper(*renderer))
+ if (hasInlineRun(*renderer))
return node;
}
return nullptr;
Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (270163 => 270164)
--- trunk/Source/WebCore/rendering/RenderElement.cpp 2020-11-22 13:52:24 UTC (rev 270163)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp 2020-11-22 14:52:43 UTC (rev 270164)
@@ -43,6 +43,8 @@
#include "HTMLHtmlElement.h"
#include "HTMLImageElement.h"
#include "HTMLNames.h"
+#include "LayoutIntegrationLineIterator.h"
+#include "LayoutIntegrationRunIterator.h"
#include "LengthFunctions.h"
#include "Logging.h"
#include "Page.h"
@@ -1569,13 +1571,15 @@
return true;
}
- if (p->node() && p->node() == element() && is<RenderText>(*o) && !downcast<RenderText>(*o).firstTextBox()) {
+ if (p->node() && p->node() == element() && is<RenderText>(*o) && !LayoutIntegration::firstTextRunFor(downcast<RenderText>(*o))) {
// do nothing - skip unrendered whitespace that is a child or next sibling of the anchor
} else if (is<RenderText>(*o) || o->isReplaced()) {
point = FloatPoint();
- if (is<RenderText>(*o) && downcast<RenderText>(*o).firstTextBox())
- point.move(downcast<RenderText>(*o).linesBoundingBox().x(), downcast<RenderText>(*o).topOfFirstText());
- else if (is<RenderBox>(*o))
+ if (is<RenderText>(*o)) {
+ auto& textRenderer = downcast<RenderText>(*o);
+ if (auto run = LayoutIntegration::firstTextRunFor(textRenderer))
+ point.move(textRenderer.linesBoundingBox().x(), run.line()->top());
+ } else if (is<RenderBox>(*o))
point.moveBy(downcast<RenderBox>(*o).location());
point = o->container()->localToAbsolute(point, UseTransforms, &insideFixed);
return true;
Modified: trunk/Source/WebCore/rendering/RenderText.cpp (270163 => 270164)
--- trunk/Source/WebCore/rendering/RenderText.cpp 2020-11-22 13:52:24 UTC (rev 270163)
+++ trunk/Source/WebCore/rendering/RenderText.cpp 2020-11-22 14:52:43 UTC (rev 270164)
@@ -1332,11 +1332,6 @@
return previousString[previousString.length() - 1];
}
-LayoutUnit RenderText::topOfFirstText() const
-{
- return firstTextBox()->root().lineTop();
-}
-
String applyTextTransform(const RenderStyle& style, const String& text, UChar previousCharacter)
{
switch (style.textTransform()) {
Modified: trunk/Source/WebCore/rendering/RenderText.h (270163 => 270164)
--- trunk/Source/WebCore/rendering/RenderText.h 2020-11-22 13:52:24 UTC (rev 270163)
+++ trunk/Source/WebCore/rendering/RenderText.h 2020-11-22 14:52:43 UTC (rev 270164)
@@ -171,8 +171,6 @@
bool usesComplexLineLayoutPath() const;
StringView stringView(unsigned start = 0, Optional<unsigned> stop = WTF::nullopt) const;
-
- LayoutUnit topOfFirstText() const;
bool containsOnlyHTMLWhitespace(unsigned from, unsigned length) const;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes