Index: third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp |
diff --git a/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp b/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp |
index 2595a3be65cef80c4f421fa8d39e15058029b344..1bb3b3a29b848bc938c1e43721fcffc4ca49b46f 100644 |
--- a/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp |
+++ b/third_party/WebKit/Source/core/dom/ElementVisibilityObserver.cpp |
@@ -18,7 +18,7 @@ ElementVisibilityObserver::ElementVisibilityObserver( |
ElementVisibilityObserver::~ElementVisibilityObserver() = default; |
-void ElementVisibilityObserver::Start() { |
+void ElementVisibilityObserver::Start(float threshold) { |
DCHECK(!intersection_observer_); |
ExecutionContext* context = element_->GetExecutionContext(); |
@@ -26,8 +26,7 @@ void ElementVisibilityObserver::Start() { |
Document& document = ToDocument(*context); |
intersection_observer_ = IntersectionObserver::Create( |
- Vector<Length>(), Vector<float>({std::numeric_limits<float>::min()}), |
- &document, |
+ {} /* root_margin */, {threshold}, &document, |
WTF::Bind(&ElementVisibilityObserver::OnVisibilityChanged, |
WrapWeakPersistent(this))); |
DCHECK(intersection_observer_); |
@@ -53,7 +52,8 @@ DEFINE_TRACE(ElementVisibilityObserver) { |
void ElementVisibilityObserver::OnVisibilityChanged( |
const HeapVector<Member<IntersectionObserverEntry>>& entries) { |
- bool is_visible = entries.back()->intersectionRatio() > 0.f; |
+ bool is_visible = entries.back()->intersectionRatio() > |
+ intersection_observer_->thresholds()[0]; |
(*callback_.get())(is_visible); |
} |