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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2568543002: Fix data race in RenderThreadImplBrowserTest (Closed)
Patch Set: . Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 mojom::RenderMessageFilter* render_message_filter) { 593 mojom::RenderMessageFilter* render_message_filter) {
594 g_render_message_filter_for_testing = render_message_filter; 594 g_render_message_filter_for_testing = render_message_filter;
595 } 595 }
596 596
597 // In single-process mode used for debugging, we don't pass a renderer client 597 // In single-process mode used for debugging, we don't pass a renderer client
598 // ID via command line because RenderThreadImpl lives in the same process as 598 // ID via command line because RenderThreadImpl lives in the same process as
599 // the browser 599 // the browser
600 RenderThreadImpl::RenderThreadImpl( 600 RenderThreadImpl::RenderThreadImpl(
601 const InProcessChildThreadParams& params, 601 const InProcessChildThreadParams& params,
602 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, 602 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler,
603 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) 603 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
604 : ChildThreadImpl(Options::Builder() 604 : ChildThreadImpl(Options::Builder()
605 .InBrowserProcess(params) 605 .InBrowserProcess(params)
606 .AutoStartServiceManagerConnection(false) 606 .AutoStartServiceManagerConnection(false)
607 .ConnectToBrowser(true) 607 .ConnectToBrowser(true)
608 .Build()), 608 .Build()),
609 renderer_scheduler_(std::move(scheduler)), 609 renderer_scheduler_(std::move(scheduler)),
610 categorized_worker_pool_(new CategorizedWorkerPool()), 610 categorized_worker_pool_(new CategorizedWorkerPool()),
611 renderer_binding_(this), 611 renderer_binding_(this),
612 client_id_(1) { 612 client_id_(1) {
613 Init(resource_task_queue); 613 Init(resource_task_queue);
(...skipping 15 matching lines...) Expand all
629 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; 629 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
630 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( 630 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
631 switches::kRendererClientId)); 631 switches::kRendererClientId));
632 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 632 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
633 switches::kRendererClientId), 633 switches::kRendererClientId),
634 &client_id_); 634 &client_id_);
635 Init(test_task_counter); 635 Init(test_task_counter);
636 } 636 }
637 637
638 void RenderThreadImpl::Init( 638 void RenderThreadImpl::Init(
639 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { 639 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
640 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); 640 TRACE_EVENT0("startup", "RenderThreadImpl::Init");
641 641
642 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( 642 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex(
643 base::PlatformThread::CurrentId(), 643 base::PlatformThread::CurrentId(),
644 kTraceEventRendererMainThreadSortIndex); 644 kTraceEventRendererMainThreadSortIndex);
645 645
646 #if defined(USE_EXTERNAL_POPUP_MENU) 646 #if defined(USE_EXTERNAL_POPUP_MENU)
647 // On Mac and Android Java UI, the select popups are rendered by the browser. 647 // On Mac and Android Java UI, the select popups are rendered by the browser.
648 blink::WebView::setUseExternalPopupMenus(true); 648 blink::WebView::setUseExternalPopupMenus(true);
649 #endif 649 #endif
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1224 compositor_task_runner_)); 1224 compositor_task_runner_));
1225 InputHandlerManagerClient* input_handler_manager_client = 1225 InputHandlerManagerClient* input_handler_manager_client =
1226 compositor_input_event_filter.get(); 1226 compositor_input_event_filter.get();
1227 input_event_filter_ = compositor_input_event_filter; 1227 input_event_filter_ = compositor_input_event_filter;
1228 input_handler_manager_.reset(new InputHandlerManager( 1228 input_handler_manager_.reset(new InputHandlerManager(
1229 compositor_task_runner_, input_handler_manager_client, 1229 compositor_task_runner_, input_handler_manager_client,
1230 synchronous_input_handler_proxy_client, renderer_scheduler_.get())); 1230 synchronous_input_handler_proxy_client, renderer_scheduler_.get()));
1231 } 1231 }
1232 1232
1233 void RenderThreadImpl::InitializeWebKit( 1233 void RenderThreadImpl::InitializeWebKit(
1234 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { 1234 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
1235 DCHECK(!blink_platform_impl_); 1235 DCHECK(!blink_platform_impl_);
1236 1236
1237 const base::CommandLine& command_line = 1237 const base::CommandLine& command_line =
1238 *base::CommandLine::ForCurrentProcess(); 1238 *base::CommandLine::ForCurrentProcess();
1239 1239
1240 #ifdef ENABLE_VTUNE_JIT_INTERFACE 1240 #ifdef ENABLE_VTUNE_JIT_INTERFACE
1241 if (command_line.HasSwitch(switches::kEnableVtune)) 1241 if (command_line.HasSwitch(switches::kEnableVtune))
1242 gin::Debug::SetJitCodeEventHandler(vTune::GetVtuneCodeEventHandler()); 1242 gin::Debug::SetJitCodeEventHandler(vTune::GetVtuneCodeEventHandler());
1243 #endif 1243 #endif
1244 1244
(...skipping 1271 matching lines...) Expand 10 before | Expand all | Expand 10 after
2516 } 2516 }
2517 } 2517 }
2518 2518
2519 void RenderThreadImpl::OnRendererInterfaceRequest( 2519 void RenderThreadImpl::OnRendererInterfaceRequest(
2520 mojom::RendererAssociatedRequest request) { 2520 mojom::RendererAssociatedRequest request) {
2521 DCHECK(!renderer_binding_.is_bound()); 2521 DCHECK(!renderer_binding_.is_bound());
2522 renderer_binding_.Bind(std::move(request)); 2522 renderer_binding_.Bind(std::move(request));
2523 } 2523 }
2524 2524
2525 } // namespace content 2525 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | content/renderer/render_thread_impl_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698