|  | // Copyright 2018 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "content/browser/renderer_host/input/fling_scheduler_mac.h" | 
|  |  | 
|  | #include "content/browser/renderer_host/render_widget_host_impl.h" | 
|  | #include "content/browser/renderer_host/render_widget_host_view_child_frame.h" | 
|  | #include "content/browser/renderer_host/render_widget_host_view_mac.h" | 
|  | #include "ui/compositor/compositor.h" | 
|  |  | 
|  | namespace content { | 
|  |  | 
|  | FlingSchedulerMac::FlingSchedulerMac(RenderWidgetHostImpl* host) | 
|  | : FlingScheduler(host) {} | 
|  | FlingSchedulerMac::~FlingSchedulerMac() = default; | 
|  |  | 
|  | ui::Compositor* FlingSchedulerMac::GetCompositor() { | 
|  | RenderWidgetHostViewBase* view = host_->GetView(); | 
|  | if (!view) | 
|  | return nullptr; | 
|  |  | 
|  | if (view->IsRenderWidgetHostViewChildFrame()) { | 
|  | view = view->GetRootView(); | 
|  | if (!view) | 
|  | return nullptr; | 
|  | } | 
|  |  | 
|  | RenderWidgetHostViewMac* mac_view = | 
|  | static_cast<RenderWidgetHostViewMac*>(view); | 
|  | if (mac_view->BrowserCompositor()) | 
|  | return mac_view->BrowserCompositor()->GetCompositor(); | 
|  |  | 
|  | return nullptr; | 
|  | } | 
|  |  | 
|  | }  // namespace content |