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