Title: [250089] trunk/Source/WebCore
- Revision
- 250089
- Author
- za...@apple.com
- Date
- 2019-09-19 07:58:43 -0700 (Thu, 19 Sep 2019)
Log Message
[LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState
https://bugs.webkit.org/show_bug.cgi?id=201972
<rdar://problem/55505869>
Reviewed by Antti Koivisto.
InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState.
* layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState):
* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted.
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (250088 => 250089)
--- trunk/Source/WebCore/ChangeLog 2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/ChangeLog 2019-09-19 14:58:43 UTC (rev 250089)
@@ -1,5 +1,25 @@
2019-09-19 Zalan Bujtas <za...@apple.com>
+ [LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState
+ https://bugs.webkit.org/show_bug.cgi?id=201972
+ <rdar://problem/55505869>
+
+ Reviewed by Antti Koivisto.
+
+ InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState.
+
+ * layout/inlineformatting/InlineFormattingContext.h:
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState):
+ * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted.
+ (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted.
+
+2019-09-19 Zalan Bujtas <za...@apple.com>
+
[LFC] FloatingContext should take the root container.
https://bugs.webkit.org/show_bug.cgi?id=201968
<rdar://problem/55505090>
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h (250088 => 250089)
--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h 2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h 2019-09-19 14:58:43 UTC (rev 250089)
@@ -53,20 +53,21 @@
class InlineLayout {
public:
- InlineLayout(const InlineFormattingContext&);
- void layout(const InlineItems&, LayoutUnit widthConstraint) const;
+ InlineLayout(InlineFormattingContext&);
+ void layout(const InlineItems&, LayoutUnit widthConstraint);
LayoutUnit computedIntrinsicWidth(const InlineItems&, LayoutUnit widthConstraint) const;
private:
LayoutState& layoutState() const { return m_inlineFormattingContext.layoutState(); }
- const InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; }
+ InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; }
const Container& formattingRoot() const { return m_inlineFormattingContext.root(); }
+ InlineFormattingState& formattingState() { return m_inlineFormattingContext.formattingState(); }
LineContent placeInlineItems(const LineInput&) const;
- void createDisplayRuns(const Line::Content&, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint) const;
+ void createDisplayRuns(const Line::Content&, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint);
void alignRuns(TextAlignMode, InlineRuns&, unsigned firstRunIndex, LayoutUnit availableWidth) const;
private:
- const InlineFormattingContext& m_inlineFormattingContext;
+ InlineFormattingContext& m_inlineFormattingContext;
};
class Quirks : public FormattingContext::Quirks {
@@ -112,6 +113,7 @@
InlineFormattingState& formattingState() { return downcast<InlineFormattingState>(FormattingContext::formattingState()); }
// FIXME: Come up with a structure that requires no friending.
friend class Line;
+ friend class InlineLayout;
};
inline InlineFormattingContext::Geometry::Geometry(const InlineFormattingContext& inlineFormattingContext)
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp (250088 => 250089)
--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp 2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp 2019-09-19 14:58:43 UTC (rev 250089)
@@ -269,18 +269,17 @@
{
}
-InlineFormattingContext::InlineLayout::InlineLayout(const InlineFormattingContext& inlineFormattingContext)
+InlineFormattingContext::InlineLayout::InlineLayout(InlineFormattingContext& inlineFormattingContext)
: m_inlineFormattingContext(inlineFormattingContext)
{
}
-void InlineFormattingContext::InlineLayout::layout(const InlineItems& inlineItems, LayoutUnit widthConstraint) const
+void InlineFormattingContext::InlineLayout::layout(const InlineItems& inlineItems, LayoutUnit widthConstraint)
{
- auto& layoutState = this->layoutState();
auto& formattingContext = this->formattingContext();
auto& formattingRoot = this->formattingRoot();
auto& formattingRootGeometry = formattingContext.geometryForBox(formattingRoot);
- auto floatingContext = FloatingContext { formattingRoot, formattingContext, layoutState.establishedFormattingState(formattingRoot).floatingState() };
+ auto floatingContext = FloatingContext { formattingRoot, formattingContext, formattingState().floatingState() };
auto lineLogicalTop = formattingRootGeometry.contentBoxTop();
auto lineLogicalLeft = formattingRootGeometry.contentBoxLeft();
@@ -357,11 +356,10 @@
return maximumLineWidth;
}
-void InlineFormattingContext::InlineLayout::createDisplayRuns(const Line::Content& lineContent, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint) const
+void InlineFormattingContext::InlineLayout::createDisplayRuns(const Line::Content& lineContent, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint)
{
- auto& layoutState = this->layoutState();
auto& formattingContext = this->formattingContext();
- auto& formattingState = downcast<InlineFormattingState>(layoutState.establishedFormattingState(formattingRoot()));
+ auto& formattingState = this->formattingState();
auto floatingContext = FloatingContext { formattingRoot(), formattingContext, formattingState.floatingState() };
// Move floats to their final position.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes