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

Reply via email to