| 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 device::mojom::TimeZoneMonitorPtr time_zone_monitor; |
| 861 GetRemoteInterfaces()->GetInterface(mojo::GetProxy(&time_zone_monitor)); |
| 862 time_zone_monitor->AddClient( |
| 863 time_zone_monitor_binding_.CreateInterfacePtrAndBind()); |
| 864 |
| 858 is_renderer_suspended_ = false; | 865 is_renderer_suspended_ = false; |
| 859 } | 866 } |
| 860 | 867 |
| 861 RenderThreadImpl::~RenderThreadImpl() { | 868 RenderThreadImpl::~RenderThreadImpl() { |
| 862 } | 869 } |
| 863 | 870 |
| 864 void RenderThreadImpl::Shutdown() { | 871 void RenderThreadImpl::Shutdown() { |
| 865 FOR_EACH_OBSERVER( | 872 FOR_EACH_OBSERVER( |
| 866 RenderThreadObserver, observers_, OnRenderProcessShutdown()); | 873 RenderThreadObserver, observers_, OnRenderProcessShutdown()); |
| 867 | 874 |
| (...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1644 bool handled = true; | 1651 bool handled = true; |
| 1645 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) | 1652 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) |
| 1646 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) | 1653 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) |
| 1647 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) | 1654 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) |
| 1648 // TODO(port): removed from render_messages_internal.h; | 1655 // TODO(port): removed from render_messages_internal.h; |
| 1649 // is there a new non-windows message I should add here? | 1656 // is there a new non-windows message I should add here? |
| 1650 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) | 1657 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) |
| 1651 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, | 1658 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, |
| 1652 OnNetworkConnectionChanged) | 1659 OnNetworkConnectionChanged) |
| 1653 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) | 1660 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) |
| 1654 IPC_MESSAGE_HANDLER(ViewMsg_TimezoneChange, OnUpdateTimezone) | |
| 1655 #if defined(OS_ANDROID) | 1661 #if defined(OS_ANDROID) |
| 1656 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, | 1662 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, |
| 1657 OnSetWebKitSharedTimersSuspended) | 1663 OnSetWebKitSharedTimersSuspended) |
| 1658 #endif | 1664 #endif |
| 1659 #if defined(OS_MACOSX) | 1665 #if defined(OS_MACOSX) |
| 1660 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) | 1666 IPC_MESSAGE_HANDLER(ViewMsg_UpdateScrollbarTheme, OnUpdateScrollbarTheme) |
| 1661 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) | 1667 IPC_MESSAGE_HANDLER(ViewMsg_SystemColorsChanged, OnSystemColorsChanged) |
| 1662 #endif | 1668 #endif |
| 1663 #if defined(ENABLE_PLUGINS) | 1669 #if defined(ENABLE_PLUGINS) |
| 1664 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) | 1670 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) |
| (...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1966 net::NetworkChangeNotifier::ConnectionType type, | 1972 net::NetworkChangeNotifier::ConnectionType type, |
| 1967 double max_bandwidth_mbps) { | 1973 double max_bandwidth_mbps) { |
| 1968 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; | 1974 bool online = type != net::NetworkChangeNotifier::CONNECTION_NONE; |
| 1969 WebNetworkStateNotifier::setOnLine(online); | 1975 WebNetworkStateNotifier::setOnLine(online); |
| 1970 FOR_EACH_OBSERVER( | 1976 FOR_EACH_OBSERVER( |
| 1971 RenderThreadObserver, observers_, NetworkStateChanged(online)); | 1977 RenderThreadObserver, observers_, NetworkStateChanged(online)); |
| 1972 WebNetworkStateNotifier::setWebConnection( | 1978 WebNetworkStateNotifier::setWebConnection( |
| 1973 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); | 1979 NetConnectionTypeToWebConnectionType(type), max_bandwidth_mbps); |
| 1974 } | 1980 } |
| 1975 | 1981 |
| 1976 void RenderThreadImpl::OnUpdateTimezone(const std::string& zone_id) { | 1982 void RenderThreadImpl::OnTimeZoneChange(const std::string& zone_id) { |
| 1977 if (!blink_platform_impl_) | 1983 if (!blink_platform_impl_) |
| 1978 return; | 1984 return; |
| 1979 if (!zone_id.empty()) { | 1985 if (!zone_id.empty()) { |
| 1980 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( | 1986 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( |
| 1981 icu::UnicodeString::fromUTF8(zone_id)); | 1987 icu::UnicodeString::fromUTF8(zone_id)); |
| 1982 icu::TimeZone::adoptDefault(new_zone); | 1988 icu::TimeZone::adoptDefault(new_zone); |
| 1983 VLOG(1) << "ICU default timezone is set to " << zone_id; | 1989 VLOG(1) << "ICU default timezone is set to " << zone_id; |
| 1984 } | 1990 } |
| 1985 NotifyTimezoneChange(); | 1991 NotifyTimezoneChange(); |
| 1986 } | 1992 } |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2227 if (blink::mainThreadIsolate()) { | 2233 if (blink::mainThreadIsolate()) { |
| 2228 blink::mainThreadIsolate()->MemoryPressureNotification( | 2234 blink::mainThreadIsolate()->MemoryPressureNotification( |
| 2229 v8::MemoryPressureLevel::kCritical); | 2235 v8::MemoryPressureLevel::kCritical); |
| 2230 blink::MemoryPressureNotificationToWorkerThreadIsolates( | 2236 blink::MemoryPressureNotificationToWorkerThreadIsolates( |
| 2231 v8::MemoryPressureLevel::kCritical); | 2237 v8::MemoryPressureLevel::kCritical); |
| 2232 } | 2238 } |
| 2233 } | 2239 } |
| 2234 | 2240 |
| 2235 | 2241 |
| 2236 } // namespace content | 2242 } // namespace content |
| OLD | NEW |