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 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
581 const InProcessChildThreadParams& params, | 581 const InProcessChildThreadParams& params, |
582 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 582 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
583 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 583 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
584 : ChildThreadImpl(Options::Builder() | 584 : ChildThreadImpl(Options::Builder() |
585 .InBrowserProcess(params) | 585 .InBrowserProcess(params) |
586 .UseMojoChannel(true) | 586 .UseMojoChannel(true) |
587 .AutoStartMojoShellConnection(false) | 587 .AutoStartMojoShellConnection(false) |
588 .ConnectToBrowser(true) | 588 .ConnectToBrowser(true) |
589 .Build()), | 589 .Build()), |
590 renderer_scheduler_(std::move(scheduler)), | 590 renderer_scheduler_(std::move(scheduler)), |
591 time_zone_monitor_binding_(this), | |
591 categorized_worker_pool_(new CategorizedWorkerPool()) { | 592 categorized_worker_pool_(new CategorizedWorkerPool()) { |
592 Init(resource_task_queue); | 593 Init(resource_task_queue); |
593 } | 594 } |
594 | 595 |
595 // When we run plugins in process, we actually run them on the render thread, | 596 // When we run plugins in process, we actually run them on the render thread, |
596 // which means that we need to make the render thread pump UI events. | 597 // which means that we need to make the render thread pump UI events. |
597 RenderThreadImpl::RenderThreadImpl( | 598 RenderThreadImpl::RenderThreadImpl( |
598 std::unique_ptr<base::MessageLoop> main_message_loop, | 599 std::unique_ptr<base::MessageLoop> main_message_loop, |
599 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 600 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
600 : ChildThreadImpl(Options::Builder() | 601 : ChildThreadImpl(Options::Builder() |
601 .UseMojoChannel(true) | 602 .UseMojoChannel(true) |
602 .AutoStartMojoShellConnection(false) | 603 .AutoStartMojoShellConnection(false) |
603 .ConnectToBrowser(true) | 604 .ConnectToBrowser(true) |
604 .Build()), | 605 .Build()), |
605 renderer_scheduler_(std::move(scheduler)), | 606 renderer_scheduler_(std::move(scheduler)), |
607 time_zone_monitor_binding_(this), | |
606 main_message_loop_(std::move(main_message_loop)), | 608 main_message_loop_(std::move(main_message_loop)), |
607 categorized_worker_pool_(new CategorizedWorkerPool()) { | 609 categorized_worker_pool_(new CategorizedWorkerPool()) { |
608 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 610 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
609 Init(test_task_counter); | 611 Init(test_task_counter); |
610 } | 612 } |
611 | 613 |
612 void RenderThreadImpl::Init( | 614 void RenderThreadImpl::Init( |
613 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { | 615 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { |
614 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); | 616 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); |
615 | 617 |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
848 | 850 |
849 GetContentClient()->renderer()->ExposeInterfacesToBrowser( | 851 GetContentClient()->renderer()->ExposeInterfacesToBrowser( |
850 GetInterfaceRegistry()); | 852 GetInterfaceRegistry()); |
851 | 853 |
852 GetInterfaceRegistry()->AddInterface(base::Bind(CreateFrameFactory)); | 854 GetInterfaceRegistry()->AddInterface(base::Bind(CreateFrameFactory)); |
853 GetInterfaceRegistry()->AddInterface(base::Bind(CreateEmbeddedWorkerSetup)); | 855 GetInterfaceRegistry()->AddInterface(base::Bind(CreateEmbeddedWorkerSetup)); |
854 | 856 |
855 GetRemoteInterfaces()->GetInterface( | 857 GetRemoteInterfaces()->GetInterface( |
856 mojo::GetProxy(&storage_partition_service_)); | 858 mojo::GetProxy(&storage_partition_service_)); |
857 | 859 |
860 GetRemoteInterfaces()->GetInterface(mojo::GetProxy(&time_zone_monitor_)); | |
Ken Rockot(use gerrit already)
2016/09/13 15:27:03
nit: No need for time_zone_monitor_ to be owned by
blundell
2016/09/14 09:35:13
Done.
| |
861 time_zone_monitor_->AddClient( | |
862 time_zone_monitor_binding_.CreateInterfacePtrAndBind()); | |
863 | |
858 is_renderer_suspended_ = false; | 864 is_renderer_suspended_ = false; |
859 } | 865 } |
860 | 866 |
861 RenderThreadImpl::~RenderThreadImpl() { | 867 RenderThreadImpl::~RenderThreadImpl() { |
862 } | 868 } |
863 | 869 |
864 void RenderThreadImpl::Shutdown() { | 870 void RenderThreadImpl::Shutdown() { |
865 FOR_EACH_OBSERVER( | 871 FOR_EACH_OBSERVER( |
866 RenderThreadObserver, observers_, OnRenderProcessShutdown()); | 872 RenderThreadObserver, observers_, OnRenderProcessShutdown()); |
867 | 873 |
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1644 bool handled = true; | 1650 bool handled = true; |
1645 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) | 1651 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) |
1646 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) | 1652 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) |
1647 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) | 1653 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) |
1648 // TODO(port): removed from render_messages_internal.h; | 1654 // TODO(port): removed from render_messages_internal.h; |
1649 // is there a new non-windows message I should add here? | 1655 // is there a new non-windows message I should add here? |
1650 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) | 1656 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) |
1651 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, | 1657 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, |
1652 OnNetworkConnectionChanged) | 1658 OnNetworkConnectionChanged) |
1653 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) | 1659 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) |
1654 IPC_MESSAGE_HANDLER(ViewMsg_TimezoneChange, OnUpdateTimezone) | |
1655 #if defined(OS_ANDROID) | 1660 #if defined(OS_ANDROID) |
1656 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, | 1661 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, |
1657 OnSetWebKitSharedTimersSuspended) | 1662 OnSetWebKitSharedTimersSuspended) |
1658 #endif | 1663 #endif |
1659 #if defined(OS_MACOSX) | 1664 #if defined(OS_MACOSX) |
1660 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) | 1665 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) |
1661 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) | 1666 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) |
1662 #endif | 1667 #endif |
1663 #if defined(ENABLE_PLUGINS) | 1668 #if defined(ENABLE_PLUGINS) |
1664 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) | 1669 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1966 net::NetworkChangeNotifier::ConnectionType type, | 1971 net::NetworkChangeNotifier::ConnectionType type, |
1967 double max_bandwidth_mbps) { | 1972 double max_bandwidth_mbps) { |
1968 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; | 1973 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; |
1969 WebNetworkStateNotifier::setOnLine(online); | 1974 WebNetworkStateNotifier::setOnLine(online); |
1970 FOR_EACH_OBSERVER( | 1975 FOR_EACH_OBSERVER( |
1971 RenderThreadObserver, observers_, NetworkStateChanged(online)); | 1976 RenderThreadObserver, observers_, NetworkStateChanged(online)); |
1972 WebNetworkStateNotifier::setWebConnection( | 1977 WebNetworkStateNotifier::setWebConnection( |
1973 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); | 1978 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); |
1974 } | 1979 } |
1975 | 1980 |
1976 void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) { | 1981 void RenderThreadImpl::OnTimeZoneChange(const std::string& zone_id) { |
1977 if (!blink_platform_impl_) | 1982 if (!blink_platform_impl_) |
1978 return; | 1983 return; |
1979 if (!zone_id.empty()) { | 1984 if (!zone_id.empty()) { |
1980 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( | 1985 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( |
1981 icu::UnicodeString::fromUTF8(zone_id)); | 1986 icu::UnicodeString::fromUTF8(zone_id)); |
1982 icu::TimeZone::adoptDefault(new_zone); | 1987 icu::TimeZone::adoptDefault(new_zone); |
1983 VLOG(1) << "ICU default timezone is set to " << zone_id; | 1988 VLOG(1) << "ICU default timezone is set to " << zone_id; |
1984 } | 1989 } |
1985 NotifyTimezoneChange(); | 1990 NotifyTimezoneChange(); |
1986 } | 1991 } |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2227 if (blink::mainThreadIsolate()) { | 2232 if (blink::mainThreadIsolate()) { |
2228 blink::mainThreadIsolate()->MemoryPressureNotification( | 2233 blink::mainThreadIsolate()->MemoryPressureNotification( |
2229 v8::MemoryPressureLevel::kCritical); | 2234 v8::MemoryPressureLevel::kCritical); |
2230 blink::MemoryPressureNotificationToWorkerThreadIsolates( | 2235 blink::MemoryPressureNotificationToWorkerThreadIsolates( |
2231 v8::MemoryPressureLevel::kCritical); | 2236 v8::MemoryPressureLevel::kCritical); |
2232 } | 2237 } |
2233 } | 2238 } |
2234 | 2239 |
2235 | 2240 |
2236 } // namespace content | 2241 } // namespace content |
OLD | NEW |