| Index: Source/core/layout/LayoutObject.cpp
|
| diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp
|
| index d08f93804d0716b7c5c97cfe0d2434f2e04f63d9..0036e3c2307df3145735d3cebf63f5d8076e0e3c 100644
|
| --- a/Source/core/layout/LayoutObject.cpp
|
| +++ b/Source/core/layout/LayoutObject.cpp
|
| @@ -2486,6 +2486,10 @@ void LayoutObject::willBeDestroyed()
|
|
|
| if (frameView())
|
| setIsSlowRepaintObject(false);
|
| +
|
| + if (view() && hasIntersectionObserver()) {
|
| + view()->removeIntersectionObserverTarget(this);
|
| + }
|
| }
|
|
|
| void LayoutObject::insertedIntoTree()
|
| @@ -2514,6 +2518,10 @@ void LayoutObject::insertedIntoTree()
|
|
|
| if (LayoutFlowThread* flowThread = flowThreadContainingBlock())
|
| flowThread->flowThreadDescendantWasInserted(this);
|
| +
|
| + if (view() && hasIntersectionObserver()) {
|
| + view()->addIntersectionObserverTarget(this);
|
| + }
|
| }
|
|
|
| void LayoutObject::willBeRemovedFromTree()
|
| @@ -2543,6 +2551,10 @@ void LayoutObject::willBeRemovedFromTree()
|
| // Update cached boundaries in SVG layoutObjects if a child is removed.
|
| if (parent()->isSVG())
|
| parent()->setNeedsBoundariesUpdate();
|
| +
|
| + if (view() && hasIntersectionObserver()) {
|
| + view()->removeIntersectionObserverTarget(this);
|
| + }
|
| }
|
|
|
| void LayoutObject::removeFromLayoutFlowThread()
|
|
|