Title: [240544] trunk/Source/WebCore
- Revision
- 240544
- Author
- [email protected]
- Date
- 2019-01-26 04:44:17 -0800 (Sat, 26 Jan 2019)
Log Message
[LFC] Box::nextInFlowOrFloatingSibling() should always return sibling floats as well.
https://bugs.webkit.org/show_bug.cgi?id=193855
Reviewed by Antti Koivisto.
Use iterative algorithm to find next/previous siblings.
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::nextInFlowOrFloatingSibling const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (240543 => 240544)
--- trunk/Source/WebCore/ChangeLog 2019-01-26 09:07:25 UTC (rev 240543)
+++ trunk/Source/WebCore/ChangeLog 2019-01-26 12:44:17 UTC (rev 240544)
@@ -1,3 +1,15 @@
+2019-01-26 Zalan Bujtas <[email protected]>
+
+ [LFC] Box::nextInFlowOrFloatingSibling() should always return sibling floats as well.
+ https://bugs.webkit.org/show_bug.cgi?id=193855
+
+ Reviewed by Antti Koivisto.
+
+ Use iterative algorithm to find next/previous siblings.
+
+ * layout/layouttree/LayoutBox.cpp:
+ (WebCore::Layout::Box::nextInFlowOrFloatingSibling const):
+
2019-01-25 Ryosuke Niwa <[email protected]>
Need a mechanism to override navigator.userAgent
Modified: trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp (240543 => 240544)
--- trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp 2019-01-26 09:07:25 UTC (rev 240543)
+++ trunk/Source/WebCore/layout/layouttree/LayoutBox.cpp 2019-01-26 12:44:17 UTC (rev 240544)
@@ -222,42 +222,34 @@
const Box* Box::nextInFlowSibling() const
{
- if (auto* nextSibling = this->nextSibling()) {
- if (nextSibling->isInFlow())
- return nextSibling;
- return nextSibling->nextInFlowSibling();
- }
- return nullptr;
+ auto* nextSibling = this->nextSibling();
+ while (nextSibling && !nextSibling->isInFlow())
+ nextSibling = nextSibling->nextSibling();
+ return nextSibling;
}
const Box* Box::nextInFlowOrFloatingSibling() const
{
- if (auto* nextSibling = this->nextSibling()) {
- if (nextSibling->isInFlow() || nextSibling->isFloatingPositioned())
- return nextSibling;
- return nextSibling->nextInFlowSibling();
- }
- return nullptr;
+ auto* nextSibling = this->nextSibling();
+ while (nextSibling && !(nextSibling->isInFlow() || nextSibling->isFloatingPositioned()))
+ nextSibling = nextSibling->nextSibling();
+ return nextSibling;
}
const Box* Box::previousInFlowSibling() const
{
- if (auto* previousSibling = this->previousSibling()) {
- if (previousSibling->isInFlow())
- return previousSibling;
- return previousSibling->previousInFlowSibling();
- }
- return nullptr;
+ auto* previousSibling = this->previousSibling();
+ while (previousSibling && !previousSibling->isInFlow())
+ previousSibling = previousSibling->previousSibling();
+ return previousSibling;
}
const Box* Box::previousInFlowOrFloatingSibling() const
{
- if (auto* previousSibling = this->previousSibling()) {
- if (previousSibling->isInFlow() || previousSibling->isFloatingPositioned())
- return previousSibling;
- return previousSibling->previousInFlowOrFloatingSibling();
- }
- return nullptr;
+ auto* previousSibling = this->previousSibling();
+ while (previousSibling && !(previousSibling->isInFlow() || previousSibling->isFloatingPositioned()))
+ previousSibling = previousSibling->previousSibling();
+ return previousSibling;
}
bool Box::isOverflowVisible() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes