OLD | NEW |
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 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 const InProcessChildThreadParams& params, | 577 const InProcessChildThreadParams& params, |
578 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 578 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
579 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 579 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
580 : ChildThreadImpl(Options::Builder() | 580 : ChildThreadImpl(Options::Builder() |
581 .InBrowserProcess(params) | 581 .InBrowserProcess(params) |
582 .UseMojoChannel(true) | 582 .UseMojoChannel(true) |
583 .AutoStartMojoShellConnection(false) | 583 .AutoStartMojoShellConnection(false) |
584 .ConnectToBrowser(true) | 584 .ConnectToBrowser(true) |
585 .Build()), | 585 .Build()), |
586 renderer_scheduler_(std::move(scheduler)), | 586 renderer_scheduler_(std::move(scheduler)), |
| 587 time_zone_monitor_binding_(this), |
587 categorized_worker_pool_(new CategorizedWorkerPool()) { | 588 categorized_worker_pool_(new CategorizedWorkerPool()) { |
588 Init(resource_task_queue); | 589 Init(resource_task_queue); |
589 } | 590 } |
590 | 591 |
591 // When we run plugins in process, we actually run them on the render thread, | 592 // When we run plugins in process, we actually run them on the render thread, |
592 // which means that we need to make the render thread pump UI events. | 593 // which means that we need to make the render thread pump UI events. |
593 RenderThreadImpl::RenderThreadImpl( | 594 RenderThreadImpl::RenderThreadImpl( |
594 std::unique_ptr<base::MessageLoop> main_message_loop, | 595 std::unique_ptr<base::MessageLoop> main_message_loop, |
595 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 596 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
596 : ChildThreadImpl(Options::Builder() | 597 : ChildThreadImpl(Options::Builder() |
597 .UseMojoChannel(true) | 598 .UseMojoChannel(true) |
598 .AutoStartMojoShellConnection(false) | 599 .AutoStartMojoShellConnection(false) |
599 .ConnectToBrowser(true) | 600 .ConnectToBrowser(true) |
600 .Build()), | 601 .Build()), |
601 renderer_scheduler_(std::move(scheduler)), | 602 renderer_scheduler_(std::move(scheduler)), |
| 603 time_zone_monitor_binding_(this), |
602 main_message_loop_(std::move(main_message_loop)), | 604 main_message_loop_(std::move(main_message_loop)), |
603 categorized_worker_pool_(new CategorizedWorkerPool()) { | 605 categorized_worker_pool_(new CategorizedWorkerPool()) { |
604 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 606 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
605 Init(test_task_counter); | 607 Init(test_task_counter); |
606 } | 608 } |
607 | 609 |
608 void RenderThreadImpl::Init( | 610 void RenderThreadImpl::Init( |
609 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { | 611 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { |
610 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); | 612 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); |
611 | 613 |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
844 | 846 |
845 GetContentClient()->renderer()->ExposeInterfacesToBrowser( | 847 GetContentClient()->renderer()->ExposeInterfacesToBrowser( |
846 GetInterfaceRegistry()); | 848 GetInterfaceRegistry()); |
847 | 849 |
848 GetInterfaceRegistry()->AddInterface(base::Bind(CreateFrameFactory)); | 850 GetInterfaceRegistry()->AddInterface(base::Bind(CreateFrameFactory)); |
849 GetInterfaceRegistry()->AddInterface(base::Bind(CreateEmbeddedWorkerSetup)); | 851 GetInterfaceRegistry()->AddInterface(base::Bind(CreateEmbeddedWorkerSetup)); |
850 | 852 |
851 GetRemoteInterfaces()->GetInterface( | 853 GetRemoteInterfaces()->GetInterface( |
852 mojo::GetProxy(&storage_partition_service_)); | 854 mojo::GetProxy(&storage_partition_service_)); |
853 | 855 |
| 856 device::mojom::TimeZoneMonitorPtr time_zone_monitor; |
| 857 GetRemoteInterfaces()->GetInterface(mojo::GetProxy(&time_zone_monitor)); |
| 858 time_zone_monitor->AddClient( |
| 859 time_zone_monitor_binding_.CreateInterfacePtrAndBind()); |
| 860 |
854 is_renderer_suspended_ = false; | 861 is_renderer_suspended_ = false; |
855 } | 862 } |
856 | 863 |
857 RenderThreadImpl::~RenderThreadImpl() { | 864 RenderThreadImpl::~RenderThreadImpl() { |
858 } | 865 } |
859 | 866 |
860 void RenderThreadImpl::Shutdown() { | 867 void RenderThreadImpl::Shutdown() { |
861 FOR_EACH_OBSERVER( | 868 FOR_EACH_OBSERVER( |
862 RenderThreadObserver, observers_, OnRenderProcessShutdown()); | 869 RenderThreadObserver, observers_, OnRenderProcessShutdown()); |
863 | 870 |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1677 bool handled = true; | 1684 bool handled = true; |
1678 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) | 1685 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) |
1679 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) | 1686 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) |
1680 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) | 1687 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) |
1681 // TODO(port): removed from render_messages_internal.h; | 1688 // TODO(port): removed from render_messages_internal.h; |
1682 // is there a new non-windows message I should add here? | 1689 // is there a new non-windows message I should add here? |
1683 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) | 1690 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) |
1684 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, | 1691 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, |
1685 OnNetworkConnectionChanged) | 1692 OnNetworkConnectionChanged) |
1686 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) | 1693 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) |
1687 IPC_MESSAGE_HANDLER(ViewMsg_TimezoneChange, OnUpdateTimezone) | |
1688 #if defined(OS_ANDROID) | 1694 #if defined(OS_ANDROID) |
1689 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, | 1695 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, |
1690 OnSetWebKitSharedTimersSuspended) | 1696 OnSetWebKitSharedTimersSuspended) |
1691 #endif | 1697 #endif |
1692 #if defined(OS_MACOSX) | 1698 #if defined(OS_MACOSX) |
1693 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) | 1699 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) |
1694 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) | 1700 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) |
1695 #endif | 1701 #endif |
1696 #if defined(ENABLE_PLUGINS) | 1702 #if defined(ENABLE_PLUGINS) |
1697 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) | 1703 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2004 net::NetworkChangeNotifier::ConnectionType type, | 2010 net::NetworkChangeNotifier::ConnectionType type, |
2005 double max_bandwidth_mbps) { | 2011 double max_bandwidth_mbps) { |
2006 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; | 2012 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; |
2007 WebNetworkStateNotifier::setOnLine(online); | 2013 WebNetworkStateNotifier::setOnLine(online); |
2008 FOR_EACH_OBSERVER( | 2014 FOR_EACH_OBSERVER( |
2009 RenderThreadObserver, observers_, NetworkStateChanged(online)); | 2015 RenderThreadObserver, observers_, NetworkStateChanged(online)); |
2010 WebNetworkStateNotifier::setWebConnection( | 2016 WebNetworkStateNotifier::setWebConnection( |
2011 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); | 2017 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); |
2012 } | 2018 } |
2013 | 2019 |
2014 void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) { | 2020 void RenderThreadImpl::OnTimeZoneChange(const std::string& zone_id) { |
2015 if (!blink_platform_impl_) | 2021 if (!blink_platform_impl_) |
2016 return; | 2022 return; |
2017 if (!zone_id.empty()) { | 2023 if (!zone_id.empty()) { |
2018 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( | 2024 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( |
2019 icu::UnicodeString::fromUTF8(zone_id)); | 2025 icu::UnicodeString::fromUTF8(zone_id)); |
2020 icu::TimeZone::adoptDefault(new_zone); | 2026 icu::TimeZone::adoptDefault(new_zone); |
2021 VLOG(1) << "ICU default timezone is set to " << zone_id; | 2027 VLOG(1) << "ICU default timezone is set to " << zone_id; |
2022 } | 2028 } |
2023 NotifyTimezoneChange(); | 2029 NotifyTimezoneChange(); |
2024 } | 2030 } |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2265 if (blink::mainThreadIsolate()) { | 2271 if (blink::mainThreadIsolate()) { |
2266 blink::mainThreadIsolate()->MemoryPressureNotification( | 2272 blink::mainThreadIsolate()->MemoryPressureNotification( |
2267 v8::MemoryPressureLevel::kCritical); | 2273 v8::MemoryPressureLevel::kCritical); |
2268 blink::MemoryPressureNotificationToWorkerThreadIsolates( | 2274 blink::MemoryPressureNotificationToWorkerThreadIsolates( |
2269 v8::MemoryPressureLevel::kCritical); | 2275 v8::MemoryPressureLevel::kCritical); |
2270 } | 2276 } |
2271 } | 2277 } |
2272 | 2278 |
2273 | 2279 |
2274 } // namespace content | 2280 } // namespace content |
OLD | NEW |