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
Родитель e50ec05b89
Коммит c9ffb3ffa8
63 изменённых файлов: 323 добавлений и 334 удалений

Просмотреть файл

@ -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": [

Просмотреть файл

@ -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:
/**

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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) {

Просмотреть файл

@ -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

Просмотреть файл

@ -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);
}

Просмотреть файл

@ -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;
};

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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) {

Просмотреть файл

@ -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,

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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,

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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;

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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{};

Просмотреть файл

@ -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&);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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{};

Просмотреть файл

@ -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);
});

Просмотреть файл

@ -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;

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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;
/**

Просмотреть файл

@ -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);

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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 = [

Просмотреть файл

@ -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;

Просмотреть файл

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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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{};
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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) {

Просмотреть файл

@ -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;

Просмотреть файл

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

Просмотреть файл

@ -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(

Просмотреть файл

@ -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};

Просмотреть файл

@ -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};

Просмотреть файл

@ -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 {

Просмотреть файл

@ -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};

Просмотреть файл

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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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