Commit bce4baae authored by Ana SollanoKim's avatar Ana SollanoKim Committed by Commit Bot

[GridNG] Use specified placement and initial out-of-flow support

Previously, grid items were placed according to document order in
PlaceGridItems() in the following change:
https://chromium-review.googlesource.com/c/chromium/src/+/2369673. Now
that the computed grid item positions are available from
https://chromium-review.googlesource.com/c/chromium/src/+/2404110, the
function was refactored to use the final specified/resolved positions
instead of document order.

Furthermore, out of flow items are now being filtered out and stored in
the vector out_of_flow_items_. The look up/calculation for the absolute
and static positioned offset remains a TODO for now.

Bug: 1045599
Change-Id: Ia3ad951983798d6b34f13ef80850736dd374aee8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2444451
Commit-Queue: Ana Sollano Kim <ansollan@microsoft.com>
Reviewed-by: default avatarChristian Biesinger <cbiesinger@chromium.org>
Reviewed-by: default avatarEthan Jimenez <ethavar@microsoft.com>
Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819092}
parent 62ea6d9e
...@@ -45,7 +45,8 @@ scoped_refptr<const NGLayoutResult> NGGridLayoutAlgorithm::Layout() { ...@@ -45,7 +45,8 @@ scoped_refptr<const NGLayoutResult> NGGridLayoutAlgorithm::Layout() {
: NGGridPlacement::PackingBehavior::kDense, : NGGridPlacement::PackingBehavior::kDense,
AutoFlowDirection(), Style(), AutoFlowDirection(), Style(),
AutoFlowDirection() == kForRows ? column_count_ : row_count_, AutoFlowDirection() == kForRows ? column_count_ : row_count_,
block_row_track_collection_, block_column_track_collection_, items_) block_row_track_collection_, block_column_track_collection_,
grid_items_)
.RunAutoPlacementAlgorithm(); .RunAutoPlacementAlgorithm();
block_column_track_collection_.FinalizeRanges(); block_column_track_collection_.FinalizeRanges();
...@@ -187,24 +188,25 @@ void NGGridLayoutAlgorithm::GridItemData::SetSpan( ...@@ -187,24 +188,25 @@ void NGGridLayoutAlgorithm::GridItemData::SetSpan(
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::Iterator( NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::Iterator(
Vector<wtf_size_t>::const_iterator current_index, Vector<wtf_size_t>::const_iterator current_index,
Vector<GridItemData>* items) Vector<GridItemData>* grid_items)
: current_index_(current_index), items_(items) {} : current_index_(current_index), grid_items_(grid_items) {}
bool NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator!=( bool NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator!=(
const Iterator& other) const { const Iterator& other) const {
return items_ != other.items_ || current_index_ != other.current_index_; return grid_items_ != other.grid_items_ ||
current_index_ != other.current_index_;
} }
NGGridLayoutAlgorithm::GridItemData* NGGridLayoutAlgorithm::GridItemData*
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator->() { NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator->() {
DCHECK_LT(*current_index_, items_->size()); DCHECK_LT(*current_index_, grid_items_->size());
return &(items_->at(*current_index_)); return &(grid_items_->at(*current_index_));
} }
NGGridLayoutAlgorithm::GridItemData& NGGridLayoutAlgorithm::GridItemData&
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator*() { NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator*() {
DCHECK_LT(*current_index_, items_->size()); DCHECK_LT(*current_index_, grid_items_->size());
return items_->at(*current_index_); return grid_items_->at(*current_index_);
} }
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator& NGGridLayoutAlgorithm::ReorderedGridItems::Iterator&
...@@ -215,22 +217,23 @@ NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator++() { ...@@ -215,22 +217,23 @@ NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator++() {
NGGridLayoutAlgorithm::ReorderedGridItems::ReorderedGridItems( NGGridLayoutAlgorithm::ReorderedGridItems::ReorderedGridItems(
const Vector<wtf_size_t>& reordered_item_indices, const Vector<wtf_size_t>& reordered_item_indices,
Vector<GridItemData>& items) Vector<GridItemData>& grid_items)
: reordered_item_indices_(reordered_item_indices), items_(items) {} : reordered_item_indices_(reordered_item_indices),
grid_items_(grid_items) {}
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator NGGridLayoutAlgorithm::ReorderedGridItems::Iterator
NGGridLayoutAlgorithm::ReorderedGridItems::begin() { NGGridLayoutAlgorithm::ReorderedGridItems::begin() {
return Iterator(reordered_item_indices_.begin(), &items_); return Iterator(reordered_item_indices_.begin(), &grid_items_);
} }
NGGridLayoutAlgorithm::ReorderedGridItems::Iterator NGGridLayoutAlgorithm::ReorderedGridItems::Iterator
NGGridLayoutAlgorithm::ReorderedGridItems::end() { NGGridLayoutAlgorithm::ReorderedGridItems::end() {
return Iterator(reordered_item_indices_.end(), &items_); return Iterator(reordered_item_indices_.end(), &grid_items_);
} }
NGGridLayoutAlgorithm::ReorderedGridItems NGGridLayoutAlgorithm::ReorderedGridItems
NGGridLayoutAlgorithm::GetReorderedGridItems() { NGGridLayoutAlgorithm::GetReorderedGridItems() {
return ReorderedGridItems(reordered_item_indices_, items_); return ReorderedGridItems(reordered_item_indices_, grid_items_);
} }
NGGridLayoutAlgorithmTrackCollection& NGGridLayoutAlgorithm::TrackCollection( NGGridLayoutAlgorithmTrackCollection& NGGridLayoutAlgorithm::TrackCollection(
...@@ -281,12 +284,17 @@ void NGGridLayoutAlgorithm::ConstructAndAppendGridItems() { ...@@ -281,12 +284,17 @@ void NGGridLayoutAlgorithm::ConstructAndAppendGridItems() {
for (NGBlockNode child = iterator.NextChild(); child; for (NGBlockNode child = iterator.NextChild(); child;
child = iterator.NextChild()) { child = iterator.NextChild()) {
GridItemData grid_item = MeasureGridItem(child); GridItemData grid_item = MeasureGridItem(child);
items_.emplace_back(grid_item); // Store out-of-flow items separately, as they do not contribute to track
// sizing or auto placement.
if (child.IsOutOfFlowPositioned())
out_of_flow_items_.emplace_back(grid_item);
else
grid_items_.emplace_back(grid_item);
} }
// Fill grid item indices vector in document order. // Fill grid item indices vector in document order.
reordered_item_indices_.ReserveInitialCapacity(items_.size()); reordered_item_indices_.ReserveInitialCapacity(grid_items_.size());
for (wtf_size_t i = 0; i < items_.size(); ++i) for (wtf_size_t i = 0; i < grid_items_.size(); ++i)
reordered_item_indices_.push_back(i); reordered_item_indices_.push_back(i);
} }
...@@ -403,7 +411,7 @@ void NGGridLayoutAlgorithm::DetermineExplicitTrackStarts() { ...@@ -403,7 +411,7 @@ void NGGridLayoutAlgorithm::DetermineExplicitTrackStarts() {
void NGGridLayoutAlgorithm::CacheItemSetIndices() { void NGGridLayoutAlgorithm::CacheItemSetIndices() {
auto CacheItemSetIndices = [this](GridTrackSizingDirection track_direction) { auto CacheItemSetIndices = [this](GridTrackSizingDirection track_direction) {
const auto& track_collection = TrackCollection(track_direction); const auto& track_collection = TrackCollection(track_direction);
for (GridItemData& item : items_) { for (GridItemData& item : grid_items_) {
wtf_size_t first_spanned_range = wtf_size_t first_spanned_range =
track_collection.RangeIndexFromTrackNumber( track_collection.RangeIndexFromTrackNumber(
item.StartLine(track_direction)); item.StartLine(track_direction));
...@@ -430,7 +438,6 @@ void NGGridLayoutAlgorithm::CacheItemSetIndices() { ...@@ -430,7 +438,6 @@ void NGGridLayoutAlgorithm::CacheItemSetIndices() {
} }
} }
}; };
CacheItemSetIndices(kForColumns); CacheItemSetIndices(kForColumns);
CacheItemSetIndices(kForRows); CacheItemSetIndices(kForRows);
} }
...@@ -439,8 +446,8 @@ void NGGridLayoutAlgorithm::DetermineGridItemsSpanningIntrinsicOrFlexTracks( ...@@ -439,8 +446,8 @@ void NGGridLayoutAlgorithm::DetermineGridItemsSpanningIntrinsicOrFlexTracks(
GridTrackSizingDirection track_direction) { GridTrackSizingDirection track_direction) {
auto CompareGridItemsByStartLine = auto CompareGridItemsByStartLine =
[this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool { [this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool {
return items_[index_a].StartLine(track_direction) < return grid_items_[index_a].StartLine(track_direction) <
items_[index_b].StartLine(track_direction); grid_items_[index_b].StartLine(track_direction);
}; };
std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(), std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(),
CompareGridItemsByStartLine); CompareGridItemsByStartLine);
...@@ -922,14 +929,14 @@ void NGGridLayoutAlgorithm::ResolveIntrinsicTrackSizes( ...@@ -922,14 +929,14 @@ void NGGridLayoutAlgorithm::ResolveIntrinsicTrackSizes(
// - Finally, consider all items spanning a flexible track. // - Finally, consider all items spanning a flexible track.
auto CompareGridItemsForIntrinsicTrackResolution = auto CompareGridItemsForIntrinsicTrackResolution =
[this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool { [this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool {
if (items_[index_a].is_spanning_flex_track || if (grid_items_[index_a].is_spanning_flex_track ||
items_[index_b].is_spanning_flex_track) { grid_items_[index_b].is_spanning_flex_track) {
// Ignore span sizes if one of the items spans a track with a flexible // Ignore span sizes if one of the items spans a track with a flexible
// sizing function; items not spanning such tracks should come first. // sizing function; items not spanning such tracks should come first.
return !items_[index_a].is_spanning_flex_track; return !grid_items_[index_a].is_spanning_flex_track;
} }
return items_[index_a].SpanSize(track_direction) < return grid_items_[index_a].SpanSize(track_direction) <
items_[index_b].SpanSize(track_direction); grid_items_[index_b].SpanSize(track_direction);
}; };
std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(), std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(),
CompareGridItemsForIntrinsicTrackResolution); CompareGridItemsForIntrinsicTrackResolution);
...@@ -983,72 +990,89 @@ GridTrackSizingDirection NGGridLayoutAlgorithm::AutoFlowDirection() const { ...@@ -983,72 +990,89 @@ GridTrackSizingDirection NGGridLayoutAlgorithm::AutoFlowDirection() const {
} }
void NGGridLayoutAlgorithm::PlaceGridItems() { void NGGridLayoutAlgorithm::PlaceGridItems() {
NGGridChildIterator iterator(Node());
LayoutUnit current_inline_offset, current_block_offset;
LayoutUnit column_grid_gap = GridGap(GridTrackSizingDirection::kForColumns); LayoutUnit column_grid_gap = GridGap(GridTrackSizingDirection::kForColumns);
LayoutUnit row_grid_gap = GridGap(GridTrackSizingDirection::kForRows); LayoutUnit row_grid_gap = GridGap(GridTrackSizingDirection::kForRows);
for (auto row_set_iterator = TrackCollection(kForRows).GetSetIterator(); LayoutUnit column_set_offset = BorderScrollbarPadding().inline_start;
!row_set_iterator.IsAtEnd(); row_set_iterator.MoveToNextSet()) { Vector<LayoutUnit> column_set_offsets = {column_set_offset};
LayoutUnit row_base_size = row_set_iterator.CurrentSet().BaseSize(); column_set_offsets.ReserveCapacity(
current_inline_offset = LayoutUnit(); algorithm_column_track_collection_.SetCount() + 1);
for (auto column_set_iterator = for (auto column_set_iterator =
TrackCollection(kForColumns).GetSetIterator(); algorithm_column_track_collection_.GetSetIterator();
!column_set_iterator.IsAtEnd(); column_set_iterator.MoveToNextSet()) { !column_set_iterator.IsAtEnd(); column_set_iterator.MoveToNextSet()) {
LayoutUnit column_base_size = column_set_iterator.CurrentSet().BaseSize(); const auto& set = column_set_iterator.CurrentSet();
column_set_offset += set.BaseSize() + set.TrackCount() * column_grid_gap;
column_set_offsets.push_back(column_set_offset);
}
LayoutUnit row_set_offset = BorderScrollbarPadding().block_start;
Vector<LayoutUnit> row_set_offsets = {row_set_offset};
row_set_offsets.ReserveCapacity(algorithm_row_track_collection_.SetCount() +
1);
for (auto row_set_iterator = algorithm_row_track_collection_.GetSetIterator();
!row_set_iterator.IsAtEnd(); row_set_iterator.MoveToNextSet()) {
const auto& set = row_set_iterator.CurrentSet();
row_set_offset += set.BaseSize() + set.TrackCount() * row_grid_gap;
row_set_offsets.push_back(row_set_offset);
}
const NGBlockNode child_node = iterator.NextChild(); for (GridItemData& grid_item : grid_items_) {
if (!child_node) wtf_size_t column_start_index = grid_item.columns_begin_set_index;
return; // TODO(kschmi): DCHECK when auto rows/columns are implemented. wtf_size_t column_end_index = grid_item.columns_end_set_index;
wtf_size_t row_start_index = grid_item.rows_begin_set_index;
wtf_size_t row_end_index = grid_item.rows_end_set_index;
DCHECK_LT(column_start_index, column_end_index);
DCHECK_LT(row_start_index, row_end_index);
DCHECK_LT(column_end_index, column_set_offsets.size());
DCHECK_LT(row_end_index, row_set_offsets.size());
LogicalOffset offset = {column_set_offsets[column_start_index],
row_set_offsets[row_start_index]};
// Inline and block sizes can be deduced from the delta between the inline
// offset and the cumulated offset at the given item's end indices. The
// cumulated offset's calculation includes the grid gap between and after
// the spanned tracks. The latter is not needed, so it is subtracted.
LogicalSize size = {
column_set_offsets[column_end_index] - offset.inline_offset -
column_grid_gap,
row_set_offsets[row_end_index] - offset.block_offset - row_grid_gap};
DCHECK_GE(size.inline_size, 0);
DCHECK_GE(size.block_size, 0);
PlaceGridItem(grid_item, offset, size);
}
if (child_node.IsOutOfFlowPositioned()) { for (GridItemData& out_of_flow_item : out_of_flow_items_) {
// TODO(kschmi): Pass correct static positioned offset in. // TODO(ansollan): Look up offsets based on specified row/column for
container_builder_.AddOutOfFlowChildCandidate(child_node, // absolutely-positioned items, as described in
// https://drafts.csswg.org/css-grid-1/#abspos, and pass the correct static
// positioned offset in.
container_builder_.AddOutOfFlowChildCandidate(out_of_flow_item.node,
LogicalOffset()); LogicalOffset());
continue;
} }
}
// Layout child nodes based on constraint space from grid row/column void NGGridLayoutAlgorithm::PlaceGridItem(const GridItemData& grid_item,
// definitions and the inline and block offsets being accumulated. LogicalOffset offset,
const auto& child_style = child_node.Style(); LogicalSize size) {
NGConstraintSpaceBuilder builder(ConstraintSpace(), const auto& item_style = grid_item.node.Style();
child_style.GetWritingMode(), NGConstraintSpaceBuilder builder(
/* is_new_fc */ true); ConstraintSpace(), item_style.GetWritingMode(), /* is_new_fc */ true);
SetOrthogonalFallbackInlineSizeIfNeeded(Style(), child_node, &builder); SetOrthogonalFallbackInlineSizeIfNeeded(Style(), grid_item.node, &builder);
builder.SetIsPaintedAtomically(true); builder.SetIsPaintedAtomically(true);
builder.SetAvailableSize(LogicalSize(column_base_size, row_base_size)); builder.SetAvailableSize(size);
builder.SetPercentageResolutionSize( builder.SetPercentageResolutionSize(size);
LogicalSize(column_base_size, row_base_size)); builder.SetTextDirection(item_style.Direction());
builder.SetTextDirection(child_style.Direction()); builder.SetIsShrinkToFit(item_style.LogicalWidth().IsAuto());
builder.SetIsShrinkToFit(child_style.LogicalWidth().IsAuto());
NGConstraintSpace constraint_space = builder.ToConstraintSpace(); NGConstraintSpace constraint_space = builder.ToConstraintSpace();
scoped_refptr<const NGLayoutResult> result = scoped_refptr<const NGLayoutResult> result =
child_node.Layout(constraint_space); grid_item.node.Layout(constraint_space);
container_builder_.AddChild( container_builder_.AddChild(
result->PhysicalFragment(), result->PhysicalFragment(),
{current_inline_offset, current_block_offset}); {offset.inline_offset + grid_item.margins.inline_start,
current_inline_offset += column_base_size + column_grid_gap; offset.block_offset + grid_item.margins.block_start});
}
current_block_offset += row_base_size + row_grid_gap;
}
// TODO(kschmi): There should not be any remaining children, as grid auto
// rows and columns should be expanded to handle all children. However, as
// that functionality isn't implemented yet, it is currently possible to
// have more children than available rows and columns. For now, place these
// children at (0, 0). This should be turned into an assert that no children
// remain in the iterator after the above loops have completed iterating over
// rows and columns.
while (const NGBlockNode child_node = iterator.NextChild()) {
NGConstraintSpace constraint_space = BuildSpaceForGridItem(child_node);
scoped_refptr<const NGLayoutResult> result =
child_node.Layout(constraint_space);
container_builder_.AddChild(result->PhysicalFragment(),
{LayoutUnit(), LayoutUnit()});
}
} }
LayoutUnit NGGridLayoutAlgorithm::GridGap( LayoutUnit NGGridLayoutAlgorithm::GridGap(
......
...@@ -93,7 +93,7 @@ class CORE_EXPORT NGGridLayoutAlgorithm ...@@ -93,7 +93,7 @@ class CORE_EXPORT NGGridLayoutAlgorithm
: public std::iterator<std::input_iterator_tag, GridItemData> { : public std::iterator<std::input_iterator_tag, GridItemData> {
public: public:
Iterator(Vector<wtf_size_t>::const_iterator current_index, Iterator(Vector<wtf_size_t>::const_iterator current_index,
Vector<GridItemData>* items); Vector<GridItemData>* grid_items);
bool operator!=(const Iterator& other) const; bool operator!=(const Iterator& other) const;
GridItemData* operator->(); GridItemData* operator->();
...@@ -102,17 +102,17 @@ class CORE_EXPORT NGGridLayoutAlgorithm ...@@ -102,17 +102,17 @@ class CORE_EXPORT NGGridLayoutAlgorithm
private: private:
Vector<wtf_size_t>::const_iterator current_index_; Vector<wtf_size_t>::const_iterator current_index_;
Vector<GridItemData>* items_; Vector<GridItemData>* grid_items_;
}; };
ReorderedGridItems(const Vector<wtf_size_t>& reordered_item_indices, ReorderedGridItems(const Vector<wtf_size_t>& reordered_item_indices,
Vector<GridItemData>& items); Vector<GridItemData>& grid_items);
Iterator begin(); Iterator begin();
Iterator end(); Iterator end();
private: private:
const Vector<wtf_size_t>& reordered_item_indices_; const Vector<wtf_size_t>& reordered_item_indices_;
Vector<GridItemData>& items_; Vector<GridItemData>& grid_items_;
}; };
ReorderedGridItems GetReorderedGridItems(); ReorderedGridItems GetReorderedGridItems();
...@@ -174,6 +174,12 @@ class CORE_EXPORT NGGridLayoutAlgorithm ...@@ -174,6 +174,12 @@ class CORE_EXPORT NGGridLayoutAlgorithm
// Lays out and computes inline and block offsets for grid items. // Lays out and computes inline and block offsets for grid items.
void PlaceGridItems(); void PlaceGridItems();
// Lays out |grid_item| based on the offsets and sizes provided.
void PlaceGridItem(const GridItemData& grid_item,
LogicalOffset offset,
LogicalSize size);
// Gets the row or column gap of the grid. // Gets the row or column gap of the grid.
LayoutUnit GridGap(GridTrackSizingDirection track_direction); LayoutUnit GridGap(GridTrackSizingDirection track_direction);
...@@ -183,7 +189,8 @@ class CORE_EXPORT NGGridLayoutAlgorithm ...@@ -183,7 +189,8 @@ class CORE_EXPORT NGGridLayoutAlgorithm
LogicalSize border_box_size_; LogicalSize border_box_size_;
LogicalSize child_percentage_size_; LogicalSize child_percentage_size_;
Vector<GridItemData> items_; Vector<GridItemData> grid_items_;
Vector<GridItemData> out_of_flow_items_;
Vector<wtf_size_t> reordered_item_indices_; Vector<wtf_size_t> reordered_item_indices_;
NGGridBlockTrackCollection block_column_track_collection_; NGGridBlockTrackCollection block_column_track_collection_;
......
...@@ -44,13 +44,13 @@ class NGGridLayoutAlgorithmTest ...@@ -44,13 +44,13 @@ class NGGridLayoutAlgorithmTest
// Helper methods to access private data on NGGridLayoutAlgorithm. This class // Helper methods to access private data on NGGridLayoutAlgorithm. This class
// is a friend of NGGridLayoutAlgorithm but the individual tests are not. // is a friend of NGGridLayoutAlgorithm but the individual tests are not.
wtf_size_t GridItemCount(const NGGridLayoutAlgorithm& algorithm) { wtf_size_t GridItemCount(const NGGridLayoutAlgorithm& algorithm) {
return algorithm.items_.size(); return algorithm.grid_items_.size();
} }
Vector<LayoutUnit> GridItemInlineSizes( Vector<LayoutUnit> GridItemInlineSizes(
const NGGridLayoutAlgorithm& algorithm) { const NGGridLayoutAlgorithm& algorithm) {
Vector<LayoutUnit> results; Vector<LayoutUnit> results;
for (const auto& item : algorithm.items_) { for (const auto& item : algorithm.grid_items_) {
results.push_back(item.inline_size); results.push_back(item.inline_size);
} }
return results; return results;
...@@ -59,7 +59,7 @@ class NGGridLayoutAlgorithmTest ...@@ -59,7 +59,7 @@ class NGGridLayoutAlgorithmTest
Vector<LayoutUnit> GridItemInlineMarginSum( Vector<LayoutUnit> GridItemInlineMarginSum(
const NGGridLayoutAlgorithm& algorithm) { const NGGridLayoutAlgorithm& algorithm) {
Vector<LayoutUnit> results; Vector<LayoutUnit> results;
for (const auto& item : algorithm.items_) { for (const auto& item : algorithm.grid_items_) {
results.push_back(item.margins.InlineSum()); results.push_back(item.margins.InlineSum());
} }
return results; return results;
...@@ -68,7 +68,7 @@ class NGGridLayoutAlgorithmTest ...@@ -68,7 +68,7 @@ class NGGridLayoutAlgorithmTest
Vector<MinMaxSizes> GridItemMinMaxSizes( Vector<MinMaxSizes> GridItemMinMaxSizes(
const NGGridLayoutAlgorithm& algorithm) { const NGGridLayoutAlgorithm& algorithm) {
Vector<MinMaxSizes> results; Vector<MinMaxSizes> results;
for (const auto& item : algorithm.items_) { for (const auto& item : algorithm.grid_items_) {
results.push_back(item.min_max_sizes); results.push_back(item.min_max_sizes);
} }
return results; return results;
...@@ -76,7 +76,7 @@ class NGGridLayoutAlgorithmTest ...@@ -76,7 +76,7 @@ class NGGridLayoutAlgorithmTest
Vector<GridArea> GridItemGridAreas(const NGGridLayoutAlgorithm& algorithm) { Vector<GridArea> GridItemGridAreas(const NGGridLayoutAlgorithm& algorithm) {
Vector<GridArea> results; Vector<GridArea> results;
for (const auto& item : algorithm.items_) { for (const auto& item : algorithm.grid_items_) {
results.push_back(item.resolved_position); results.push_back(item.resolved_position);
} }
return results; return results;
...@@ -91,8 +91,8 @@ class NGGridLayoutAlgorithmTest ...@@ -91,8 +91,8 @@ class NGGridLayoutAlgorithmTest
Vector<wtf_size_t> GridItemsSpanningIntrinsicTrack( Vector<wtf_size_t> GridItemsSpanningIntrinsicTrack(
const NGGridLayoutAlgorithm& algorithm) { const NGGridLayoutAlgorithm& algorithm) {
Vector<wtf_size_t> results; Vector<wtf_size_t> results;
for (wtf_size_t i = 0; i < algorithm.items_.size(); ++i) { for (wtf_size_t i = 0; i < algorithm.grid_items_.size(); ++i) {
if (algorithm.items_[i].is_spanning_intrinsic_track) if (algorithm.grid_items_[i].is_spanning_intrinsic_track)
results.push_back(i); results.push_back(i);
} }
return results; return results;
...@@ -101,8 +101,8 @@ class NGGridLayoutAlgorithmTest ...@@ -101,8 +101,8 @@ class NGGridLayoutAlgorithmTest
Vector<wtf_size_t> GridItemsSpanningFlexTrack( Vector<wtf_size_t> GridItemsSpanningFlexTrack(
const NGGridLayoutAlgorithm& algorithm) { const NGGridLayoutAlgorithm& algorithm) {
Vector<wtf_size_t> results; Vector<wtf_size_t> results;
for (wtf_size_t i = 0; i < algorithm.items_.size(); ++i) { for (wtf_size_t i = 0; i < algorithm.grid_items_.size(); ++i) {
if (algorithm.items_[i].is_spanning_flex_track) if (algorithm.grid_items_[i].is_spanning_flex_track)
results.push_back(i); results.push_back(i);
} }
return results; return results;
...@@ -986,34 +986,36 @@ TEST_F(NGGridLayoutAlgorithmTest, ...@@ -986,34 +986,36 @@ TEST_F(NGGridLayoutAlgorithmTest,
algorithm.Layout(); algorithm.Layout();
DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForColumns); DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForColumns);
Vector<wtf_size_t> expected_items_spanning_intrinsic_track = {0, 1, 3}; Vector<wtf_size_t> expected_grid_items_spanning_intrinsic_track = {0, 1, 3};
Vector<wtf_size_t> expected_items_spanning_flex_track = {1}; Vector<wtf_size_t> expected_grid_items_spanning_flex_track = {1};
Vector<wtf_size_t> actual_items = GridItemsSpanningIntrinsicTrack(algorithm); Vector<wtf_size_t> actual_items = GridItemsSpanningIntrinsicTrack(algorithm);
EXPECT_EQ(expected_items_spanning_intrinsic_track.size(), EXPECT_EQ(expected_grid_items_spanning_intrinsic_track.size(),
actual_items.size()); actual_items.size());
for (wtf_size_t i = 0; i < actual_items.size(); ++i) for (wtf_size_t i = 0; i < actual_items.size(); ++i)
EXPECT_EQ(expected_items_spanning_intrinsic_track[i], actual_items[i]); EXPECT_EQ(expected_grid_items_spanning_intrinsic_track[i], actual_items[i]);
actual_items = GridItemsSpanningFlexTrack(algorithm); actual_items = GridItemsSpanningFlexTrack(algorithm);
EXPECT_EQ(expected_items_spanning_flex_track.size(), actual_items.size()); EXPECT_EQ(expected_grid_items_spanning_flex_track.size(),
actual_items.size());
for (wtf_size_t i = 0; i < actual_items.size(); ++i) for (wtf_size_t i = 0; i < actual_items.size(); ++i)
EXPECT_EQ(expected_items_spanning_flex_track[i], actual_items[i]); EXPECT_EQ(expected_grid_items_spanning_flex_track[i], actual_items[i]);
DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForRows); DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForRows);
expected_items_spanning_intrinsic_track = {1, 2, 3}; expected_grid_items_spanning_intrinsic_track = {1, 2, 3};
expected_items_spanning_flex_track = {2}; expected_grid_items_spanning_flex_track = {2};
actual_items = GridItemsSpanningIntrinsicTrack(algorithm); actual_items = GridItemsSpanningIntrinsicTrack(algorithm);
EXPECT_EQ(expected_items_spanning_intrinsic_track.size(), EXPECT_EQ(expected_grid_items_spanning_intrinsic_track.size(),
actual_items.size()); actual_items.size());
for (wtf_size_t i = 0; i < actual_items.size(); ++i) for (wtf_size_t i = 0; i < actual_items.size(); ++i)
EXPECT_EQ(expected_items_spanning_intrinsic_track[i], actual_items[i]); EXPECT_EQ(expected_grid_items_spanning_intrinsic_track[i], actual_items[i]);
actual_items = GridItemsSpanningFlexTrack(algorithm); actual_items = GridItemsSpanningFlexTrack(algorithm);
EXPECT_EQ(expected_items_spanning_flex_track.size(), actual_items.size()); EXPECT_EQ(expected_grid_items_spanning_flex_track.size(),
actual_items.size());
for (wtf_size_t i = 0; i < actual_items.size(); ++i) for (wtf_size_t i = 0; i < actual_items.size(); ++i)
EXPECT_EQ(expected_items_spanning_flex_track[i], actual_items[i]); EXPECT_EQ(expected_grid_items_spanning_flex_track[i], actual_items[i]);
} }
TEST_F(NGGridLayoutAlgorithmTest, FixedSizePositioning) { TEST_F(NGGridLayoutAlgorithmTest, FixedSizePositioning) {
...@@ -1128,6 +1130,83 @@ TEST_F(NGGridLayoutAlgorithmTest, FixedSizePositioningAutoRows) { ...@@ -1128,6 +1130,83 @@ TEST_F(NGGridLayoutAlgorithmTest, FixedSizePositioningAutoRows) {
EXPECT_EQ(expectation, dump); EXPECT_EQ(expectation, dump);
} }
TEST_F(NGGridLayoutAlgorithmTest, SpecifiedPositionsOutOfOrder) {
if (!RuntimeEnabledFeatures::LayoutNGGridEnabled())
return;
LoadAhem();
SetBodyInnerHTML(R"HTML(
<style>
body {
font: 10px/1 Ahem;
}
#grid {
display: grid;
width: 400px;
height: 400px;
grid-template-columns: 100px 100px;
grid-template-rows: 100px 100px;
}
.grid_item1 {
display: block;
width: 100px;
height: 100px;
grid-row: 2;
grid-column: 2;
}
.grid_item2 {
display: block;
width: 90px;
height: 90px;
grid-row: 1;
grid-column: 1;
}
.grid_item3 {
display: block;
width: 80px;
height: 80px;
grid-row: 1;
grid-column: 2;
}
.grid_item4 {
display: block;
width: 70px;
height: 70px;
grid-row: 2;
grid-column: 1;
}
</style>
<div id="wrapper">
<div id="grid">
<div class="grid_item1">1</div>
<div class="grid_item2">2</div>
<div class="grid_item3">3</div>
<div class="grid_item4">4</div>
</div>
</div>
)HTML");
String dump = DumpFragmentTree(GetElementById("wrapper"));
String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::.
offset:unplaced size:1000x400
offset:0,0 size:400x400
offset:100,100 size:100x100
offset:0,0 size:10x10
offset:0,0 size:90x90
offset:0,0 size:10x10
offset:100,0 size:80x80
offset:0,0 size:10x10
offset:0,100 size:70x70
offset:0,0 size:10x10
)DUMP";
EXPECT_EQ(expectation, dump);
}
TEST_F(NGGridLayoutAlgorithmTest, GridWithGap) { TEST_F(NGGridLayoutAlgorithmTest, GridWithGap) {
if (!RuntimeEnabledFeatures::LayoutNGGridEnabled()) if (!RuntimeEnabledFeatures::LayoutNGGridEnabled())
return; return;
...@@ -1295,4 +1374,142 @@ TEST_F(NGGridLayoutAlgorithmTest, AutoSizedGridWithGap) { ...@@ -1295,4 +1374,142 @@ TEST_F(NGGridLayoutAlgorithmTest, AutoSizedGridWithGap) {
EXPECT_EQ(expectation, dump); EXPECT_EQ(expectation, dump);
} }
TEST_F(NGGridLayoutAlgorithmTest, ItemsSizeWithGap) {
if (!RuntimeEnabledFeatures::LayoutNGGridEnabled())
return;
LoadAhem();
SetBodyInnerHTML(R"HTML(
<style>
body {
font: 10px/1 Ahem;
}
#grid {
display: grid;
width: 340px;
height: 100px;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px;
column-gap: 20px;
}
.grid_item {
width: 100%;
height: 100%;
}
#cell1 {
grid-row: 1 / 2;
grid-column: 1 / 2;
}
#cell2 {
grid-row: 1 / 2;
grid-column: 2 / 3;
}
#cell3 {
grid-row: 1 / 2;
grid-column: 3 / 4;
}
</style>
<div id="wrapper">
<div id="grid">
<div class="grid_item" id="cell1" style="background: orange;">1</div>
<div class="grid_item" id="cell2" style="background: green;">3</div>
<div class="grid_item" id="cell3" style="background: blueviolet;">5</div>
</div>
</div>
)HTML");
String dump = DumpFragmentTree(GetElementById("wrapper"));
String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::.
offset:unplaced size:1000x100
offset:0,0 size:340x100
offset:0,0 size:100x100
offset:0,0 size:10x10
offset:120,0 size:100x100
offset:0,0 size:10x10
offset:240,0 size:100x100
offset:0,0 size:10x10
)DUMP";
EXPECT_EQ(expectation, dump);
}
TEST_F(NGGridLayoutAlgorithmTest, OutOfFlowGridItems) {
if (!RuntimeEnabledFeatures::LayoutNGGridEnabled())
return;
LoadAhem();
SetBodyInnerHTML(R"HTML(
<style>
body {
font: 10px/1 Ahem;
}
#grid {
display: grid;
width: 100px;
height: 300px;
grid-auto-columns: 100px;
grid-auto-rows: 100px;
position: relative;
}
.grid_item {
width: 100px;
height: 100px;
background-color: gray;
}
#cell2 {
position: absolute;
left: 25%;
top: 10%;
width: 100px;
height: 100px;
background-color: blue;
}
#cell4 {
position: absolute;
top: 150px;
left: 25px;
width: 100%;
height: 35%;
background-color: yellow;
}
</style>
<div id="wrapper">
<div id="grid">
<div class="grid_item" style="background: orange;">1</div>
<div id="cell2">2</div>
<div class="grid_item" style="background: green;">3</div>
<div id="cell4">4</div>
<div class="grid_item" style="background: blueviolet;">5</div>
</div>
</div>
)HTML");
String dump = DumpFragmentTree(GetElementById("wrapper"));
String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::.
offset:unplaced size:1000x300
offset:0,0 size:100x300
offset:0,0 size:100x100
offset:0,0 size:10x10
offset:0,100 size:100x100
offset:0,0 size:10x10
offset:0,200 size:100x100
offset:0,0 size:10x10
offset:25,30 size:100x100
offset:0,0 size:10x10
offset:25,150 size:100x105
offset:0,0 size:10x10
)DUMP";
EXPECT_EQ(expectation, dump);
}
} // namespace blink } // namespace blink
...@@ -3444,7 +3444,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthog ...@@ -3444,7 +3444,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthog
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-015.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-016.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-017.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-017.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-002.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-003.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-003.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-004.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-004.html [ Failure Crash ]
...@@ -3478,7 +3477,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positi ...@@ -3478,7 +3477,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positi
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-016.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-017.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-017.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-sizing-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-sizing-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline-vertical.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline-vertical.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline.html [ Failure ]
...@@ -3670,7 +3668,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/gri ...@@ -3670,7 +3668,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/gri
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-5.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-5.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-6.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-6.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-7.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-7.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-place-content-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-002.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-003.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-003.html [ Failure Crash ]
...@@ -3840,6 +3837,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definiti ...@@ -3840,6 +3837,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definiti
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-intrinsic-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-intrinsic-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-002.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-item-with-positioned-items-crash.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-positioned-block-item-after-inline-item-crash.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-max-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-max-size-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-002.html [ Failure ]
...@@ -3904,7 +3903,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr ...@@ -3904,7 +3903,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-flex-container-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-flex-container-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-margins-and-writing-modes-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-002.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-003.html [ Failure ]
...@@ -3923,17 +3921,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr ...@@ -3923,17 +3921,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-002.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-002.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-003.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-004.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-005.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-006.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-007.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-008.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-009.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-010.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-011.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-012.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-013.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-014.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-014.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html [ Failure Crash ]
...@@ -3981,12 +3968,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr ...@@ -3981,12 +3968,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/gr
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-003.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-003.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-004.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-004.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-005.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-005.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-002.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-003.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-004.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-005.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-006.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-replaced-subitems-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-replaced-subitems-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-subitems-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-subitems-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/remove-svg-grid-item-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/remove-svg-grid-item-001.html [ Failure Crash ]
...@@ -3995,9 +3976,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/co ...@@ -3995,9 +3976,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/co
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/compute-intrinsic-widths-scrollbar-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/compute-intrinsic-widths-scrollbar-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-grid.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-inline-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-inline-grid.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-004.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-005.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-006.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-box-sizing-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-box-sizing-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-button-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-button-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html [ Failure Crash ]
...@@ -4017,7 +3995,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/gr ...@@ -4017,7 +3995,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/gr
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-002.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-003.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-003.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-002.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-floats-no-intrude-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-floats-no-intrude-002.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-flex-content-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-flex-content-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-tracks-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-tracks-001.html [ Failure Crash ]
...@@ -4079,10 +4056,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algori ...@@ -4079,10 +4056,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algori
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-spanned-shrinkwrap-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-spanned-shrinkwrap-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-stretch-respects-min-size-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-stretch-respects-min-size-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-implicit-track.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-implicit-track.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-withcontent.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-withcontent.html [ Failure Crash ]
...@@ -4092,7 +4067,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid- ...@@ -4092,7 +4067,6 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-implicit-track.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-implicit-track.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-withcontent.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-withcontent.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-auto-flow-sparse-001.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-auto-placement-implicit-tracks-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-auto-placement-implicit-tracks-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-grid-tracks-recompute-child-positions-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-grid-tracks-recompute-child-positions-001.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-named-grid-recompute-child-positions-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-named-grid-recompute-child-positions-001.html [ Failure Crash ]
...@@ -4111,6 +4085,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/gri ...@@ -4111,6 +4085,8 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/gri
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-columns.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-columns.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/auto-content-resolution-rows.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/breadth-size-resolution-grid.html [ Pass ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/calc-resolution-grid-item.html [ Pass ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-and-content-sized-resolution-columns.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-and-content-sized-resolution-columns.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-content-sized-column-use-available-width.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-content-sized-column-use-available-width.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-content-sized-columns-resize.html [ Failure Timeout ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/flex-content-sized-columns-resize.html [ Failure Timeout ]
...@@ -4118,8 +4094,8 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns- ...@@ -4118,8 +4094,8 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-get-set.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-get-set.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-update.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-update.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-resolution.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-resolution.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-update.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-repeat-huge-grid.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-repeat-huge-grid.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set.html [ Failure Crash ]
...@@ -4143,26 +4119,19 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-pla ...@@ -4143,26 +4119,19 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-pla
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-definite-span.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-definite-span.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-bad-resolution-double-span.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-border-overflow-paint.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-border-overflow-paint.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-order-auto-flow.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-display.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-grid-container-percentage-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-grid-container-percentage-rows.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-margin-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-margin-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-named-grid-area-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-named-grid-line-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-named-grid-line-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-indexes.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-indexes.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-integer-explicit-grid-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-integer-explicit-grid-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-position-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-position-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-auto-flow-resolution.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-auto-flow-resolution.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-paint-order.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-paint-order.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow-paint.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow-paint.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-paddings-and-writing-modes.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-position-changed-dynamic.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-auto-placement-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-auto-placement-update.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-track-breadth-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-track-breadth-update.html [ Failure Crash ]
...@@ -4179,7 +4148,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-bor ...@@ -4179,7 +4148,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-bor
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-z-index-stacking-context.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html [ Failure ]
...@@ -4187,9 +4155,7 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-conte ...@@ -4187,9 +4155,7 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-conte
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-lr.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-rl.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-margins-not-collapse.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-item-overflow.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-respect-dom-order.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-respect-dom-order.html [ Failure Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-rtl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-rtl.html [ Failure ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-margin-border-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-margin-border-padding.html [ Failure ]
...@@ -4252,8 +4218,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-s ...@@ -4252,8 +4218,6 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-s
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html [ Failure Crash ]
# These pass but hit DCHECKS # These pass but hit DCHECKS
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-item-with-positioned-items-crash.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-positioned-block-item-after-inline-item-crash.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html [ Crash ]
crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html [ Crash ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment