OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2015 Google Inc. All rights reserved. | 2 * Copyright (C) 2015 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "gin/public/v8_idle_task_runner.h" | 30 #include "gin/public/v8_idle_task_runner.h" |
31 #include "platform/RuntimeEnabledFeatures.h" | 31 #include "platform/RuntimeEnabledFeatures.h" |
32 #include "public/platform/Platform.h" | 32 #include "public/platform/Platform.h" |
33 #include "public/platform/WebScheduler.h" | 33 #include "public/platform/WebScheduler.h" |
34 #include "public/platform/WebThread.h" | 34 #include "public/platform/WebThread.h" |
35 #include "wtf/OwnPtr.h" | 35 #include "wtf/OwnPtr.h" |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 class V8IdleTaskAdapter : public WebThread::IdleTask { | 39 class V8IdleTaskAdapter : public WebThread::IdleTask { |
| 40 WTF_MAKE_FAST_ALLOCATED(V8IdleTaskAdapter); |
40 WTF_MAKE_NONCOPYABLE(V8IdleTaskAdapter); | 41 WTF_MAKE_NONCOPYABLE(V8IdleTaskAdapter); |
41 public: | 42 public: |
42 V8IdleTaskAdapter(v8::IdleTask* task) : m_task(adoptPtr(task)) { } | 43 V8IdleTaskAdapter(v8::IdleTask* task) : m_task(adoptPtr(task)) { } |
43 ~V8IdleTaskAdapter() override { } | 44 ~V8IdleTaskAdapter() override { } |
44 void run(double delaySeconds) override | 45 void run(double delaySeconds) override |
45 { | 46 { |
46 m_task->Run(delaySeconds); | 47 m_task->Run(delaySeconds); |
47 } | 48 } |
48 private: | 49 private: |
49 OwnPtr<v8::IdleTask> m_task; | 50 OwnPtr<v8::IdleTask> m_task; |
50 }; | 51 }; |
51 | 52 |
52 class V8IdleTaskRunner : public gin::V8IdleTaskRunner { | 53 class V8IdleTaskRunner : public gin::V8IdleTaskRunner { |
| 54 WTF_MAKE_FAST_ALLOCATED(V8IdleTaskRunner); |
53 WTF_MAKE_NONCOPYABLE(V8IdleTaskRunner); | 55 WTF_MAKE_NONCOPYABLE(V8IdleTaskRunner); |
54 public: | 56 public: |
55 V8IdleTaskRunner(WebScheduler* scheduler) : m_scheduler(scheduler) { } | 57 V8IdleTaskRunner(WebScheduler* scheduler) : m_scheduler(scheduler) { } |
56 ~V8IdleTaskRunner() override { } | 58 ~V8IdleTaskRunner() override { } |
57 void PostIdleTask(v8::IdleTask* task) override | 59 void PostIdleTask(v8::IdleTask* task) override |
58 { | 60 { |
59 ASSERT(RuntimeEnabledFeatures::v8IdleTasksEnabled()); | 61 ASSERT(RuntimeEnabledFeatures::v8IdleTasksEnabled()); |
60 m_scheduler->postIdleTask(FROM_HERE, new V8IdleTaskAdapter(task)); | 62 m_scheduler->postIdleTask(FROM_HERE, new V8IdleTaskAdapter(task)); |
61 } | 63 } |
62 private: | 64 private: |
63 WebScheduler* m_scheduler; | 65 WebScheduler* m_scheduler; |
64 }; | 66 }; |
65 | 67 |
66 | 68 |
67 } // namespace blink | 69 } // namespace blink |
68 | 70 |
69 #endif // V8Initializer_h | 71 #endif // V8Initializer_h |
OLD | NEW |