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

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

Issue 1132913002: Remove RenderThreadImpl::DoNotSuspendWebKitSharedTimer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup comment Created 5 years, 7 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
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <vector> 10 #include <vector>
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 // On Mac and Android, the select popups are rendered by the browser. 482 // On Mac and Android, the select popups are rendered by the browser.
483 blink::WebView::setUseExternalPopupMenus(true); 483 blink::WebView::setUseExternalPopupMenus(true);
484 #endif 484 #endif
485 485
486 lazy_tls.Pointer()->Set(this); 486 lazy_tls.Pointer()->Set(this);
487 487
488 // Register this object as the main thread. 488 // Register this object as the main thread.
489 ChildProcess::current()->set_main_thread(this); 489 ChildProcess::current()->set_main_thread(this);
490 490
491 // In single process the single process is all there is. 491 // In single process the single process is all there is.
492 suspend_webkit_shared_timer_ = true;
493 notify_webkit_of_modal_loop_ = true; 492 notify_webkit_of_modal_loop_ = true;
494 webkit_shared_timer_suspended_ = false; 493 webkit_shared_timer_suspended_ = false;
495 widget_count_ = 0; 494 widget_count_ = 0;
496 hidden_widget_count_ = 0; 495 hidden_widget_count_ = 0;
497 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; 496 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs;
498 idle_notifications_to_skip_ = 0; 497 idle_notifications_to_skip_ = 0;
499 layout_test_mode_ = false; 498 layout_test_mode_ = false;
500 499
501 appcache_dispatcher_.reset( 500 appcache_dispatcher_.reset(
502 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl())); 501 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl()));
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 // is processing this request. This creates an opportunity for re-entrancy 823 // is processing this request. This creates an opportunity for re-entrancy
825 // into WebKit, so we need to take care to disable callbacks, timers, and 824 // into WebKit, so we need to take care to disable callbacks, timers, and
826 // pending network loads that could trigger such callbacks. 825 // pending network loads that could trigger such callbacks.
827 bool pumping_events = false; 826 bool pumping_events = false;
828 if (msg->is_sync()) { 827 if (msg->is_sync()) {
829 if (msg->is_caller_pumping_messages()) { 828 if (msg->is_caller_pumping_messages()) {
830 pumping_events = true; 829 pumping_events = true;
831 } 830 }
832 } 831 }
833 832
834 bool suspend_webkit_shared_timer = true; // default value
835 std::swap(suspend_webkit_shared_timer, suspend_webkit_shared_timer_);
836
837 bool notify_webkit_of_modal_loop = true; // default value 833 bool notify_webkit_of_modal_loop = true; // default value
838 std::swap(notify_webkit_of_modal_loop, notify_webkit_of_modal_loop_); 834 std::swap(notify_webkit_of_modal_loop, notify_webkit_of_modal_loop_);
839 835
840 #if defined(ENABLE_PLUGINS) 836 #if defined(ENABLE_PLUGINS)
841 int render_view_id = MSG_ROUTING_NONE; 837 int render_view_id = MSG_ROUTING_NONE;
842 #endif 838 #endif
843 839
844 if (pumping_events) { 840 if (pumping_events) {
845 if (suspend_webkit_shared_timer) { 841 // TODO(alexclarke): Remove the shared timer.
846 // TODO(alexclarke): Remove the shared timer. 842 blink_platform_impl_->SuspendSharedTimer();
847 blink_platform_impl_->SuspendSharedTimer(); 843 renderer_scheduler_->SuspendTimerQueue();
848 renderer_scheduler_->SuspendTimerQueue();
849 }
850 844
851 if (notify_webkit_of_modal_loop) 845 if (notify_webkit_of_modal_loop)
852 WebView::willEnterModalLoop(); 846 WebView::willEnterModalLoop();
853 #if defined(ENABLE_PLUGINS) 847 #if defined(ENABLE_PLUGINS)
854 RenderViewImpl* render_view = 848 RenderViewImpl* render_view =
855 RenderViewImpl::FromRoutingID(msg->routing_id()); 849 RenderViewImpl::FromRoutingID(msg->routing_id());
856 if (render_view) { 850 if (render_view) {
857 render_view_id = msg->routing_id(); 851 render_view_id = msg->routing_id();
858 PluginChannelHost::Broadcast( 852 PluginChannelHost::Broadcast(
859 new PluginMsg_SignalModalDialogEvent(render_view_id)); 853 new PluginMsg_SignalModalDialogEvent(render_view_id));
860 } 854 }
861 #endif 855 #endif
862 } 856 }
863 857
864 bool rv = ChildThreadImpl::Send(msg); 858 bool rv = ChildThreadImpl::Send(msg);
865 859
866 if (pumping_events) { 860 if (pumping_events) {
867 #if defined(ENABLE_PLUGINS) 861 #if defined(ENABLE_PLUGINS)
868 if (render_view_id != MSG_ROUTING_NONE) { 862 if (render_view_id != MSG_ROUTING_NONE) {
869 PluginChannelHost::Broadcast( 863 PluginChannelHost::Broadcast(
870 new PluginMsg_ResetModalDialogEvent(render_view_id)); 864 new PluginMsg_ResetModalDialogEvent(render_view_id));
871 } 865 }
872 #endif 866 #endif
873 867
874 if (notify_webkit_of_modal_loop) 868 if (notify_webkit_of_modal_loop)
875 WebView::didExitModalLoop(); 869 WebView::didExitModalLoop();
876 870
877 if (suspend_webkit_shared_timer) { 871 // TODO(alexclarke): Remove the shared timer.
878 // TODO(alexclarke): Remove the shared timer. 872 blink_platform_impl_->ResumeSharedTimer();
879 blink_platform_impl_->ResumeSharedTimer(); 873 renderer_scheduler_->ResumeTimerQueue();
880 renderer_scheduler_->ResumeTimerQueue();
881 }
882 } 874 }
883 875
884 return rv; 876 return rv;
885 } 877 }
886 878
887 scoped_refptr<base::SingleThreadTaskRunner> RenderThreadImpl::GetTaskRunner() { 879 scoped_refptr<base::SingleThreadTaskRunner> RenderThreadImpl::GetTaskRunner() {
888 return GetRendererScheduler()->DefaultTaskRunner(); 880 return GetRendererScheduler()->DefaultTaskRunner();
889 } 881 }
890 882
891 IPC::SyncChannel* RenderThreadImpl::GetChannel() { 883 IPC::SyncChannel* RenderThreadImpl::GetChannel() {
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
1506 init_params, 1498 init_params,
1507 route_id, 1499 route_id,
1508 &result); 1500 &result);
1509 1501
1510 // Allow calling this from the compositor thread. 1502 // Allow calling this from the compositor thread.
1511 thread_safe_sender()->Send(message); 1503 thread_safe_sender()->Send(message);
1512 1504
1513 return result; 1505 return result;
1514 } 1506 }
1515 1507
1516 void RenderThreadImpl::DoNotSuspendWebKitSharedTimer() {
1517 suspend_webkit_shared_timer_ = false;
1518 }
1519
1520 void RenderThreadImpl::DoNotNotifyWebKitOfModalLoop() { 1508 void RenderThreadImpl::DoNotNotifyWebKitOfModalLoop() {
1521 notify_webkit_of_modal_loop_ = false; 1509 notify_webkit_of_modal_loop_ = false;
1522 } 1510 }
1523 1511
1524 bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) { 1512 bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
1525 ObserverListBase<RenderProcessObserver>::Iterator it(&observers_); 1513 ObserverListBase<RenderProcessObserver>::Iterator it(&observers_);
1526 RenderProcessObserver* observer; 1514 RenderProcessObserver* observer;
1527 while ((observer = it.GetNext()) != NULL) { 1515 while ((observer = it.GetNext()) != NULL) {
1528 if (observer->OnControlMessageReceived(msg)) 1516 if (observer->OnControlMessageReceived(msg))
1529 return true; 1517 return true;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1718 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone( 1706 icu::TimeZone *new_zone = icu::TimeZone::createTimeZone(
1719 icu::UnicodeString::fromUTF8(zone_id)); 1707 icu::UnicodeString::fromUTF8(zone_id));
1720 icu::TimeZone::adoptDefault(new_zone); 1708 icu::TimeZone::adoptDefault(new_zone);
1721 VLOG(1) << "ICU default timezone is set to " << zone_id; 1709 VLOG(1) << "ICU default timezone is set to " << zone_id;
1722 } 1710 }
1723 NotifyTimezoneChange(); 1711 NotifyTimezoneChange();
1724 } 1712 }
1725 1713
1726 #if defined(OS_ANDROID) 1714 #if defined(OS_ANDROID)
1727 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) { 1715 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) {
1728 if (suspend_webkit_shared_timer_) { 1716 EnsureWebKitInitialized();
1729 EnsureWebKitInitialized(); 1717 // TODO(alexclarke): Remove the shared timer.
1730 // TODO(alexclarke): Remove the shared timer. 1718 if (suspend) {
1731 if (suspend) { 1719 blink_platform_impl_->SuspendSharedTimer();
1732 blink_platform_impl_->SuspendSharedTimer(); 1720 renderer_scheduler_->SuspendTimerQueue();
1733 renderer_scheduler_->SuspendTimerQueue(); 1721 } else {
1734 } else { 1722 blink_platform_impl_->ResumeSharedTimer();
1735 blink_platform_impl_->ResumeSharedTimer(); 1723 renderer_scheduler_->ResumeTimerQueue();
1736 renderer_scheduler_->ResumeTimerQueue();
1737 }
1738 webkit_shared_timer_suspended_ = suspend;
1739 } 1724 }
1725 webkit_shared_timer_suspended_ = suspend;
1740 } 1726 }
1741 #endif 1727 #endif
1742 1728
1743 #if defined(OS_MACOSX) 1729 #if defined(OS_MACOSX)
1744 void RenderThreadImpl::OnUpdateScrollbarTheme( 1730 void RenderThreadImpl::OnUpdateScrollbarTheme(
1745 float initial_button_delay, 1731 float initial_button_delay,
1746 float autoscroll_button_delay, 1732 float autoscroll_button_delay,
1747 bool jump_on_track_click, 1733 bool jump_on_track_click,
1748 blink::ScrollerStyle preferred_scroller_style, 1734 blink::ScrollerStyle preferred_scroller_style,
1749 bool redraw) { 1735 bool redraw) {
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1901 } 1887 }
1902 1888
1903 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { 1889 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() {
1904 size_t erased = 1890 size_t erased =
1905 RenderThreadImpl::current()->pending_render_frame_connects_.erase( 1891 RenderThreadImpl::current()->pending_render_frame_connects_.erase(
1906 routing_id_); 1892 routing_id_);
1907 DCHECK_EQ(1u, erased); 1893 DCHECK_EQ(1u, erased);
1908 } 1894 }
1909 1895
1910 } // namespace content 1896 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698