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

Side by Side 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 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 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 } 583 }
584 } 584 }
585 return false; 585 return false;
586 } 586 }
587 587
588 // static 588 // static
589 RenderThreadImpl* RenderThreadImpl::Create( 589 RenderThreadImpl* RenderThreadImpl::Create(
590 const InProcessChildThreadParams& params) { 590 const InProcessChildThreadParams& params) {
591 scoped_ptr<scheduler::RendererScheduler> renderer_scheduler = 591 scoped_ptr<scheduler::RendererScheduler> renderer_scheduler =
592 scheduler::RendererScheduler::Create(); 592 scheduler::RendererScheduler::Create();
593 return new RenderThreadImpl(params, std::move(renderer_scheduler)); 593 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
594 return new RenderThreadImpl(
595 params, std::move(renderer_scheduler), test_task_counter);
594 } 596 }
595 597
596 // static 598 // static
597 RenderThreadImpl* RenderThreadImpl::Create( 599 RenderThreadImpl* RenderThreadImpl::Create(
598 scoped_ptr<base::MessageLoop> main_message_loop, 600 scoped_ptr<base::MessageLoop> main_message_loop,
599 scoped_ptr<scheduler::RendererScheduler> renderer_scheduler) { 601 scoped_ptr<scheduler::RendererScheduler> renderer_scheduler) {
600 return new RenderThreadImpl(std::move(main_message_loop), 602 return new RenderThreadImpl(std::move(main_message_loop),
601 std::move(renderer_scheduler)); 603 std::move(renderer_scheduler));
602 } 604 }
603 605
604 RenderThreadImpl* RenderThreadImpl::current() { 606 RenderThreadImpl* RenderThreadImpl::current() {
605 return lazy_tls.Pointer()->Get(); 607 return lazy_tls.Pointer()->Get();
606 } 608 }
607 609
608 RenderThreadImpl::RenderThreadImpl( 610 RenderThreadImpl::RenderThreadImpl(
609 const InProcessChildThreadParams& params, 611 const InProcessChildThreadParams& params,
610 scoped_ptr<scheduler::RendererScheduler> scheduler) 612 scoped_ptr<scheduler::RendererScheduler> scheduler,
613 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
611 : ChildThreadImpl(Options::Builder() 614 : ChildThreadImpl(Options::Builder()
612 .InBrowserProcess(params) 615 .InBrowserProcess(params)
613 .UseMojoChannel(ShouldUseMojoChannel()) 616 .UseMojoChannel(ShouldUseMojoChannel())
614 .Build()), 617 .Build()),
615 renderer_scheduler_(std::move(scheduler)), 618 renderer_scheduler_(std::move(scheduler)),
616 raster_worker_pool_(new RasterWorkerPool()) { 619 raster_worker_pool_(new RasterWorkerPool()) {
617 Init(); 620 Init(resource_task_queue);
618 } 621 }
619 622
620 // When we run plugins in process, we actually run them on the render thread, 623 // When we run plugins in process, we actually run them on the render thread,
621 // which means that we need to make the render thread pump UI events. 624 // which means that we need to make the render thread pump UI events.
622 RenderThreadImpl::RenderThreadImpl( 625 RenderThreadImpl::RenderThreadImpl(
623 scoped_ptr<base::MessageLoop> main_message_loop, 626 scoped_ptr<base::MessageLoop> main_message_loop,
624 scoped_ptr<scheduler::RendererScheduler> scheduler) 627 scoped_ptr<scheduler::RendererScheduler> scheduler)
625 : ChildThreadImpl(Options::Builder() 628 : ChildThreadImpl(Options::Builder()
626 .UseMojoChannel(ShouldUseMojoChannel()) 629 .UseMojoChannel(ShouldUseMojoChannel())
627 .Build()), 630 .Build()),
628 renderer_scheduler_(std::move(scheduler)), 631 renderer_scheduler_(std::move(scheduler)),
629 main_message_loop_(std::move(main_message_loop)), 632 main_message_loop_(std::move(main_message_loop)),
630 raster_worker_pool_(new RasterWorkerPool()) { 633 raster_worker_pool_(new RasterWorkerPool()) {
631 Init(); 634 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter;
635 Init(test_task_counter);
632 } 636 }
633 637
634 void RenderThreadImpl::Init() { 638 void RenderThreadImpl::Init(
639 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
635 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); 640 TRACE_EVENT0("startup", "RenderThreadImpl::Init");
636 641
637 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( 642 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex(
638 base::PlatformThread::CurrentId(), 643 base::PlatformThread::CurrentId(),
639 kTraceEventRendererMainThreadSortIndex); 644 kTraceEventRendererMainThreadSortIndex);
640 645
641 #if defined(OS_MACOSX) || (defined(OS_ANDROID) && !defined(USE_AURA)) 646 #if defined(OS_MACOSX) || (defined(OS_ANDROID) && !defined(USE_AURA))
642 // 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.
643 blink::WebView::setUseExternalPopupMenus(true); 648 blink::WebView::setUseExternalPopupMenus(true);
644 #endif 649 #endif
645 650
646 lazy_tls.Pointer()->Set(this); 651 lazy_tls.Pointer()->Set(this);
647 652
648 // Register this object as the main thread. 653 // Register this object as the main thread.
649 ChildProcess::current()->set_main_thread(this); 654 ChildProcess::current()->set_main_thread(this);
650 655
656 InitializeWebKit(resource_task_queue);
Avi (use Gerrit) 2016/03/23 00:10:38 Can we rename this to InitializeBlink while we're
657
651 // In single process the single process is all there is. 658 // In single process the single process is all there is.
652 notify_webkit_of_modal_loop_ = true; 659 notify_webkit_of_modal_loop_ = true;
653 webkit_shared_timer_suspended_ = false; 660 webkit_shared_timer_suspended_ = false;
654 widget_count_ = 0; 661 widget_count_ = 0;
655 hidden_widget_count_ = 0; 662 hidden_widget_count_ = 0;
656 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; 663 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs;
657 idle_notifications_to_skip_ = 0; 664 idle_notifications_to_skip_ = 0;
658 layout_test_mode_ = false; 665 layout_test_mode_ = false;
659 666
660 appcache_dispatcher_.reset( 667 appcache_dispatcher_.reset(
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 1156
1150 void RenderThreadImpl::RemoveObserver(RenderProcessObserver* observer) { 1157 void RenderThreadImpl::RemoveObserver(RenderProcessObserver* observer) {
1151 observers_.RemoveObserver(observer); 1158 observers_.RemoveObserver(observer);
1152 } 1159 }
1153 1160
1154 void RenderThreadImpl::SetResourceDispatcherDelegate( 1161 void RenderThreadImpl::SetResourceDispatcherDelegate(
1155 ResourceDispatcherDelegate* delegate) { 1162 ResourceDispatcherDelegate* delegate) {
1156 resource_dispatcher()->set_delegate(delegate); 1163 resource_dispatcher()->set_delegate(delegate);
1157 } 1164 }
1158 1165
1159 void RenderThreadImpl::SetResourceDispatchTaskQueue(
1160 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
1161 // Add a filter that forces resource messages to be dispatched via a
1162 // particular task runner.
1163 scoped_refptr<ResourceSchedulingFilter> filter(
1164 new ResourceSchedulingFilter(resource_task_queue, resource_dispatcher()));
1165 channel()->AddFilter(filter.get());
1166 resource_dispatcher()->SetResourceSchedulingFilter(filter);
1167
1168 // The ChildResourceMessageFilter and the ResourceDispatcher need to use the
1169 // same queue to ensure tasks are executed in the expected order.
1170 child_resource_message_filter()->SetMainThreadTaskRunner(resource_task_queue);
1171 resource_dispatcher()->SetMainThreadTaskRunner(resource_task_queue);
1172 }
1173
1174 void RenderThreadImpl::InitializeCompositorThread() { 1166 void RenderThreadImpl::InitializeCompositorThread() {
1175 #if defined(OS_ANDROID) 1167 #if defined(OS_ANDROID)
1176 SynchronousCompositorFactory* sync_compositor_factory = 1168 SynchronousCompositorFactory* sync_compositor_factory =
1177 SynchronousCompositorFactory::GetInstance(); 1169 SynchronousCompositorFactory::GetInstance();
1178 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); 1170 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
1179 bool using_ipc_sync_compositing = 1171 bool using_ipc_sync_compositing =
1180 cmd_line->HasSwitch(switches::kIPCSyncCompositing); 1172 cmd_line->HasSwitch(switches::kIPCSyncCompositing);
1181 bool sync_input_for_sync_compositing = 1173 bool sync_input_for_sync_compositing =
1182 cmd_line->HasSwitch(switches::kSyncInputForSyncCompositor); 1174 cmd_line->HasSwitch(switches::kSyncInputForSyncCompositor);
1183 DCHECK(!sync_compositor_factory || !using_ipc_sync_compositing); 1175 DCHECK(!sync_compositor_factory || !using_ipc_sync_compositing);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 main_thread_compositor_task_runner_, 1219 main_thread_compositor_task_runner_,
1228 compositor_task_runner_)); 1220 compositor_task_runner_));
1229 input_handler_manager_client = compositor_input_event_filter.get(); 1221 input_handler_manager_client = compositor_input_event_filter.get();
1230 input_event_filter_ = compositor_input_event_filter; 1222 input_event_filter_ = compositor_input_event_filter;
1231 } 1223 }
1232 input_handler_manager_.reset(new InputHandlerManager( 1224 input_handler_manager_.reset(new InputHandlerManager(
1233 compositor_task_runner_, input_handler_manager_client, 1225 compositor_task_runner_, input_handler_manager_client,
1234 synchronous_input_handler_proxy_client, renderer_scheduler_.get())); 1226 synchronous_input_handler_proxy_client, renderer_scheduler_.get()));
1235 } 1227 }
1236 1228
1237 void RenderThreadImpl::EnsureWebKitInitialized() { 1229 void RenderThreadImpl::InitializeWebKit(
Avi (use Gerrit) 2016/03/23 00:10:38 s/WebKit/Blink/?
1238 if (blink_platform_impl_) 1230 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) {
1239 return; 1231 DCHECK(!blink_platform_impl_);
1240 1232
1241 const base::CommandLine& command_line = 1233 const base::CommandLine& command_line =
1242 *base::CommandLine::ForCurrentProcess(); 1234 *base::CommandLine::ForCurrentProcess();
1243 1235
1244 #ifdef ENABLE_VTUNE_JIT_INTERFACE 1236 #ifdef ENABLE_VTUNE_JIT_INTERFACE
1245 if (command_line.HasSwitch(switches::kEnableVtune)) 1237 if (command_line.HasSwitch(switches::kEnableVtune))
1246 gin::Debug::SetJitCodeEventHandler(vTune::GetVtuneCodeEventHandler()); 1238 gin::Debug::SetJitCodeEventHandler(vTune::GetVtuneCodeEventHandler());
1247 #endif 1239 #endif
1248 1240
1249 SetRuntimeFeaturesDefaultsAndUpdateFromArgs(command_line); 1241 SetRuntimeFeaturesDefaultsAndUpdateFromArgs(command_line);
1250 1242
1251 blink_platform_impl_.reset( 1243 blink_platform_impl_.reset(
1252 new RendererBlinkPlatformImpl(renderer_scheduler_.get())); 1244 new RendererBlinkPlatformImpl(renderer_scheduler_.get()));
1253 blink::initialize(blink_platform_impl_.get()); 1245 blink::initialize(blink_platform_impl_.get());
1254 1246
1255 v8::Isolate* isolate = blink::mainThreadIsolate(); 1247 v8::Isolate* isolate = blink::mainThreadIsolate();
1256 isolate->SetCreateHistogramFunction(CreateHistogram); 1248 isolate->SetCreateHistogramFunction(CreateHistogram);
1257 isolate->SetAddHistogramSampleFunction(AddHistogramSample); 1249 isolate->SetAddHistogramSampleFunction(AddHistogramSample);
1258 1250
1259 main_thread_compositor_task_runner_ = 1251 main_thread_compositor_task_runner_ =
1260 renderer_scheduler_->CompositorTaskRunner(); 1252 renderer_scheduler_->CompositorTaskRunner();
1261 1253
1262 main_input_callback_.Reset( 1254 main_input_callback_.Reset(
1263 base::Bind(base::IgnoreResult(&RenderThreadImpl::OnMessageReceived), 1255 base::Bind(base::IgnoreResult(&RenderThreadImpl::OnMessageReceived),
1264 base::Unretained(this))); 1256 base::Unretained(this)));
1265 1257
1266 SetResourceDispatchTaskQueue(renderer_scheduler_->LoadingTaskRunner()); 1258 scoped_refptr<base::SingleThreadTaskRunner> resource_task_queue2;
1259 if (resource_task_queue) {
1260 resource_task_queue2 = resource_task_queue;
1261 } else {
1262 resource_task_queue2 = renderer_scheduler_->LoadingTaskRunner();
1263 }
1264 // Add a filter that forces resource messages to be dispatched via a
1265 // particular task runner.
1266 scoped_refptr<ResourceSchedulingFilter> filter(
1267 new ResourceSchedulingFilter(
1268 resource_task_queue2, resource_dispatcher()));
1269 channel()->AddFilter(filter.get());
1270 resource_dispatcher()->SetResourceSchedulingFilter(filter);
1271
1272 // The ChildResourceMessageFilter and the ResourceDispatcher need to use the
1273 // same queue to ensure tasks are executed in the expected order.
1274 child_resource_message_filter()->SetMainThreadTaskRunner(
1275 resource_task_queue2);
1276 resource_dispatcher()->SetMainThreadTaskRunner(resource_task_queue2);
1277
1267 if (!command_line.HasSwitch(switches::kDisableThreadedCompositing) && 1278 if (!command_line.HasSwitch(switches::kDisableThreadedCompositing) &&
1268 !command_line.HasSwitch(switches::kUseRemoteCompositing)) 1279 !command_line.HasSwitch(switches::kUseRemoteCompositing))
1269 InitializeCompositorThread(); 1280 InitializeCompositorThread();
1270 1281
1271 if (!input_event_filter_.get()) { 1282 if (!input_event_filter_.get()) {
1272 // Always provide an input event filter implementation to ensure consistent 1283 // Always provide an input event filter implementation to ensure consistent
1273 // input event scheduling and prioritization. 1284 // input event scheduling and prioritization.
1274 // TODO(jdduke): Merge InputEventFilter, InputHandlerManager and 1285 // TODO(jdduke): Merge InputEventFilter, InputHandlerManager and
1275 // MainThreadInputEventFilter, crbug.com/436057. 1286 // MainThreadInputEventFilter, crbug.com/436057.
1276 input_event_filter_ = new MainThreadInputEventFilter( 1287 input_event_filter_ = new MainThreadInputEventFilter(
(...skipping 11 matching lines...) Expand all
1288 compositor_impl_side_task_runner.get()); 1299 compositor_impl_side_task_runner.get());
1289 AddFilter(compositor_message_filter_.get()); 1300 AddFilter(compositor_message_filter_.get());
1290 1301
1291 RenderThreadImpl::RegisterSchemes(); 1302 RenderThreadImpl::RegisterSchemes();
1292 1303
1293 EnableBlinkPlatformLogChannels( 1304 EnableBlinkPlatformLogChannels(
1294 command_line.GetSwitchValueASCII(switches::kBlinkPlatformLogChannels)); 1305 command_line.GetSwitchValueASCII(switches::kBlinkPlatformLogChannels));
1295 1306
1296 RenderMediaClient::Initialize(); 1307 RenderMediaClient::Initialize();
1297 1308
1298 FOR_EACH_OBSERVER(RenderProcessObserver, observers_, WebKitInitialized());
1299
1300 devtools_agent_message_filter_ = new DevToolsAgentFilter(); 1309 devtools_agent_message_filter_ = new DevToolsAgentFilter();
1301 AddFilter(devtools_agent_message_filter_.get()); 1310 AddFilter(devtools_agent_message_filter_.get());
1302 1311
1303 v8_sampling_profiler_.reset(new V8SamplingProfiler()); 1312 v8_sampling_profiler_.reset(new V8SamplingProfiler());
1304 1313
1305 if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { 1314 if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) {
1306 ScheduleIdleHandler(kLongIdleHandlerDelayMs); 1315 ScheduleIdleHandler(kLongIdleHandlerDelayMs);
1307 } else { 1316 } else {
1308 // If we do not track widget visibility, then assume conservatively that 1317 // If we do not track widget visibility, then assume conservatively that
1309 // the isolate is in background. This reduces memory usage. 1318 // the isolate is in background. This reduces memory usage.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 scoped_ptr<base::SharedMemory> 1381 scoped_ptr<base::SharedMemory>
1373 RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) { 1382 RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) {
1374 return ChildThreadImpl::AllocateSharedMemory(size, thread_safe_sender()); 1383 return ChildThreadImpl::AllocateSharedMemory(size, thread_safe_sender());
1375 } 1384 }
1376 1385
1377 cc::SharedBitmapManager* RenderThreadImpl::GetSharedBitmapManager() { 1386 cc::SharedBitmapManager* RenderThreadImpl::GetSharedBitmapManager() {
1378 return shared_bitmap_manager(); 1387 return shared_bitmap_manager();
1379 } 1388 }
1380 1389
1381 void RenderThreadImpl::RegisterExtension(v8::Extension* extension) { 1390 void RenderThreadImpl::RegisterExtension(v8::Extension* extension) {
1382 EnsureWebKitInitialized();
1383 WebScriptController::registerExtension(extension); 1391 WebScriptController::registerExtension(extension);
1384 } 1392 }
1385 1393
1386 void RenderThreadImpl::ScheduleIdleHandler(int64_t initial_delay_ms) { 1394 void RenderThreadImpl::ScheduleIdleHandler(int64_t initial_delay_ms) {
1387 idle_notification_delay_in_ms_ = initial_delay_ms; 1395 idle_notification_delay_in_ms_ = initial_delay_ms;
1388 idle_timer_.Stop(); 1396 idle_timer_.Stop();
1389 idle_timer_.Start(FROM_HERE, 1397 idle_timer_.Start(FROM_HERE,
1390 base::TimeDelta::FromMilliseconds(initial_delay_ms), 1398 base::TimeDelta::FromMilliseconds(initial_delay_ms),
1391 this, &RenderThreadImpl::IdleHandler); 1399 this, &RenderThreadImpl::IdleHandler);
1392 } 1400 }
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
1831 } 1839 }
1832 1840
1833 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme, 1841 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme,
1834 const std::string& host, 1842 const std::string& host,
1835 double zoom_level) { 1843 double zoom_level) {
1836 RenderViewZoomer zoomer(scheme, host, zoom_level); 1844 RenderViewZoomer zoomer(scheme, host, zoom_level);
1837 RenderView::ForEach(&zoomer); 1845 RenderView::ForEach(&zoomer);
1838 } 1846 }
1839 1847
1840 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) { 1848 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) {
1841 EnsureWebKitInitialized();
1842 CompositorDependencies* compositor_deps = this; 1849 CompositorDependencies* compositor_deps = this;
1843 // When bringing in render_view, also bring in webkit's glue and jsbindings. 1850 // When bringing in render_view, also bring in webkit's glue and jsbindings.
1844 RenderViewImpl::Create(compositor_deps, params, false); 1851 RenderViewImpl::Create(compositor_deps, params, false);
1845 } 1852 }
1846 1853
1847 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync( 1854 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync(
1848 CauseForGpuLaunch cause_for_gpu_launch) { 1855 CauseForGpuLaunch cause_for_gpu_launch) {
1849 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); 1856 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync");
1850 1857
1851 if (gpu_channel_.get()) { 1858 if (gpu_channel_.get()) {
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1917 return NULL; 1924 return NULL;
1918 1925
1919 if (gpu_channel_->IsLost()) 1926 if (gpu_channel_->IsLost())
1920 return NULL; 1927 return NULL;
1921 1928
1922 return gpu_channel_.get(); 1929 return gpu_channel_.get();
1923 } 1930 }
1924 1931
1925 #if defined(ENABLE_PLUGINS) 1932 #if defined(ENABLE_PLUGINS)
1926 void RenderThreadImpl::OnPurgePluginListCache(bool reload_pages) { 1933 void RenderThreadImpl::OnPurgePluginListCache(bool reload_pages) {
1927 EnsureWebKitInitialized();
1928 // The call below will cause a GetPlugins call with refresh=true, but at this 1934 // The call below will cause a GetPlugins call with refresh=true, but at this
1929 // point we already know that the browser has refreshed its list, so disable 1935 // point we already know that the browser has refreshed its list, so disable
1930 // refresh temporarily to prevent each renderer process causing the list to be 1936 // refresh temporarily to prevent each renderer process causing the list to be
1931 // regenerated. 1937 // regenerated.
1932 blink_platform_impl_->set_plugin_refresh_allowed(false); 1938 blink_platform_impl_->set_plugin_refresh_allowed(false);
1933 blink::resetPluginCache(reload_pages); 1939 blink::resetPluginCache(reload_pages);
1934 blink_platform_impl_->set_plugin_refresh_allowed(true); 1940 blink_platform_impl_->set_plugin_refresh_allowed(true);
1935 1941
1936 FOR_EACH_OBSERVER(RenderProcessObserver, observers_, PluginListChanged()); 1942 FOR_EACH_OBSERVER(RenderProcessObserver, observers_, PluginListChanged());
1937 } 1943 }
1938 #endif 1944 #endif
1939 1945
1940 void RenderThreadImpl::OnNetworkConnectionChanged( 1946 void RenderThreadImpl::OnNetworkConnectionChanged(
1941 net::NetworkChangeNotifier::ConnectionType type, 1947 net::NetworkChangeNotifier::ConnectionType type,
1942 double max_bandwidth_mbps) { 1948 double max_bandwidth_mbps) {
1943 EnsureWebKitInitialized();
1944 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; 1949 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE;
1945 WebNetworkStateNotifier::setOnLine(online); 1950 WebNetworkStateNotifier::setOnLine(online);
1946 FOR_EACH_OBSERVER( 1951 FOR_EACH_OBSERVER(
1947 RenderProcessObserver, observers_, NetworkStateChanged(online)); 1952 RenderProcessObserver, observers_, NetworkStateChanged(online));
1948 WebNetworkStateNotifier::setWebConnection( 1953 WebNetworkStateNotifier::setWebConnection(
1949 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); 1954 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps);
1950 } 1955 }
1951 1956
1952 void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) { 1957 void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) {
1953 if (!blink_platform_impl_) 1958 if (!blink_platform_impl_)
1954 return; 1959 return;
1955 if (!zone_id.empty()) { 1960 if (!zone_id.empty()) {
1956 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( 1961 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone(
1957 icu::UnicodeString::fromUTF8(zone_id)); 1962 icu::UnicodeString::fromUTF8(zone_id));
1958 icu::TimeZone::adoptDefault(new_zone); 1963 icu::TimeZone::adoptDefault(new_zone);
1959 VLOG(1) << "ICU default timezone is set to " << zone_id; 1964 VLOG(1) << "ICU default timezone is set to " << zone_id;
1960 } 1965 }
1961 NotifyTimezoneChange(); 1966 NotifyTimezoneChange();
1962 } 1967 }
1963 1968
1964 #if defined(OS_ANDROID) 1969 #if defined(OS_ANDROID)
1965 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) { 1970 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) {
1966 EnsureWebKitInitialized();
1967 if (suspend) { 1971 if (suspend) {
1968 renderer_scheduler_->SuspendTimerQueue(); 1972 renderer_scheduler_->SuspendTimerQueue();
1969 } else { 1973 } else {
1970 renderer_scheduler_->ResumeTimerQueue(); 1974 renderer_scheduler_->ResumeTimerQueue();
1971 } 1975 }
1972 webkit_shared_timer_suspended_ = suspend; 1976 webkit_shared_timer_suspended_ = suspend;
1973 } 1977 }
1974 #endif 1978 #endif
1975 1979
1976 #if defined(OS_MACOSX) 1980 #if defined(OS_MACOSX)
1977 void RenderThreadImpl::OnUpdateScrollbarTheme( 1981 void RenderThreadImpl::OnUpdateScrollbarTheme(
1978 const ViewMsg_UpdateScrollbarTheme_Params& params) { 1982 const ViewMsg_UpdateScrollbarTheme_Params& params) {
1979 EnsureWebKitInitialized();
1980 static_cast<WebScrollbarBehaviorImpl*>( 1983 static_cast<WebScrollbarBehaviorImpl*>(
1981 blink_platform_impl_->scrollbarBehavior()) 1984 blink_platform_impl_->scrollbarBehavior())
1982 ->set_jump_on_track_click(params.jump_on_track_click); 1985 ->set_jump_on_track_click(params.jump_on_track_click);
1983 1986
1984 blink::WebScrollbarTheme::updateScrollbarsWithNSDefaults( 1987 blink::WebScrollbarTheme::updateScrollbarsWithNSDefaults(
1985 params.initial_button_delay, params.autoscroll_button_delay, 1988 params.initial_button_delay, params.autoscroll_button_delay,
1986 params.preferred_scroller_style, params.redraw, 1989 params.preferred_scroller_style, params.redraw,
1987 params.button_placement); 1990 params.button_placement);
1988 } 1991 }
1989 1992
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
2175 } 2178 }
2176 2179
2177 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { 2180 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() {
2178 size_t erased = 2181 size_t erased =
2179 RenderThreadImpl::current()->pending_render_frame_connects_.erase( 2182 RenderThreadImpl::current()->pending_render_frame_connects_.erase(
2180 routing_id_); 2183 routing_id_);
2181 DCHECK_EQ(1u, erased); 2184 DCHECK_EQ(1u, erased);
2182 } 2185 }
2183 2186
2184 } // namespace content 2187 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698