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

Unified Diff: content/renderer/render_thread_impl.cc

Issue 1821413003: Remove logic for lazy initialization of WebKit. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 4 years, 9 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/render_thread_impl.cc
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 6395c0586edcd32281000f53d2cac62dba4a530d..6eb2470f4015638d0a3383fda2153c557d576c3c 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -590,7 +590,9 @@ RenderThreadImpl* RenderThreadImpl::Create(
const InProcessChildThreadParams& params) {
scoped_ptr<scheduler::RendererScheduler> renderer_scheduler =
scheduler::RendererScheduler::Create();
- return new RenderThreadImpl(params, std::move(renderer_scheduler));
+ scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
+ return new RenderThreadImpl(
+ params, std::move(renderer_scheduler), test_task_counter);
}
// static
@@ -607,14 +609,15 @@ RenderThreadImpl* RenderThreadImpl::current() {
RenderThreadImpl::RenderThreadImpl(
const InProcessChildThreadParams& params,
- scoped_ptr<scheduler::RendererScheduler> scheduler)
+ scoped_ptr<scheduler::RendererScheduler> scheduler,
+ scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
: ChildThreadImpl(Options::Builder()
.InBrowserProcess(params)
.UseMojoChannel(ShouldUseMojoChannel())
.Build()),
renderer_scheduler_(std::move(scheduler)),
raster_worker_pool_(new RasterWorkerPool()) {
- Init();
+ Init(resource_task_queue);
}
// When we run plugins in process, we actually run them on the render thread,
@@ -628,10 +631,12 @@ RenderThreadImpl::RenderThreadImpl(
renderer_scheduler_(std::move(scheduler)),
main_message_loop_(std::move(main_message_loop)),
raster_worker_pool_(new RasterWorkerPool()) {
- Init();
+ scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
+ Init(test_task_counter);
}
-void RenderThreadImpl::Init() {
+void RenderThreadImpl::Init(
+ scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
TRACE_EVENT0("startup", "RenderThreadImpl::Init");
base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex(
@@ -648,6 +653,8 @@ void RenderThreadImpl::Init() {
// Register this object as the main thread.
ChildProcess::current()->set_main_thread(this);
+ InitializeWebKit(resource_task_queue);
Avi (use Gerrit) 2016/03/23 00:10:38 Can we rename this to InitializeBlink while we're
+
// In single process the single process is all there is.
notify_webkit_of_modal_loop_ = true;
webkit_shared_timer_suspended_ = false;
@@ -1156,21 +1163,6 @@ void RenderThreadImpl::SetResourceDispatcherDelegate(
resource_dispatcher()->set_delegate(delegate);
}
-void RenderThreadImpl::SetResourceDispatchTaskQueue(
- const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
- // Add a filter that forces resource messages to be dispatched via a
- // particular task runner.
- scoped_refptr<ResourceSchedulingFilter> filter(
- new ResourceSchedulingFilter(resource_task_queue, resource_dispatcher()));
- channel()->AddFilter(filter.get());
- resource_dispatcher()->SetResourceSchedulingFilter(filter);
-
- // The ChildResourceMessageFilter and the ResourceDispatcher need to use the
- // same queue to ensure tasks are executed in the expected order.
- child_resource_message_filter()->SetMainThreadTaskRunner(resource_task_queue);
- resource_dispatcher()->SetMainThreadTaskRunner(resource_task_queue);
-}
-
void RenderThreadImpl::InitializeCompositorThread() {
#if defined(OS_ANDROID)
SynchronousCompositorFactory* sync_compositor_factory =
@@ -1234,9 +1226,9 @@ void RenderThreadImpl::InitializeCompositorThread() {
synchronous_input_handler_proxy_client, renderer_scheduler_.get()));
}
-void RenderThreadImpl::EnsureWebKitInitialized() {
- if (blink_platform_impl_)
- return;
+void RenderThreadImpl::InitializeWebKit(
Avi (use Gerrit) 2016/03/23 00:10:38 s/WebKit/Blink/?
+ scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
+ DCHECK(!blink_platform_impl_);
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
@@ -1263,7 +1255,26 @@ void RenderThreadImpl::EnsureWebKitInitialized() {
base::Bind(base::IgnoreResult(&RenderThreadImpl::OnMessageReceived),
base::Unretained(this)));
- SetResourceDispatchTaskQueue(renderer_scheduler_->LoadingTaskRunner());
+ scoped_refptr<base::SingleThreadTaskRunner> resource_task_queue2;
+ if (resource_task_queue) {
+ resource_task_queue2 = resource_task_queue;
+ } else {
+ resource_task_queue2 = renderer_scheduler_->LoadingTaskRunner();
+ }
+ // Add a filter that forces resource messages to be dispatched via a
+ // particular task runner.
+ scoped_refptr<ResourceSchedulingFilter> filter(
+ new ResourceSchedulingFilter(
+ resource_task_queue2, resource_dispatcher()));
+ channel()->AddFilter(filter.get());
+ resource_dispatcher()->SetResourceSchedulingFilter(filter);
+
+ // The ChildResourceMessageFilter and the ResourceDispatcher need to use the
+ // same queue to ensure tasks are executed in the expected order.
+ child_resource_message_filter()->SetMainThreadTaskRunner(
+ resource_task_queue2);
+ resource_dispatcher()->SetMainThreadTaskRunner(resource_task_queue2);
+
if (!command_line.HasSwitch(switches::kDisableThreadedCompositing) &&
!command_line.HasSwitch(switches::kUseRemoteCompositing))
InitializeCompositorThread();
@@ -1295,8 +1306,6 @@ void RenderThreadImpl::EnsureWebKitInitialized() {
RenderMediaClient::Initialize();
- FOR_EACH_OBSERVER(RenderProcessObserver, observers_, WebKitInitialized());
-
devtools_agent_message_filter_ = new DevToolsAgentFilter();
AddFilter(devtools_agent_message_filter_.get());
@@ -1379,7 +1388,6 @@ cc::SharedBitmapManager* RenderThreadImpl::GetSharedBitmapManager() {
}
void RenderThreadImpl::RegisterExtension(v8::Extension* extension) {
- EnsureWebKitInitialized();
WebScriptController::registerExtension(extension);
}
@@ -1838,7 +1846,6 @@ void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme,
}
void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) {
- EnsureWebKitInitialized();
CompositorDependencies* compositor_deps = this;
// When bringing in render_view, also bring in webkit's glue and jsbindings.
RenderViewImpl::Create(compositor_deps, params, false);
@@ -1924,7 +1931,6 @@ GpuChannelHost* RenderThreadImpl::GetGpuChannel() {
#if defined(ENABLE_PLUGINS)
void RenderThreadImpl::OnPurgePluginListCache(bool reload_pages) {
- EnsureWebKitInitialized();
// The call below will cause a GetPlugins call with refresh=true, but at this
// point we already know that the browser has refreshed its list, so disable
// refresh temporarily to prevent each renderer process causing the list to be
@@ -1940,7 +1946,6 @@ void RenderThreadImpl::OnPurgePluginListCache(bool reload_pages) {
void RenderThreadImpl::OnNetworkConnectionChanged(
net::NetworkChangeNotifier::ConnectionType type,
double max_bandwidth_mbps) {
- EnsureWebKitInitialized();
bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE;
WebNetworkStateNotifier::setOnLine(online);
FOR_EACH_OBSERVER(
@@ -1963,7 +1968,6 @@ void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) {
#if defined(OS_ANDROID)
void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) {
- EnsureWebKitInitialized();
if (suspend) {
renderer_scheduler_->SuspendTimerQueue();
} else {
@@ -1976,7 +1980,6 @@ void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) {
#if defined(OS_MACOSX)
void RenderThreadImpl::OnUpdateScrollbarTheme(
const ViewMsg_UpdateScrollbarTheme_Params& params) {
- EnsureWebKitInitialized();
static_cast<WebScrollbarBehaviorImpl*>(
blink_platform_impl_->scrollbarBehavior())
->set_jump_on_track_click(params.jump_on_track_click);

Powered by Google App Engine
This is Rietveld 408576698