1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_SCHEDULER_TEST_WEB_FAKE_THREAD_SCHEDULER_H_ 6 #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_SCHEDULER_TEST_WEB_FAKE_THREAD_SCHEDULER_H_ 7 8 #include "base/macros.h" 9 #include "base/single_thread_task_runner.h" 10 #include "build/build_config.h" 11 #include "third_party/blink/public/platform/scheduler/web_thread_scheduler.h" 12 13 namespace blink { 14 namespace scheduler { 15 16 class WebFakeThreadScheduler : public WebThreadScheduler { 17 public: 18 WebFakeThreadScheduler(); 19 ~WebFakeThreadScheduler() override; 20 21 // RendererScheduler implementation. 22 std::unique_ptr<Thread> CreateMainThread() override; 23 scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override; 24 scoped_refptr<base::SingleThreadTaskRunner> CompositorTaskRunner() override; 25 std::unique_ptr<WebAgentGroupScheduler> CreateAgentGroupScheduler() override; 26 std::unique_ptr<WebWidgetScheduler> CreateWidgetScheduler() override; 27 WebAgentGroupScheduler* GetCurrentAgentGroupScheduler() override; 28 std::unique_ptr<WebRenderWidgetSchedulingState> 29 NewRenderWidgetSchedulingState() override; 30 void WillBeginFrame(const viz::BeginFrameArgs& args) override; 31 void BeginFrameNotExpectedSoon() override; 32 void BeginMainFrameNotExpectedUntil(base::TimeTicks time) override; 33 void DidCommitFrameToCompositor() override; 34 void DidHandleInputEventOnCompositorThread( 35 const WebInputEvent& web_input_event, 36 InputEventState event_state) override; 37 void WillPostInputEventToMainThread( 38 WebInputEvent::Type web_input_event_type, 39 const WebInputEventAttribution& attribution) override; 40 void WillHandleInputEventOnMainThread( 41 WebInputEvent::Type web_input_event_type, 42 const WebInputEventAttribution& attribution) override; 43 void DidHandleInputEventOnMainThread(const WebInputEvent& web_input_event, 44 WebInputEventResult result) override; 45 void DidAnimateForInputOnCompositorThread() override; 46 void DidScheduleBeginMainFrame() override; 47 void DidRunBeginMainFrame() override; 48 void SetRendererHidden(bool hidden) override; 49 void SetRendererBackgrounded(bool backgrounded) override; 50 void SetSchedulerKeepActive(bool keep_active) override; 51 std::unique_ptr<RendererPauseHandle> PauseRenderer() override; 52 #if defined(OS_ANDROID) 53 void PauseTimersForAndroidWebView() override; 54 void ResumeTimersForAndroidWebView() override; 55 #endif 56 bool IsHighPriorityWorkAnticipated() override; 57 void Shutdown() override; 58 void SetTopLevelBlameContext( 59 base::trace_event::BlameContext* blame_context) override; 60 void SetRendererProcessType(WebRendererProcessType type) override; 61 void OnMainFrameRequestedForInput() override; 62 63 private: 64 DISALLOW_COPY_AND_ASSIGN(WebFakeThreadScheduler); 65 }; 66 67 } // namespace scheduler 68 } // namespace blink 69 70 #endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_SCHEDULER_TEST_WEB_FAKE_THREAD_SCHEDULER_H_ 71