#include "third_party/blink/renderer/core/frame/sticky_ad_detector.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/core/dom/dom_node_ids.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/html/html_image_element.h"
#include "third_party/blink/renderer/core/layout/hit_test_location.h"
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_object_inlines.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/scroll/scrollable_area.h"
#include <cstdlib>
namespace blink {
namespace {
constexpr base::TimeDelta kFireInterval = …;
constexpr double kLargeAdSizeToViewportSizeThreshold = …;
bool IsStickyAdCandidate(Element* element) { … }
}
void StickyAdDetector::MaybeFireDetection(LocalFrame* outermost_main_frame) { … }
void StickyAdDetector::OnLargeStickyAdDetected(
LocalFrame* outermost_main_frame) { … }
}