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