Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1035)

Unified Diff: content/renderer/renderer_blink_platform_impl.cc

Issue 1366883002: [Reland] Post loading tasks on the appropriate WebFrameScheduler's queue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix UAF in BackgroundHTMLParser Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/renderer_blink_platform_impl.cc
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
index 2203239669483cd9a2c1dde060c1e9fe7ed1f549..f366df68fd346f54c7dee79e65bf6616ed30a05f 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -19,6 +19,7 @@
#include "build/build_config.h"
#include "cc/blink/context_provider_web_context.h"
#include "components/scheduler/child/web_scheduler_impl.h"
+#include "components/scheduler/child/web_task_runner_impl.h"
#include "components/scheduler/renderer/renderer_scheduler.h"
#include "components/scheduler/renderer/webthread_impl_for_renderer_scheduler.h"
#include "components/url_formatter/url_formatter.h"
@@ -32,6 +33,7 @@
#include "content/child/simple_webmimeregistry_impl.h"
#include "content/child/thread_safe_sender.h"
#include "content/child/web_database_observer_impl.h"
+#include "content/child/web_url_loader_impl.h"
#include "content/child/webblobregistry_impl.h"
#include "content/child/webfileutilities_impl.h"
#include "content/child/webmessageportchannel_impl.h"
@@ -237,6 +239,7 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
sudden_termination_disables_(0),
plugin_refresh_allowed_(true),
default_task_runner_(renderer_scheduler->DefaultTaskRunner()),
+ loading_task_runner_(renderer_scheduler->LoadingTaskRunner()),
web_scrollbar_behavior_(new WebScrollbarBehaviorImpl),
vibration_manager_(6) {
#if !defined(OS_ANDROID) && !defined(OS_WIN)
@@ -274,6 +277,19 @@ void RendererBlinkPlatformImpl::Shutdown() {
//------------------------------------------------------------------------------
+blink::WebURLLoader* RendererBlinkPlatformImpl::createURLLoader() {
+ ChildThreadImpl* child_thread = ChildThreadImpl::current();
+ // There may be no child thread in RenderViewTests. These tests can still use
+ // data URLs to bypass the ResourceDispatcher.
+ scoped_ptr<scheduler::WebTaskRunnerImpl> task_runner(
+ new scheduler::WebTaskRunnerImpl(
+ loading_task_runner_->BelongsToCurrentThread()
+ ? loading_task_runner_ : base::ThreadTaskRunnerHandle::Get()));
+ return new content::WebURLLoaderImpl(
+ child_thread ? child_thread->resource_dispatcher() : NULL,
+ task_runner.Pass());
+}
+
blink::WebThread* RendererBlinkPlatformImpl::currentThread() {
if (main_thread_->isCurrentThread())
return main_thread_.get();

Powered by Google App Engine
This is Rietveld 408576698