Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp

Issue 2706673002: Mark elements as viewport constrained when they become sticky positioned (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp b/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
index ca16f0c6be9a2f1ec16ff0bf5dd4f3dcc545b033..133df0a09698577c163f223d3240aa827aa6db65 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObjectTest.cpp
@@ -328,4 +328,32 @@ TEST_F(LayoutBoxModelObjectTest, StickyPositionConstraintInvalidation) {
.x());
}
+TEST_F(LayoutBoxModelObjectTest, StyleChangesUpdateViewportConstrainedObjects) {
+ setBodyInnerHTML(
+ "<style>"
+ ".container { height: 200%; }"
+ "#sticky { position: sticky; top: 0; height: 50px; }</style>"
+ "<div class='container'><div id='sticky'></div></div>");
+
+ LayoutBoxModelObject* sticky =
+ toLayoutBoxModelObject(getLayoutObjectByElementId("sticky"));
+
+ EXPECT_TRUE(
+ document().view()->viewportConstrainedObjects()->contains(sticky));
+
+ RefPtr<ComputedStyle> relativeStyle = ComputedStyle::clone(*sticky->style());
+ relativeStyle->setPosition(EPosition::kRelative);
+ sticky->setStyle(relativeStyle.get());
+
+ EXPECT_FALSE(
+ document().view()->viewportConstrainedObjects()->contains(sticky));
+
+ RefPtr<ComputedStyle> stickyStyle = ComputedStyle::clone(*sticky->style());
+ stickyStyle->setPosition(EPosition::kSticky);
+ sticky->setStyle(stickyStyle.get());
+
+ EXPECT_TRUE(
+ document().view()->viewportConstrainedObjects()->contains(sticky));
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698