From 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 6 Oct 2020 12:48:11 +0200 Subject: BASELINE: Update Chromium to 84.0.4147.141 Change-Id: Ib85eb4cfa1cbe2b2b81e5022c8cad5c493969535 Reviewed-by: Allan Sandfeld Jensen --- .../layout/ng/ng_layout_result_caching_test.cc | 158 ++++++++++++++++++++- 1 file changed, 154 insertions(+), 4 deletions(-) (limited to 'chromium/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc') diff --git a/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc b/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc index 24df10ed942..573498622f7 100644 --- a/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc +++ b/chromium/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc @@ -1502,22 +1502,25 @@ TEST_F(NGLayoutResultCachingTest, MissIsFixedBlockSizeIndefinite) { EXPECT_EQ(result.get(), nullptr); } -TEST_F(NGLayoutResultCachingTest, HitFlexBoxMeasureAndLayout) { +TEST_F(NGLayoutResultCachingTest, HitColumnFlexBoxMeasureAndLayout) { ScopedLayoutNGFlexBoxForTest layout_ng_flex_box(true); SetBodyInnerHTML(R"HTML( -
+ +
-
+
-
+
@@ -1553,5 +1556,152 @@ TEST_F(NGLayoutResultCachingTest, HitFlexBoxMeasureAndLayout) { EXPECT_NE(result.get(), nullptr); } +TEST_F(NGLayoutResultCachingTest, HitRowFlexBoxMeasureAndLayout) { + ScopedLayoutNGFlexBoxForTest layout_ng_flex_box(true); + + SetBodyInnerHTML(R"HTML( + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )HTML"); + + auto* test1 = To(GetLayoutObjectByElementId("test1")); + auto* src1 = To(GetLayoutObjectByElementId("src1")); + auto* src2 = To(GetLayoutObjectByElementId("src2")); + + NGLayoutCacheStatus cache_status; + base::Optional fragment_geometry; + + // "src1" only had one "measure" pass performed, and should hit the "measure" + // cache-slot for "test1". + NGConstraintSpace space = + src1->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); + scoped_refptr result = test1->CachedLayoutResult( + space, nullptr, nullptr, &fragment_geometry, &cache_status); + + EXPECT_EQ(space.CacheSlot(), NGCacheSlot::kMeasure); + EXPECT_EQ(cache_status, NGLayoutCacheStatus::kHit); + EXPECT_NE(result.get(), nullptr); + + // "src2" had both a "measure" and "layout" pass performed, and should hit + // the "layout" cache-slot for "test1". + space = src2->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); + result = test1->CachedLayoutResult(space, nullptr, nullptr, + &fragment_geometry, &cache_status); + + EXPECT_EQ(space.CacheSlot(), NGCacheSlot::kLayout); + EXPECT_EQ(cache_status, NGLayoutCacheStatus::kHit); + EXPECT_NE(result.get(), nullptr); +} + +TEST_F(NGLayoutResultCachingTest, HitFlexLegacyImg) { + SetBodyInnerHTML(R"HTML( + +
+
+ +
+
+
+
+ +
+
+ )HTML"); + + auto* test = To(GetLayoutObjectByElementId("test")); + auto* src = To(GetLayoutObjectByElementId("src")); + + NGLayoutCacheStatus cache_status; + base::Optional fragment_geometry; + const NGConstraintSpace& space = + src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); + scoped_refptr result = test->CachedLayoutResult( + space, nullptr, nullptr, &fragment_geometry, &cache_status); + + EXPECT_EQ(cache_status, NGLayoutCacheStatus::kHit); + EXPECT_NE(result.get(), nullptr); +} + +TEST_F(NGLayoutResultCachingTest, HitFlexLegacyGrid) { + SetBodyInnerHTML(R"HTML( + +
+
+
+
+
+
+
+
+
+
+ )HTML"); + + auto* test = To(GetLayoutObjectByElementId("test")); + auto* src = To(GetLayoutObjectByElementId("src")); + + NGLayoutCacheStatus cache_status; + base::Optional fragment_geometry; + const NGConstraintSpace& space = + src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); + scoped_refptr result = test->CachedLayoutResult( + space, nullptr, nullptr, &fragment_geometry, &cache_status); + + EXPECT_EQ(cache_status, NGLayoutCacheStatus::kHit); + EXPECT_NE(result.get(), nullptr); +} + +TEST_F(NGLayoutResultCachingTest, HitOrthogonalRoot) { + SetBodyInnerHTML(R"HTML( + +
+
+ +
+
+ )HTML"); + + auto* target = To(GetLayoutObjectByElementId("target")); + + NGLayoutCacheStatus cache_status; + base::Optional fragment_geometry; + const NGConstraintSpace& space = + target->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); + scoped_refptr result = target->CachedLayoutResult( + space, nullptr, nullptr, &fragment_geometry, &cache_status); + + // We should hit the cache using the same constraint space. + EXPECT_EQ(cache_status, NGLayoutCacheStatus::kHit); + EXPECT_NE(result.get(), nullptr); +} + } // namespace } // namespace blink -- cgit v1.2.1