Backed out 3 changesets (bug 1809568) for causing build bustages on nsLineLayout.cpp. CLOSED TREE

Backed out changeset 573dc0bd9554 (bug 1809568)
Backed out changeset b8401947aea0 (bug 1809568)
Backed out changeset 7ecabe895121 (bug 1809568)
This commit is contained in:
Iulian Moraru 2023-05-01 17:59:21 +03:00
parent e50ec05b89
commit c9ffb3ffa8
63 changed files with 323 additions and 334 deletions

View File

@ -3020,7 +3020,6 @@ exports.CSS_PROPERTIES = {
"float",
"clear",
"vertical-align",
"baseline-source",
"overflow-clip-box-inline",
"overflow-clip-box-block",
"overflow-x",
@ -4014,23 +4013,6 @@ exports.CSS_PROPERTIES = {
"unset"
]
},
"baseline-source": {
"isInherited": false,
"subproperties": [
"baseline-source"
],
"supports": [],
"values": [
"auto",
"first",
"inherit",
"initial",
"last",
"revert",
"revert-layer",
"unset"
]
},
"block-size": {
"isInherited": false,
"subproperties": [

View File

@ -19,12 +19,6 @@ enum class BaselineSharingGroup : uint8_t {
Last = 1,
};
// Layout context under which the baseline is being exported to.
enum class BaselineExportContext : uint8_t {
LineLayout = 0,
Other = 1,
};
class Baseline {
public:
/**

View File

@ -5954,8 +5954,8 @@ bool nsLayoutUtils::GetLastLineBaseline(WritingMode aWM, const nsIFrame* aFrame,
// `ColumnSetWrapperFrame` level, but this keeps it symmetric to
// `GetFirstLinePosition`.
if (aFrame->IsColumnSetFrame()) {
const auto baseline = aFrame->GetNaturalBaselineBOffset(
aWM, BaselineSharingGroup::Last, BaselineExportContext::Other);
const auto baseline =
aFrame->GetNaturalBaselineBOffset(aWM, BaselineSharingGroup::Last);
if (!baseline) {
return false;
}

View File

@ -86,8 +86,7 @@ LogicalSize nsCheckboxRadioFrame::ComputeAutoSize(
}
Maybe<nscoord> nsCheckboxRadioFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
NS_ASSERTION(!IsSubtreeDirty(), "frame must not be dirty");
if (aBaselineGroup == BaselineSharingGroup::Last) {

View File

@ -62,8 +62,8 @@ class nsCheckboxRadioFrame final : public nsAtomicContainerFrame,
nsEventStatus* aEventStatus) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
/**
* Respond to the request to resize and/or reflow

View File

@ -65,8 +65,7 @@ nscoord nsDateTimeControlFrame::GetPrefISize(gfxContext* aRenderingContext) {
}
Maybe<nscoord> nsDateTimeControlFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
return nsTextControlFrame::GetSingleLineTextControlBaseline(
this, mFirstBaseline, aWM, aBaselineGroup);
}

View File

@ -62,8 +62,8 @@ class nsDateTimeControlFrame final : public nsContainerFrame {
nsReflowStatus& aStatus) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
nscoord mFirstBaseline = NS_INTRINSIC_ISIZE_UNKNOWN;
};

View File

@ -851,8 +851,7 @@ nscoord nsFieldSetFrame::SynthesizeFallbackBaseline(
}
Maybe<nscoord> nsFieldSetFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (StyleDisplay()->IsContainLayout()) {
// If we are layout-contained, our child 'inner' should not
// affect how we calculate our baseline.
@ -863,8 +862,7 @@ Maybe<nscoord> nsFieldSetFrame::GetNaturalBaselineBOffset(
return Nothing{};
}
MOZ_ASSERT(!inner->GetWritingMode().IsOrthogonalTo(aWM));
const auto result =
inner->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext);
const auto result = inner->GetNaturalBaselineBOffset(aWM, aBaselineGroup);
if (!result) {
return Nothing{};
}

View File

@ -41,8 +41,8 @@ class nsFieldSetFrame final : public nsContainerFrame {
BaselineSharingGroup aBaselineGroup) const override;
BaselineSharingGroup GetDefaultBaselineSharingGroup() const override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
virtual void BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsDisplayListSet& aLists) override;

View File

@ -313,8 +313,7 @@ void nsHTMLButtonControlFrame::ReflowButtonContents(
}
Maybe<nscoord> nsHTMLButtonControlFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (StyleDisplay()->IsContainLayout()) {
return Nothing{};
}
@ -323,12 +322,11 @@ Maybe<nscoord> nsHTMLButtonControlFrame::GetNaturalBaselineBOffset(
if (MOZ_UNLIKELY(inner->GetWritingMode().IsOrthogonalTo(aWM))) {
return Nothing{};
}
auto result =
inner->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext)
.valueOrFrom([inner, aWM, aBaselineGroup]() {
return Baseline::SynthesizeBOffsetFromBorderBox(inner, aWM,
aBaselineGroup);
});
auto result = inner->GetNaturalBaselineBOffset(aWM, aBaselineGroup)
.valueOrFrom([inner, aWM, aBaselineGroup]() {
return Baseline::SynthesizeBOffsetFromBorderBox(
inner, aWM, aBaselineGroup);
});
nscoord innerBStart = inner->BStart(aWM, GetSize());
if (aBaselineGroup == BaselineSharingGroup::First) {

View File

@ -39,8 +39,8 @@ class nsHTMLButtonControlFrame : public nsContainerFrame,
nsReflowStatus& aStatus) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
virtual nsresult HandleEvent(nsPresContext* aPresContext,
mozilla::WidgetGUIEvent* aEvent,

View File

@ -71,8 +71,7 @@ nsListControlFrame::nsListControlFrame(ComputedStyle* aStyle,
nsListControlFrame::~nsListControlFrame() = default;
Maybe<nscoord> nsListControlFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
// Unlike scroll frames which we inherit from, we don't export a baseline.
return Nothing{};
}

View File

@ -56,8 +56,8 @@ class nsListControlFrame final : public nsHTMLScrollFrame,
NS_DECL_FRAMEARENA_HELPERS(nsListControlFrame)
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
// nsIFrame
nsresult HandleEvent(nsPresContext* aPresContext,

View File

@ -78,8 +78,8 @@ class nsTextControlFrame : public nsContainerFrame,
nsReflowStatus& aStatus) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override {
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override {
if (!IsSingleLineTextControl()) {
return Nothing{};
}

View File

@ -60,8 +60,7 @@ class BRFrame final : public nsIFrame {
nscoord GetPrefISize(gfxContext* aRenderingContext) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const override;
bool IsFrameOfType(uint32_t aFlags) const override {
return nsIFrame::IsFrameOfType(
@ -204,8 +203,7 @@ nscoord BRFrame::GetPrefISize(gfxContext* aRenderingContext) {
}
Maybe<nscoord> BRFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Nothing{};
}

View File

@ -235,8 +235,7 @@ nscoord ColumnSetWrapperFrame::GetPrefISize(gfxContext* aRenderingContext) {
template <typename Iterator>
Maybe<nscoord> ColumnSetWrapperFrame::GetBaselineBOffset(
Iterator aStart, Iterator aEnd, WritingMode aWM,
BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
BaselineSharingGroup aBaselineGroup) const {
// Either forward iterator + first baseline, or reverse iterator + last
// baseline
MOZ_ASSERT((*aStart == PrincipalChildList().FirstChild() &&
@ -252,8 +251,7 @@ Maybe<nscoord> ColumnSetWrapperFrame::GetBaselineBOffset(
// baseline.
for (auto itr = aStart; itr != aEnd; ++itr) {
const nsIFrame* kid = *itr;
auto kidBaseline =
kid->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext);
auto kidBaseline = kid->GetNaturalBaselineBOffset(aWM, aBaselineGroup);
if (!kidBaseline) {
continue;
}
@ -272,16 +270,13 @@ Maybe<nscoord> ColumnSetWrapperFrame::GetBaselineBOffset(
}
Maybe<nscoord> ColumnSetWrapperFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::First) {
return GetBaselineBOffset(PrincipalChildList().cbegin(),
PrincipalChildList().cend(), aWM, aBaselineGroup,
aExportContext);
PrincipalChildList().cend(), aWM, aBaselineGroup);
}
return GetBaselineBOffset(PrincipalChildList().crbegin(),
PrincipalChildList().crend(), aWM, aBaselineGroup,
aExportContext);
PrincipalChildList().crend(), aWM, aBaselineGroup);
}
#ifdef DEBUG

View File

@ -60,8 +60,7 @@ class ColumnSetWrapperFrame final : public nsBlockFrame {
nscoord GetPrefISize(gfxContext* aRenderingContext) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const override;
private:
explicit ColumnSetWrapperFrame(ComputedStyle* aStyle,
@ -79,8 +78,7 @@ class ColumnSetWrapperFrame final : public nsBlockFrame {
template <typename Iterator>
Maybe<nscoord> GetBaselineBOffset(Iterator aStart, Iterator aEnd,
WritingMode aWM,
BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const;
BaselineSharingGroup aBaselineGroup) const;
};
} // namespace mozilla

View File

@ -603,76 +603,54 @@ nscoord nsBlockFrame::SynthesizeFallbackBaseline(
return Baseline::SynthesizeBOffsetFromMarginBox(this, aWM, aBaselineGroup);
}
template <typename LineIterator>
Maybe<nscoord> nsBlockFrame::GetBaselineBOffset(
LineIterator aStart, LineIterator aEnd, WritingMode aWM,
BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
MOZ_ASSERT((std::is_same_v<LineIterator, ConstLineIterator> &&
aBaselineGroup == BaselineSharingGroup::First) ||
(std::is_same_v<LineIterator, ConstReverseLineIterator> &&
aBaselineGroup == BaselineSharingGroup::Last),
"Iterator direction must match baseline sharing group.");
for (auto line = aStart; line != aEnd; ++line) {
if (!line->IsBlock()) {
// XXX Is this the right test? We have some bogus empty lines
// floating around, but IsEmpty is perhaps too weak.
if (line->BSize() != 0 || !line->IsEmpty()) {
const auto ascent = line->BStart() + line->GetLogicalAscent();
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Some(BSize(aWM) - ascent);
}
return Some(ascent);
}
continue;
}
nsIFrame* kid = line->mFirstChild;
if (aWM.IsOrthogonalTo(kid->GetWritingMode())) {
continue;
}
if (aExportContext == BaselineExportContext::LineLayout &&
kid->IsTableWrapperFrame()) {
// `<table>` in inline-block context does not export any baseline.
continue;
}
const auto kidBaselineGroup =
aExportContext == BaselineExportContext::LineLayout
? kid->GetDefaultBaselineSharingGroup()
: aBaselineGroup;
const auto kidBaseline =
kid->GetNaturalBaselineBOffset(aWM, kidBaselineGroup, aExportContext);
if (!kidBaseline) {
continue;
}
auto result = *kidBaseline;
if (kidBaselineGroup == BaselineSharingGroup::Last) {
result = kid->BSize(aWM) - result;
}
// Ignore relative positioning for baseline calculations.
const nsSize& sz = line->mContainerSize;
result += kid->GetLogicalNormalPosition(aWM, sz).B(aWM);
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Some(BSize(aWM) - result);
}
return Some(result);
}
return Nothing{};
}
Maybe<nscoord> nsBlockFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (StyleDisplay()->IsContainLayout()) {
return Nothing{};
}
if (aBaselineGroup == BaselineSharingGroup::First) {
return GetBaselineBOffset(LinesBegin(), LinesEnd(), aWM, aBaselineGroup,
aExportContext);
nscoord result;
if (!nsLayoutUtils::GetFirstLineBaseline(aWM, this, &result)) {
return Nothing{};
}
return Some(result);
}
return GetBaselineBOffset(LinesRBegin(), LinesREnd(), aWM, aBaselineGroup,
aExportContext);
for (ConstReverseLineIterator line = LinesRBegin(), line_end = LinesREnd();
line != line_end; ++line) {
if (line->IsBlock()) {
nsIFrame* kid = line->mFirstChild;
if (aWM.IsOrthogonalTo(kid->GetWritingMode())) {
continue;
}
if (kid->IsTableWrapperFrame()) {
// `<table>` in block display context does not export any baseline.
continue;
}
const auto kidBaselineGroup = kid->GetDefaultBaselineSharingGroup();
const auto kidBaseline =
kid->GetNaturalBaselineBOffset(aWM, kidBaselineGroup);
if (!kidBaseline) {
continue;
}
auto result = *kidBaseline;
if (kidBaselineGroup == BaselineSharingGroup::Last) {
result = kid->BSize(aWM) - result;
}
// Ignore relative positioning for baseline calculations.
const nsSize& sz = line->mContainerSize;
result += kid->GetLogicalNormalPosition(aWM, sz).B(aWM);
return Some(BSize(aWM) - result);
} else {
// XXX Is this the right test? We have some bogus empty lines
// floating around, but IsEmpty is perhaps too weak.
if (line->BSize() != 0 || !line->IsEmpty()) {
return Some(BSize(aWM) - (line->BStart() + line->GetLogicalAscent()));
}
}
}
return Nothing{};
}
nscoord nsBlockFrame::GetCaretBaseline() const {
@ -1592,8 +1570,7 @@ void nsBlockFrame::Reflow(nsPresContext* aPresContext, ReflowOutput& aMetrics,
const auto baselineGroup = BaselineSharingGroup::First;
Maybe<nscoord> result;
if (MOZ_LIKELY(!wm.IsOrthogonalTo(marker->GetWritingMode()))) {
result = marker->GetNaturalBaselineBOffset(
wm, baselineGroup, BaselineExportContext::LineLayout);
result = marker->GetNaturalBaselineBOffset(wm, baselineGroup);
}
const auto markerBaseline = result.valueOrFrom([bbox, wm, marker]() {
return bbox.BSize(wm) + marker->GetLogicalUsedMargin(wm).BEnd(wm);

View File

@ -133,8 +133,8 @@ class nsBlockFrame : public nsContainerFrame {
return BaselineSharingGroup::Last;
}
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
nscoord GetCaretBaseline() const override;
void DestroyFrom(nsIFrame* aDestructRoot,
PostDestroyData& aPostDestroyData) override;
@ -276,12 +276,6 @@ class nsBlockFrame : public nsContainerFrame {
private:
void CheckIntrinsicCacheAgainstShrinkWrapState();
template <typename LineIterator>
Maybe<nscoord> GetBaselineBOffset(LineIterator aStart, LineIterator aEnd,
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const;
public:
nscoord GetMinISize(gfxContext* aRenderingContext) override;
nscoord GetPrefISize(gfxContext* aRenderingContext) override;

View File

@ -1297,12 +1297,10 @@ void nsColumnSetFrame::AppendDirectlyOwnedAnonBoxes(
}
Maybe<nscoord> nsColumnSetFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
Maybe<nscoord> result;
for (const auto* kid : mFrames) {
auto kidBaseline =
kid->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext);
auto kidBaseline = kid->GetNaturalBaselineBOffset(aWM, aBaselineGroup);
if (!kidBaseline) {
continue;
}

View File

@ -75,8 +75,8 @@ class nsColumnSetFrame final : public nsContainerFrame {
const nsPoint& aPt);
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
protected:
nscoord mLastBalanceBSize;

View File

@ -426,8 +426,7 @@ void nsFirstLetterFrame::DrainOverflowFrames(nsPresContext* aPresContext) {
}
Maybe<nscoord> nsFirstLetterFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Nothing{};
}

View File

@ -61,8 +61,8 @@ class nsFirstLetterFrame final : public nsContainerFrame {
virtual bool CanContinueTextRun() const override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
virtual LogicalSides GetLogicalSkipSides() const override;
// override of nsFrame method

View File

@ -416,8 +416,7 @@ class nsFlexContainerFrame::FlexItem final {
// If the nsLayoutUtils getter fails, then ask the frame directly:
auto baselineGroup = aUseFirstBaseline ? BaselineSharingGroup::First
: BaselineSharingGroup::Last;
if (auto baseline = mFrame->GetNaturalBaselineBOffset(
mWM, baselineGroup, BaselineExportContext::Other)) {
if (auto baseline = mFrame->GetNaturalBaselineBOffset(mWM, baselineGroup)) {
// Offset for last baseline from `GetNaturalBaselineBOffset` originates
// from the frame's block end, so convert it back.
mAscent = baselineGroup == BaselineSharingGroup::First
@ -4637,8 +4636,7 @@ void nsFlexContainerFrame::Reflow(nsPresContext* aPresContext,
}
Maybe<nscoord> nsFlexContainerFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (StyleDisplay()->IsContainLayout() ||
HasAnyStateBits(NS_STATE_FLEX_SYNTHESIZE_BASELINE)) {
return Nothing{};

View File

@ -166,8 +166,8 @@ class nsFlexContainerFrame final : public nsContainerFrame,
#endif
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
// Unions the child overflow from our in-flow children.
void UnionInFlowChildOverflow(mozilla::OverflowAreas&);

View File

@ -1421,8 +1421,7 @@ nscoord nsHTMLScrollFrame::SynthesizeFallbackBaseline(
}
Maybe<nscoord> nsHTMLScrollFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
// Block containers that are scrollable always have a last baseline
// that are synthesized from block-end margin edge.
// Note(dshin): This behaviour is really only relevant to `inline-block`
@ -1430,8 +1429,7 @@ Maybe<nscoord> nsHTMLScrollFrame::GetNaturalBaselineBOffset(
// baselines are calculated through `GetFirstLineBaseline`, which does
// calculations of its own.
// https://drafts.csswg.org/css-align/#baseline-export
if (aExportContext == BaselineExportContext::LineLayout &&
aBaselineGroup == BaselineSharingGroup::Last &&
if (aBaselineGroup == BaselineSharingGroup::Last &&
mScrolledFrame->IsBlockFrameOrSubclass()) {
return Some(SynthesizeFallbackBaseline(aWM, aBaselineGroup));
}
@ -1441,8 +1439,7 @@ Maybe<nscoord> nsHTMLScrollFrame::GetNaturalBaselineBOffset(
}
// OK, here's where we defer to our scrolled frame.
return mScrolledFrame
->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext)
return mScrolledFrame->GetNaturalBaselineBOffset(aWM, aBaselineGroup)
.map([this, aWM](nscoord aBaseline) {
// We have to add our border BStart thickness to whatever it returns, to
// produce an offset in our frame-rect's coordinate system. (We don't

View File

@ -130,8 +130,8 @@ class nsHTMLScrollFrame : public nsContainerFrame,
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
// Recomputes the scrollable overflow area we store in the helper to take
// children that are affected by perpsective set on the outer frame and scroll

View File

@ -9568,9 +9568,7 @@ nscoord nsGridContainerFrame::SynthesizeBaseline(
baseline = isOrthogonal ? grid->GetIBaseline(aGroup)
: grid->GetBBaseline(aGroup);
} else if (!isOrthogonal && aGridOrderItem.mIsInEdgeTrack) {
baseline = child
->GetNaturalBaselineBOffset(childWM, aGroup,
BaselineExportContext::Other)
baseline = child->GetNaturalBaselineBOffset(childWM, aGroup)
.valueOrFrom([aGroup, child, childWM]() {
return Baseline::SynthesizeBOffsetFromBorderBox(
child, childWM, aGroup);

View File

@ -131,8 +131,8 @@ class nsGridContainerFrame final : public nsContainerFrame,
const nsDisplayListSet& aLists) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override {
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override {
if (StyleDisplay()->IsContainLayout() ||
HasAnyStateBits(NS_STATE_GRID_SYNTHESIZE_BASELINE)) {
return Nothing{};

View File

@ -2092,15 +2092,13 @@ nscoord nsIFrame::SynthesizeFallbackBaseline(
}
nscoord nsIFrame::GetLogicalBaseline(WritingMode aWM) const {
return GetLogicalBaseline(aWM, GetDefaultBaselineSharingGroup(),
BaselineExportContext::LineLayout);
return GetLogicalBaseline(aWM, GetDefaultBaselineSharingGroup());
}
nscoord nsIFrame::GetLogicalBaseline(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
const auto result =
GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext)
GetNaturalBaselineBOffset(aWM, aBaselineGroup)
.valueOrFrom([this, aWM, aBaselineGroup]() {
return SynthesizeFallbackBaseline(aWM, aBaselineGroup);
});

View File

@ -519,7 +519,6 @@ class nsIFrame : public nsQueryFrame {
public:
using AlignmentContext = mozilla::AlignmentContext;
using BaselineSharingGroup = mozilla::BaselineSharingGroup;
using BaselineExportContext = mozilla::BaselineExportContext;
template <typename T>
using Maybe = mozilla::Maybe<T>;
template <typename T, typename E>
@ -1529,19 +1528,14 @@ class nsIFrame : public nsQueryFrame {
/**
* `GetNaturalBaselineBOffset`, but determines the baseline sharing group
* through `GetDefaultBaselineSharingGroup` (If not specified), assuming line
* layout context, and never fails, returning a synthesized baseline through
* through `GetDefaultBaselineSharingGroup` (If not specified), and never
* fails, returning a synthesized baseline through
* `SynthesizeFallbackBaseline`. Unlike `GetNaturalBaselineBOffset`, Result is
* always relative to the block start of the frame.
*/
nscoord GetLogicalBaseline(mozilla::WritingMode aWM) const;
/**
* Same as the above, but with baseline sharing group & export
* context specified.
*/
nscoord GetLogicalBaseline(mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const;
BaselineSharingGroup aBaselineGroup) const;
/**
* Return true if the frame has a first(last) inline-axis baseline per
@ -1549,21 +1543,14 @@ class nsIFrame : public nsQueryFrame {
* the relevant block-axis border-box edge (Start for
* BaselineSharingGroup::First, end for BaselineSharingGroup::Last), where
* a positive value points towards the content-box.
* Some frames can export different baselines depending if it's in a line
* layout context or any other context (e.g. Flex, grid).
* https://drafts.csswg.org/css-align-3/#baseline-export
* @note The returned value is only valid when reflow is not needed.
* @note You should only call this on frames with a WM that's parallel to aWM.
* @note We're approaching `nsLayoutUtils::Get(First|Last)LineBaseline` ==
* `GetNaturalBaselineBOffset(aWM, (First|Last), Other)`. Grid relies on
* baseline synthesis behaviour in `nsLayoutUtils` implementations (bug
* 1609403), which blocks its removal.
* @param aWM the writing-mode of the alignment context.
* @return the baseline offset, if one exists
*/
virtual Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
return Nothing{};
}
@ -1670,8 +1657,7 @@ class nsIFrame : public nsQueryFrame {
public:
/**
* Get the suitable baseline sharing group for this element, assuming line
* layout.
* Get the suitable baseline sharing group for this element.
*/
virtual BaselineSharingGroup GetDefaultBaselineSharingGroup() const {
return BaselineSharingGroup::First;

View File

@ -841,8 +841,7 @@ LogicalSides nsInlineFrame::GetLogicalSkipSides() const {
}
Maybe<nscoord> nsInlineFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Nothing{};
}

View File

@ -97,8 +97,8 @@ class nsInlineFrame : public nsContainerFrame {
virtual void PullOverflowsFromPrevInFlow() override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
virtual bool DrainSelfOverflowList() override;
/**

View File

@ -1335,18 +1335,6 @@ bool nsLineLayout::CanPlaceFrame(PerFrameData* pfd, bool aNotSafeToBreak,
return false;
}
BaselineSharingGroup BaselineSourceToBaselineSharingGroup(
const nsIFrame& aFrame) {
switch (aFrame.StyleDisplay()->mBaselineSource) {
case StyleBaselineSource::First:
return BaselineSharingGroup::First;
case StyleBaselineSource::Last:
return BaselineSharingGroup::Last;
case StyleBaselineSource::Auto:
return aFrame.GetDefaultBaselineSharingGroup();
}
}
/**
* Place the frame. Update running counters.
*/
@ -1361,32 +1349,10 @@ void nsLineLayout::PlaceFrame(PerFrameData* pfd, ReflowOutput& aMetrics) {
? lineWM.IsLineInverted() ? 0 : aMetrics.BSize(lineWM)
: aMetrics.BSize(lineWM) / 2;
} else {
if (pfd->mFrame->StyleDisplay()->mBaselineSource ==
StyleBaselineSource::Auto) {
if (aMetrics.BlockStartAscent() == ReflowOutput::ASK_FOR_BASELINE) {
pfd->mAscent = pfd->mFrame->GetLogicalBaseline(lineWM);
} else {
pfd->mAscent = aMetrics.BlockStartAscent();
}
if (aMetrics.BlockStartAscent() == ReflowOutput::ASK_FOR_BASELINE) {
pfd->mAscent = pfd->mFrame->GetLogicalBaseline(lineWM);
} else {
const auto sourceGroup = [pfd]() {
switch (pfd->mFrame->StyleDisplay()->mBaselineSource) {
case StyleBaselineSource::First:
return BaselineSharingGroup::First;
case StyleBaselineSource::Last:
return BaselineSharingGroup::Last;
case StyleBaselineSource::Auto:
break;
}
MOZ_ASSERT_UNREACHABLE("Auto should be already handled?");
}();
// We ignore line-layout specific layout quirks by setting
// `BaselineExportContext::Other`.
// Note(dshin): For a lot of frames, the export context does not make a
// difference, and we may be wasting the value cached in
// `BlockStartAscent`.
pfd->mAscent = pfd->mFrame->GetLogicalBaseline(
lineWM, sourceGroup, BaselineExportContext::Other);
pfd->mAscent = aMetrics.BlockStartAscent();
}
}
@ -1450,6 +1416,7 @@ void nsLineLayout::RemoveMarkerFrame(nsIFrame* aFrame) {
psd->mFirstFrame = pfd->mNext;
FreeFrame(pfd);
}
#ifdef DEBUG
void nsLineLayout::DumpPerSpanData(PerSpanData* psd, int32_t aIndent) {
nsIFrame::IndentBy(stdout, aIndent);

View File

@ -262,8 +262,7 @@ nsIFrame::SizeComputationResult nsRubyBaseContainerFrame::ComputeSize(
}
Maybe<nscoord> nsRubyBaseContainerFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Nothing{};
}

View File

@ -47,8 +47,8 @@ class nsRubyBaseContainerFrame final : public nsContainerFrame {
nsReflowStatus& aStatus) override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
#ifdef DEBUG_FRAME_DUMP
virtual nsresult GetFrameName(nsAString& aResult) const override;

View File

@ -10058,8 +10058,7 @@ bool nsTextFrame::IsAtEndOfLine() const {
}
Maybe<nscoord> nsTextFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (aBaselineGroup == BaselineSharingGroup::Last) {
return Nothing{};
}

View File

@ -367,8 +367,8 @@ class nsTextFrame : public nsIFrame {
bool IsEmpty() final;
bool IsSelfEmpty() final { return IsEmpty(); }
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
bool HasSignificantTerminalNewline() const final;

View File

@ -646,7 +646,6 @@ cbindgen-types = [
{ gecko = "StyleFontSynthesis", servo = "crate::values::computed::font::FontSynthesis" },
{ gecko = "StyleBoolInteger", servo = "crate::values::computed::BoolInteger" },
{ gecko = "StyleTime", servo = "crate::values::computed::Time" },
{ gecko = "StyleBaselineSource", servo = "crate::values::computed::BaselineSource" },
]
mapped-generic-types = [

View File

@ -2224,7 +2224,6 @@ nsStyleDisplay::nsStyleDisplay(const Document& aDocument)
mPerspectiveOrigin(Position::FromPercentage(0.5f)),
mVerticalAlign(
StyleVerticalAlign::Keyword(StyleVerticalAlignKeyword::Baseline)),
mBaselineSource(StyleBaselineSource::Auto),
mWebkitLineClamp(0),
mShapeMargin(LengthPercentage::Zero()),
mShapeOutside(StyleShapeOutside::None()) {
@ -2280,7 +2279,6 @@ nsStyleDisplay::nsStyleDisplay(const nsStyleDisplay& aSource)
mChildPerspective(aSource.mChildPerspective),
mPerspectiveOrigin(aSource.mPerspectiveOrigin),
mVerticalAlign(aSource.mVerticalAlign),
mBaselineSource(aSource.mBaselineSource),
mWebkitLineClamp(aSource.mWebkitLineClamp),
mShapeImageThreshold(aSource.mShapeImageThreshold),
mShapeMargin(aSource.mShapeMargin),
@ -2517,8 +2515,7 @@ nsChangeHint nsStyleDisplay::CalcDifference(
}
if (mWebkitLineClamp != aNewData.mWebkitLineClamp ||
mVerticalAlign != aNewData.mVerticalAlign ||
mBaselineSource != aNewData.mBaselineSource) {
mVerticalAlign != aNewData.mVerticalAlign) {
// XXX Can this just be AllReflowHints + RepaintFrame, and be included in
// the block below?
hint |= NS_STYLE_HINT_REFLOW;

View File

@ -1381,7 +1381,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleDisplay {
mozilla::Position mPerspectiveOrigin;
mozilla::StyleVerticalAlign mVerticalAlign;
mozilla::StyleBaselineSource mBaselineSource;
mozilla::StyleLineClamp mWebkitLineClamp;

View File

@ -8418,17 +8418,6 @@ var gCSSProperties = {
invalid_values: [],
quirks_values: { "5": "5px" },
},
"baseline-source": {
domProp: "baselineSource",
inherited: false,
type: CSS_TYPE_LONGHAND,
applies_to_first_letter: true,
applies_to_first_line: true,
applies_to_placeholder: true,
initial_values: ["auto"],
other_values: ["first", "last"],
invalid_values: [],
},
visibility: {
domProp: "visibility",
inherited: true,

View File

@ -3542,8 +3542,7 @@ nscoord nsTableFrame::SynthesizeFallbackBaseline(
/* virtual */
Maybe<nscoord> nsTableFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
if (StyleDisplay()->IsContainLayout()) {
return Nothing{};
}

View File

@ -439,8 +439,8 @@ class nsTableFrame : public nsContainerFrame {
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
/** return the row span of a cell, taking into account row span magic at the
* bottom of a table. The row span equals the number of rows spanned by aCell

View File

@ -41,8 +41,7 @@ nscoord nsTableWrapperFrame::SynthesizeFallbackBaseline(
}
Maybe<nscoord> nsTableWrapperFrame::GetNaturalBaselineBOffset(
WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const {
WritingMode aWM, BaselineSharingGroup aBaselineGroup) const {
// Baseline is determined by row
// (https://drafts.csswg.org/css-align-3/#baseline-export). If the row
// direction is going to be orthogonal to the parent's writing mode, the
@ -53,8 +52,7 @@ Maybe<nscoord> nsTableWrapperFrame::GetNaturalBaselineBOffset(
return Nothing{};
}
auto* innerTable = InnerTableFrame();
return innerTable
->GetNaturalBaselineBOffset(aWM, aBaselineGroup, aExportContext)
return innerTable->GetNaturalBaselineBOffset(aWM, aBaselineGroup)
.map([this, aWM, aBaselineGroup, innerTable](nscoord aBaseline) {
auto bStart = innerTable->BStart(aWM, mRect.Size());
if (aBaselineGroup == BaselineSharingGroup::First) {

View File

@ -68,8 +68,8 @@ class nsTableWrapperFrame : public nsContainerFrame {
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
Maybe<nscoord> GetNaturalBaselineBOffset(
mozilla::WritingMode aWM, BaselineSharingGroup aBaselineGroup,
BaselineExportContext aExportContext) const override;
mozilla::WritingMode aWM,
BaselineSharingGroup aBaselineGroup) const override;
virtual nscoord GetMinISize(gfxContext* aRenderingContext) override;
virtual nscoord GetPrefISize(gfxContext* aRenderingContext) override;

View File

@ -447,7 +447,6 @@ class Longhand(Property):
"AlignSelf",
"Appearance",
"AspectRatio",
"BaselineSource",
"BreakBetween",
"BreakWithin",
"BackgroundRepeat",

View File

@ -94,16 +94,6 @@ ${helpers.predefined_type(
servo_restyle_damage = "reflow",
)}
${helpers.predefined_type(
"baseline-source",
"BaselineSource",
"computed::BaselineSource::Auto",
engines="gecko servo-2013",
animation_value_type="discrete",
spec="https://drafts.csswg.org/css-inline-3/#baseline-source",
servo_restyle_damage = "reflow",
)}
// CSS 2.1, Section 11 - Visual effects
${helpers.single_keyword(

View File

@ -18,7 +18,7 @@ pub use crate::values::specified::box_::{
Float as SpecifiedFloat, Overflow, OverflowAnchor, OverflowClipBox, OverscrollBehavior,
ScrollAxis, ScrollSnapAlign, ScrollSnapAxis, ScrollSnapStop, ScrollSnapStrictness,
ScrollSnapType, ScrollTimelineName, ScrollbarGutter, TouchAction, TransitionProperty,
WillChange, BaselineSource,
WillChange,
};
use std::fmt::{self, Write};

View File

@ -58,7 +58,7 @@ pub use self::box_::{Display, LineClamp, Overflow, OverflowAnchor, TransitionPro
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective, Resize, ScrollbarGutter};
pub use self::box_::{ScrollAxis, ScrollSnapAlign, ScrollSnapAxis, ScrollSnapStop};
pub use self::box_::{ScrollSnapStrictness, ScrollSnapType, ScrollTimelineName};
pub use self::box_::{TouchAction, VerticalAlign, WillChange, BaselineSource};
pub use self::box_::{TouchAction, VerticalAlign, WillChange};
pub use self::color::{Color, ColorOrAuto, ColorPropertyValue, ColorScheme, PrintColorAdjust, ForcedColorAdjust};
pub use self::column::ColumnCount;
pub use self::counters::{Content, ContentItem, CounterIncrement, CounterReset, CounterSet};

View File

@ -637,33 +637,6 @@ impl Parse for VerticalAlign {
}
}
/// A specified value for the `baseline-source` property.
/// https://drafts.csswg.org/css-inline-3/#baseline-source
#[derive(
Clone,
Copy,
Debug,
Eq,
Hash,
MallocSizeOf,
Parse,
PartialEq,
SpecifiedValueInfo,
ToCss,
ToShmem,
ToComputedValue,
ToResolvedValue,
)]
#[repr(u8)]
pub enum BaselineSource {
/// `Last` for `inline-block`, `First` otherwise.
Auto,
/// Use first baseline for alignment.
First,
/// Use last baseline for alignment.
Last,
}
/// https://drafts.csswg.org/css-animations/#animation-iteration-count
#[derive(Clone, Debug, MallocSizeOf, PartialEq, Parse, SpecifiedValueInfo, ToCss, ToShmem)]
pub enum AnimationIterationCount {

View File

@ -44,7 +44,7 @@ pub use self::box_::{
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective, Resize, ScrollbarGutter};
pub use self::box_::{ScrollAxis, ScrollSnapAlign, ScrollSnapAxis, ScrollSnapStop};
pub use self::box_::{ScrollSnapStrictness, ScrollSnapType, ScrollTimelineName};
pub use self::box_::{TouchAction, TransitionProperty, VerticalAlign, WillChange, BaselineSource};
pub use self::box_::{TouchAction, TransitionProperty, VerticalAlign, WillChange};
pub use self::color::{Color, ColorOrAuto, ColorPropertyValue, ColorScheme, PrintColorAdjust, ForcedColorAdjust};
pub use self::column::ColumnCount;
pub use self::counters::{Content, ContentItem, CounterIncrement, CounterReset, CounterSet};

View File

@ -147,7 +147,6 @@ include = [
"Position",
"PositionOrAuto",
"BackgroundSize",
"BaselineSource",
"BorderImageSlice",
"BorderSpacing",
"BorderRadius",

View File

@ -0,0 +1,9 @@
[baseline-source-computed.html]
[Property baseline-source value 'auto']
expected: FAIL
[Property baseline-source value 'first']
expected: FAIL
[Property baseline-source value 'last']
expected: FAIL

View File

@ -0,0 +1,21 @@
[baseline-source-first-001.html]
[.target > * 1]
expected: FAIL
[.target > * 3]
expected: FAIL
[.target > * 5]
expected: FAIL
[.target > * 7]
expected: FAIL
[.target > * 9]
expected: FAIL
[.target > * 15]
expected: FAIL
[.target > * 21]
expected: FAIL

View File

@ -1,8 +1,30 @@
[baseline-source-first-002.html]
[.target > * 1]
expected: FAIL
[.target > * 3]
expected: FAIL
[.target > * 4]
expected: FAIL
[.target > * 5]
expected: FAIL
[.target > * 7]
expected: FAIL
[.target > * 9]
expected: FAIL
[.target > * 10]
expected: FAIL
[.target > * 15]
expected: FAIL
[.target > * 19]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL
[.target > * 21]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL

View File

@ -0,0 +1,21 @@
[baseline-source-first-003.html]
[.target > * 1]
expected: FAIL
[.target > * 3]
expected: FAIL
[.target > * 5]
expected: FAIL
[.target > * 7]
expected: FAIL
[.target > * 9]
expected: FAIL
[.target > * 15]
expected: FAIL
[.target > * 21]
expected: FAIL

View File

@ -0,0 +1,3 @@
[baseline-source-invalid.html]
expected:
if (os == "android") and fission: [TIMEOUT, OK]

View File

@ -1,16 +1,21 @@
[baseline-source-last-001.html]
[.target > * 3]
expected: FAIL
[.target > * 9]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827484
expected: FAIL
[.target > * 11]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 13]
expected: FAIL
[.target > * 17]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 19]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL
[.target > * 21]
expected: FAIL

View File

@ -1,24 +1,30 @@
[baseline-source-last-002.html]
[.target > * 3]
expected: FAIL
[.target > * 4]
expected: FAIL
[.target > * 5]
expected: FAIL
[.target > * 9]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827484
expected: FAIL
[.target > * 10]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827484
expected: FAIL
[.target > * 11]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 13]
expected: FAIL
[.target > * 17]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 19]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL
[.target > * 21]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL

View File

@ -1,16 +1,24 @@
[baseline-source-last-003.html]
[.target > * 3]
expected: FAIL
[.target > * 5]
expected: FAIL
[.target > * 9]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827484
expected: FAIL
[.target > * 11]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 13]
expected: FAIL
[.target > * 17]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1827481
expected: FAIL
[.target > * 19]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=144517
expected: FAIL
[.target > * 21]
expected: FAIL

View File

@ -1,5 +1,79 @@
[baseline-source-no-interpolation.html]
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1805727
[CSS Transitions: property <baseline-source> from [initial\] to [last\] at (0.5) should be [last\]]
expected: FAIL
[CSS Transitions: property <baseline-source> from [initial\] to [last\] at (0.6) should be [last\]]
expected: FAIL
[CSS Transitions: property <baseline-source> from [initial\] to [last\] at (1) should be [last\]]
expected: FAIL
[CSS Transitions: property <baseline-source> from [initial\] to [last\] at (1.5) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (-0.3) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (0) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (0.3) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (0.5) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (0.6) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (1) should be [last\]]
expected: FAIL
[CSS Transitions with transition: all: property <baseline-source> from [initial\] to [last\] at (1.5) should be [last\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (-0.3) should be [initial\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (0) should be [initial\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (0.3) should be [initial\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (0.5) should be [last\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (0.6) should be [last\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (1) should be [last\]]
expected: FAIL
[CSS Animations: property <baseline-source> from [initial\] to [last\] at (1.5) should be [last\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (-0.3) should be [initial\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (0) should be [initial\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (0.3) should be [initial\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (0.5) should be [last\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (0.6) should be [last\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (1) should be [last\]]
expected: FAIL
[Web Animations: property <baseline-source> from [initial\] to [last\] at (1.5) should be [last\]]
expected: FAIL
[CSS Transitions: property <baseline-source> from [initial\] to [last\] at (0) should be [initial\]]
expected: FAIL

View File

@ -0,0 +1,9 @@
[baseline-source-valid.html]
[e.style['baseline-source'\] = "auto" should set the property value]
expected: FAIL
[e.style['baseline-source'\] = "first" should set the property value]
expected: FAIL
[e.style['baseline-source'\] = "last" should set the property value]
expected: FAIL