#include "third_party/blink/renderer/core/intersection_observer/intersection_observation.h"
#include "third_party/blink/renderer/core/dom/element_rare_data_vector.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h"
#include "third_party/blink/renderer/core/intersection_observer/intersection_geometry.h"
#include "third_party/blink/renderer/core/intersection_observer/intersection_observer.h"
#include "third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h"
#include "third_party/blink/renderer/core/intersection_observer/intersection_observer_entry.h"
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#define CHECK_SKIPPED_UPDATE_ON_SCROLL() …
namespace blink {
namespace {
Document& TrackingDocument(const IntersectionObservation* observation) { … }
}
IntersectionObservation::IntersectionObservation(IntersectionObserver& observer,
Element& target)
: … { … }
int64_t IntersectionObservation::ComputeIntersection(
unsigned compute_flags,
gfx::Vector2dF accumulated_scroll_delta_since_last_update,
ComputeIntersectionsContext& context) { … }
void IntersectionObservation::ComputeIntersectionImmediately(
ComputeIntersectionsContext& context) { … }
gfx::Vector2dF IntersectionObservation::MinScrollDeltaToUpdate() const { … }
void IntersectionObservation::TakeRecords(
HeapVector<Member<IntersectionObserverEntry>>& entries) { … }
void IntersectionObservation::Disconnect() { … }
void IntersectionObservation::Trace(Visitor* visitor) const { … }
bool IntersectionObservation::CanUseCachedRectsForTesting(
bool scroll_and_visibility_only) const { … }
bool IntersectionObservation::ShouldCompute(unsigned flags) const { … }
bool IntersectionObservation::MaybeDelayAndReschedule(
unsigned flags,
ComputeIntersectionsContext& context) { … }
unsigned IntersectionObservation::GetIntersectionGeometryFlags(
unsigned compute_flags) const { … }
void IntersectionObservation::ProcessIntersectionGeometry(
const IntersectionGeometry& geometry,
ComputeIntersectionsContext& context) { … }
}