SynchronousScrollingReasons ScrollingCoordinator::synchronousScrollingReasons(FrameView* frameView) const { if (!frameView) return static_cast<SynchronousScrollingReasons>(0); SynchronousScrollingReasons synchronousScrollingReasons = (SynchronousScrollingReasons)0; if (m_forceSynchronousScrollLayerPositionUpdates) synchronousScrollingReasons |= ForcedOnMainThread; #if ENABLE(WEB_REPLAY) InputCursor& cursor = m_page->replayController().activeInputCursor(); if (cursor.isCapturing() || cursor.isReplaying()) synchronousScrollingReasons |= ForcedOnMainThread; #endif if (frameView->hasSlowRepaintObjects()) synchronousScrollingReasons |= HasSlowRepaintObjects; if (!supportsFixedPositionLayers() && frameView->hasViewportConstrainedObjects()) synchronousScrollingReasons |= HasViewportConstrainedObjectsWithoutSupportingFixedLayers; if (supportsFixedPositionLayers() && hasVisibleSlowRepaintViewportConstrainedObjects(frameView)) synchronousScrollingReasons |= HasNonLayerViewportConstrainedObjects; if (frameView->frame().mainFrame().document() && frameView->frame().document()->isImageDocument()) synchronousScrollingReasons |= IsImageDocument; return synchronousScrollingReasons; }
MainThreadScrollingReasons ScrollingCoordinator::mainThreadScrollingReasons() const { FrameView* frameView = m_page->mainFrame()->view(); MainThreadScrollingReasons mainThreadScrollingReasons = (MainThreadScrollingReasons)0; if (m_forceMainThreadScrollLayerPositionUpdates) mainThreadScrollingReasons |= ForcedOnMainThread; if (frameView->hasSlowRepaintObjects()) mainThreadScrollingReasons |= HasSlowRepaintObjects; if (!supportsFixedPositionLayers() && frameView->hasViewportConstrainedObjects()) mainThreadScrollingReasons |= HasViewportConstrainedObjectsWithoutSupportingFixedLayers; if (supportsFixedPositionLayers() && hasVisibleSlowRepaintViewportConstrainedObjects(frameView)) mainThreadScrollingReasons |= HasNonLayerViewportConstrainedObjects; if (m_page->mainFrame()->document()->isImageDocument()) mainThreadScrollingReasons |= IsImageDocument; return mainThreadScrollingReasons; }
SynchronousScrollingReasons ScrollingCoordinator::synchronousScrollingReasons() const { FrameView* frameView = m_page->mainFrame().view(); if (!frameView) return static_cast<SynchronousScrollingReasons>(0); SynchronousScrollingReasons synchronousScrollingReasons = (SynchronousScrollingReasons)0; if (m_forceSynchronousScrollLayerPositionUpdates) synchronousScrollingReasons |= ForcedOnMainThread; if (frameView->hasSlowRepaintObjects()) synchronousScrollingReasons |= HasSlowRepaintObjects; if (!supportsFixedPositionLayers() && frameView->hasViewportConstrainedObjects()) synchronousScrollingReasons |= HasViewportConstrainedObjectsWithoutSupportingFixedLayers; if (supportsFixedPositionLayers() && hasVisibleSlowRepaintViewportConstrainedObjects(frameView)) synchronousScrollingReasons |= HasNonLayerViewportConstrainedObjects; if (m_page->mainFrame().document() && m_page->mainFrame().document()->isImageDocument()) synchronousScrollingReasons |= IsImageDocument; return synchronousScrollingReasons; }