Index: content/renderer/render_thread_impl.cc |
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
index fc2ad43129ac676e3fe1431fa90ecad8f1ac6f55..b8dab494211a13f1d5bdd2afadbdae0e7c1c1382 100644 |
--- a/content/renderer/render_thread_impl.cc |
+++ b/content/renderer/render_thread_impl.cc |
@@ -21,6 +21,7 @@ |
#include "base/metrics/histogram.h" |
#include "base/metrics/stats_table.h" |
#include "base/path_service.h" |
+#include "base/single_thread_task_runner.h" |
#include "base/strings/string16.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_tokenizer.h" |
@@ -91,6 +92,7 @@ |
#include "content/renderer/render_process_impl.h" |
#include "content/renderer/render_view_impl.h" |
#include "content/renderer/renderer_webkitplatformsupport_impl.h" |
+#include "content/renderer/scheduler_proxy_task_runner.h" |
#include "content/renderer/service_worker/embedded_worker_context_message_filter.h" |
#include "content/renderer/service_worker/embedded_worker_dispatcher.h" |
#include "content/renderer/shared_worker/embedded_shared_worker_stub.h" |
@@ -105,6 +107,7 @@ |
#include "net/base/net_util.h" |
#include "skia/ext/event_tracer_impl.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
+#include "third_party/WebKit/public/platform/WebThread.h" |
#include "third_party/WebKit/public/web/WebColorName.h" |
#include "third_party/WebKit/public/web/WebDatabase.h" |
#include "third_party/WebKit/public/web/WebDocument.h" |
@@ -651,6 +654,9 @@ void RenderThreadImpl::Shutdown() { |
// hold pointers to V8 objects (e.g., via pending requests). |
main_thread_indexed_db_dispatcher_.reset(); |
+ main_thread_compositor_task_runner_ = NULL; |
+ main_thread_input_task_runner_ = NULL; |
+ |
if (webkit_platform_support_) |
blink::shutdown(); |
@@ -833,6 +839,10 @@ void RenderThreadImpl::EnsureWebKitInitialized() { |
webkit_platform_support_.reset(new RendererWebKitPlatformSupportImpl); |
blink::initialize(webkit_platform_support_.get()); |
+ // TODO(skyostil): Forward compositor tasks to the Blink scheduler. |
+ main_thread_compositor_task_runner_ = base::MessageLoopProxy::current(); |
+ main_thread_input_task_runner_ = make_scoped_refptr( |
+ new SchedulerProxyTaskRunner<&blink::WebSchedulerProxy::postInputTask>()); |
v8::Isolate* isolate = blink::mainThreadIsolate(); |
@@ -872,8 +882,8 @@ void RenderThreadImpl::EnsureWebKitInitialized() { |
} |
#endif |
if (!input_handler_manager_client) { |
- input_event_filter_ = |
- new InputEventFilter(this, compositor_message_loop_proxy_); |
+ input_event_filter_ = new InputEventFilter( |
+ this, main_thread_input_task_runner_, compositor_message_loop_proxy_); |
AddFilter(input_event_filter_.get()); |
input_handler_manager_client = input_event_filter_.get(); |
} |