86 lines
3.1 KiB
Diff
86 lines
3.1 KiB
Diff
diff --git components/input/fling_scheduler_base.h components/input/fling_scheduler_base.h
|
|
index 76057b3e50f78..d3b63a3b07805 100644
|
|
--- components/input/fling_scheduler_base.h
|
|
+++ components/input/fling_scheduler_base.h
|
|
@@ -5,14 +5,26 @@
|
|
#ifndef COMPONENTS_INPUT_FLING_SCHEDULER_BASE_H_
|
|
#define COMPONENTS_INPUT_FLING_SCHEDULER_BASE_H_
|
|
|
|
+#include "base/memory/raw_ptr.h"
|
|
#include "components/input/fling_controller.h"
|
|
|
|
+namespace ui {
|
|
+class Compositor;
|
|
+}
|
|
+
|
|
namespace input {
|
|
|
|
class FlingSchedulerBase : public FlingControllerSchedulerClient {
|
|
public:
|
|
virtual void ProgressFlingOnBeginFrameIfneeded(
|
|
base::TimeTicks current_time) = 0;
|
|
+
|
|
+ void SetCompositor(ui::Compositor* compositor) {
|
|
+ compositor_ = compositor;
|
|
+ }
|
|
+
|
|
+ protected:
|
|
+ raw_ptr<ui::Compositor> compositor_ = nullptr;
|
|
};
|
|
|
|
} // namespace input
|
|
diff --git components/input/render_input_router.h components/input/render_input_router.h
|
|
index 82f462173913b..05b4824ec8329 100644
|
|
--- components/input/render_input_router.h
|
|
+++ components/input/render_input_router.h
|
|
@@ -66,6 +66,7 @@ class COMPONENT_EXPORT(INPUT) RenderInputRouter
|
|
|
|
InputRouter* input_router() { return input_router_.get(); }
|
|
RenderInputRouterDelegate* delegate() { return delegate_; }
|
|
+ input::FlingSchedulerBase* fling_scheduler() { return fling_scheduler_.get(); }
|
|
|
|
void SetForceEnableZoom(bool);
|
|
void SetDeviceScaleFactor(float device_scale_factor);
|
|
diff --git content/browser/renderer_host/input/fling_scheduler.cc content/browser/renderer_host/input/fling_scheduler.cc
|
|
index f1030a744809c..c222a209949e6 100644
|
|
--- content/browser/renderer_host/input/fling_scheduler.cc
|
|
+++ content/browser/renderer_host/input/fling_scheduler.cc
|
|
@@ -98,6 +98,9 @@ void FlingScheduler::ProgressFlingOnBeginFrameIfneeded(
|
|
}
|
|
|
|
ui::Compositor* FlingScheduler::GetCompositor() {
|
|
+ if (compositor_) {
|
|
+ return compositor_;
|
|
+ }
|
|
if (!host_->GetView()) {
|
|
return nullptr;
|
|
}
|
|
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
|
|
index 5754c2bd33053..25688e64d712d 100644
|
|
--- content/browser/renderer_host/render_widget_host_impl.cc
|
|
+++ content/browser/renderer_host/render_widget_host_impl.cc
|
|
@@ -3216,6 +3216,11 @@ void RenderWidgetHostImpl::DecrementInFlightEventCount(
|
|
}
|
|
}
|
|
|
|
+void RenderWidgetHostImpl::SetCompositorForFlingScheduler(
|
|
+ ui::Compositor* compositor) {
|
|
+ GetRenderInputRouter()->fling_scheduler()->SetCompositor(compositor);
|
|
+}
|
|
+
|
|
void RenderWidgetHostImpl::AddPendingUserActivation(
|
|
const WebInputEvent& event) {
|
|
if ((base::FeatureList::IsEnabled(
|
|
diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h
|
|
index 3d03709303e22..1d162642a2f8a 100644
|
|
--- content/browser/renderer_host/render_widget_host_impl.h
|
|
+++ content/browser/renderer_host/render_widget_host_impl.h
|
|
@@ -835,6 +835,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
|
|
|
void ProgressFlingIfNeeded(base::TimeTicks current_time);
|
|
void StopFling();
|
|
+ void SetCompositorForFlingScheduler(ui::Compositor* compositor);
|
|
|
|
RenderWidgetHostViewBase* GetRenderWidgetHostViewBase();
|
|
|