Index: content/child/blink_platform_impl.cc |
diff --git a/content/child/blink_platform_impl.cc b/content/child/blink_platform_impl.cc |
index ca621267cf83df6204699d1f2ef338b7ebf54f5c..652a73d6b81a91c3e1aa572f366ac44fbf1d3628 100644 |
--- a/content/child/blink_platform_impl.cc |
+++ b/content/child/blink_platform_impl.cc |
@@ -25,6 +25,7 @@ |
#include "base/sys_info.h" |
#include "base/thread_task_runner_handle.h" |
#include "base/threading/platform_thread.h" |
+#include "base/threading/thread.h" |
#include "base/time/time.h" |
#include "base/trace_event/memory_allocator_dump_guid.h" |
#include "base/trace_event/memory_dump_manager.h" |
@@ -442,7 +443,8 @@ BlinkPlatformImpl::BlinkPlatformImpl() |
BlinkPlatformImpl::BlinkPlatformImpl( |
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner) |
- : main_thread_task_runner_(main_thread_task_runner) { |
+ : main_thread_task_runner_(main_thread_task_runner), |
+ compositor_thread_(nullptr) { |
InternalInit(); |
} |
@@ -529,14 +531,29 @@ bool BlinkPlatformImpl::portAllowed(const blink::WebURL& url) const { |
} |
blink::WebThread* BlinkPlatformImpl::createThread(const char* name) { |
+ base::Thread::Options options; |
scheduler::WebThreadImplForWorkerScheduler* thread = |
- new scheduler::WebThreadImplForWorkerScheduler(name); |
+ new scheduler::WebThreadImplForWorkerScheduler(name, options); |
thread->TaskRunner()->PostTask( |
FROM_HERE, base::Bind(&BlinkPlatformImpl::UpdateWebThreadTLS, |
base::Unretained(this), thread)); |
return thread; |
} |
+blink::WebThread* BlinkPlatformImpl::createThreadForCompositor( |
+ const char* name) { |
+ base::Thread::Options options; |
sadrul
2015/11/27 19:03:07
DCHECK(!compositor_thread_)?
Ian Vollick
2015/11/27 19:56:11
Done.
|
+#if defined(OS_ANDROID) |
+ options.priority = base::ThreadPriority::DISPLAY; |
+#endif |
+ compositor_thread_ = |
+ new scheduler::WebThreadImplForWorkerScheduler(name, options); |
+ compositor_thread_->TaskRunner()->PostTask( |
+ FROM_HERE, base::Bind(&BlinkPlatformImpl::UpdateWebThreadTLS, |
+ base::Unretained(this), compositor_thread_)); |
+ return compositor_thread_; |
+} |
+ |
blink::WebThread* BlinkPlatformImpl::currentThread() { |
return static_cast<blink::WebThread*>(current_thread_slot_.Get()); |
} |
@@ -1089,6 +1106,10 @@ void BlinkPlatformImpl::cryptographicallyRandomValues( |
base::RandBytes(buffer, length); |
} |
+blink::WebThread* BlinkPlatformImpl::compositorThread() const { |
+ return compositor_thread_; |
+} |
+ |
blink::WebGestureCurve* BlinkPlatformImpl::createFlingAnimationCurve( |
blink::WebGestureDevice device_source, |
const blink::WebFloatPoint& velocity, |