#include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/frame/browser_controls.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/visual_viewport.h"
#include "third_party/blink/renderer/core/fullscreen/document_fullscreen.h"
#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
#include "third_party/blink/renderer/core/scroll/scrollable_area.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/size_conversions.h"
namespace blink {
class RootFrameViewport;
namespace {
bool FillsViewport(const Element& element) { … }
PaintLayerScrollableArea* GetScrollableArea(const Element& element) { … }
}
RootScrollerController::RootScrollerController(Document& document)
: … { … }
void RootScrollerController::Trace(Visitor* visitor) const { … }
Node& RootScrollerController::EffectiveRootScroller() const { … }
void RootScrollerController::DidResizeFrameView() { … }
void RootScrollerController::DidUpdateIFrameFrameView(
HTMLFrameOwnerElement& element) { … }
bool RootScrollerController::RecomputeEffectiveRootScroller() { … }
bool RootScrollerController::IsValidRootScroller(const Element& element) const { … }
bool RootScrollerController::IsValidImplicitCandidate(
const Element& element) const { … }
bool RootScrollerController::IsValidImplicit(const Element& element) const { … }
void RootScrollerController::ApplyRootScrollerProperties(Node& node) { … }
void RootScrollerController::UpdateIFrameGeometryAndLayoutSize(
HTMLFrameOwnerElement& frame_owner) const { … }
Element* RootScrollerController::ImplicitRootScrollerFromCandidates() { … }
void RootScrollerController::ElementRemoved(const Element& element) { … }
void RootScrollerController::ConsiderForImplicit(Node& node) { … }
template <typename Function>
void RootScrollerController::ForAllNonThrottledLocalControllers(
const Function& function) { … }
bool RootScrollerController::PerformRootScrollerSelection() { … }
}