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

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

Issue 337783002: Remove EnableThreadedCompositing from the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: thread: rebase Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « content/renderer/render_widget.h ('k') | content/shell/app/shell_main_delegate.cc » ('j') | 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_widget.h" 5 #include "content/renderer/render_widget.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 ui::TextInputMode ConvertInputMode(const blink::WebString& input_mode) { 142 ui::TextInputMode ConvertInputMode(const blink::WebString& input_mode) {
143 static TextInputModeMapSingleton* singleton = 143 static TextInputModeMapSingleton* singleton =
144 TextInputModeMapSingleton::GetInstance(); 144 TextInputModeMapSingleton::GetInstance();
145 TextInputModeMap::const_iterator it = 145 TextInputModeMap::const_iterator it =
146 singleton->map().find(input_mode.utf8()); 146 singleton->map().find(input_mode.utf8());
147 if (it == singleton->map().end()) 147 if (it == singleton->map().end())
148 return ui::TEXT_INPUT_MODE_DEFAULT; 148 return ui::TEXT_INPUT_MODE_DEFAULT;
149 return it->second; 149 return it->second;
150 } 150 }
151 151
152 bool IsThreadedCompositingEnabled() {
153 content::RenderThreadImpl* impl = content::RenderThreadImpl::current();
154 return impl && !!impl->compositor_message_loop_proxy().get();
155 }
156
152 // TODO(brianderson): Replace the hard-coded threshold with a fraction of 157 // TODO(brianderson): Replace the hard-coded threshold with a fraction of
153 // the BeginMainFrame interval. 158 // the BeginMainFrame interval.
154 // 4166us will allow 1/4 of a 60Hz interval or 1/2 of a 120Hz interval to 159 // 4166us will allow 1/4 of a 60Hz interval or 1/2 of a 120Hz interval to
155 // be spent in input hanlders before input starts getting throttled. 160 // be spent in input hanlders before input starts getting throttled.
156 const int kInputHandlingTimeThrottlingThresholdMicroseconds = 4166; 161 const int kInputHandlingTimeThrottlingThresholdMicroseconds = 4166;
157 162
158 } // namespace 163 } // namespace
159 164
160 namespace content { 165 namespace content {
161 166
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 is_swapped_out_(swapped_out), 394 is_swapped_out_(swapped_out),
390 input_method_is_active_(false), 395 input_method_is_active_(false),
391 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), 396 text_input_type_(ui::TEXT_INPUT_TYPE_NONE),
392 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT), 397 text_input_mode_(ui::TEXT_INPUT_MODE_DEFAULT),
393 can_compose_inline_(true), 398 can_compose_inline_(true),
394 popup_type_(popup_type), 399 popup_type_(popup_type),
395 pending_window_rect_count_(0), 400 pending_window_rect_count_(0),
396 suppress_next_char_events_(false), 401 suppress_next_char_events_(false),
397 screen_info_(screen_info), 402 screen_info_(screen_info),
398 device_scale_factor_(screen_info_.deviceScaleFactor), 403 device_scale_factor_(screen_info_.deviceScaleFactor),
399 is_threaded_compositing_enabled_(false),
400 current_event_latency_info_(NULL), 404 current_event_latency_info_(NULL),
401 next_output_surface_id_(0), 405 next_output_surface_id_(0),
402 #if defined(OS_ANDROID) 406 #if defined(OS_ANDROID)
403 text_field_is_dirty_(false), 407 text_field_is_dirty_(false),
404 outstanding_ime_acks_(0), 408 outstanding_ime_acks_(0),
405 body_background_color_(SK_ColorWHITE), 409 body_background_color_(SK_ColorWHITE),
406 #endif 410 #endif
407 popup_origin_scale_for_emulation_(0.f), 411 popup_origin_scale_for_emulation_(0.f),
408 resizing_mode_selector_(new ResizingModeSelector()), 412 resizing_mode_selector_(new ResizingModeSelector()),
409 context_menu_source_type_(ui::MENU_SOURCE_MOUSE) { 413 context_menu_source_type_(ui::MENU_SOURCE_MOUSE) {
410 if (!swapped_out) 414 if (!swapped_out)
411 RenderProcess::current()->AddRefProcess(); 415 RenderProcess::current()->AddRefProcess();
412 DCHECK(RenderThread::Get()); 416 DCHECK(RenderThread::Get());
413 is_threaded_compositing_enabled_ =
414 CommandLine::ForCurrentProcess()->HasSwitch(
415 switches::kEnableThreadedCompositing);
416 device_color_profile_.push_back('0'); 417 device_color_profile_.push_back('0');
417 } 418 }
418 419
419 RenderWidget::~RenderWidget() { 420 RenderWidget::~RenderWidget() {
420 DCHECK(!webwidget_) << "Leaking our WebWidget!"; 421 DCHECK(!webwidget_) << "Leaking our WebWidget!";
421 422
422 // If we are swapped out, we have released already. 423 // If we are swapped out, we have released already.
423 if (!is_swapped_out_ && RenderProcess::current()) 424 if (!is_swapped_out_ && RenderProcess::current())
424 RenderProcess::current()->ReleaseProcess(); 425 RenderProcess::current()->ReleaseProcess();
425 } 426 }
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 context_provider = ContextProviderCommandBuffer::Create( 834 context_provider = ContextProviderCommandBuffer::Create(
834 CreateGraphicsContext3D(), "RenderCompositor"); 835 CreateGraphicsContext3D(), "RenderCompositor");
835 if (!context_provider.get()) { 836 if (!context_provider.get()) {
836 // Cause the compositor to wait and try again. 837 // Cause the compositor to wait and try again.
837 return scoped_ptr<cc::OutputSurface>(); 838 return scoped_ptr<cc::OutputSurface>();
838 } 839 }
839 } 840 }
840 841
841 uint32 output_surface_id = next_output_surface_id_++; 842 uint32 output_surface_id = next_output_surface_id_++;
842 if (command_line.HasSwitch(switches::kEnableDelegatedRenderer)) { 843 if (command_line.HasSwitch(switches::kEnableDelegatedRenderer)) {
843 DCHECK(is_threaded_compositing_enabled_); 844 DCHECK(IsThreadedCompositingEnabled());
844 return scoped_ptr<cc::OutputSurface>( 845 return scoped_ptr<cc::OutputSurface>(
845 new DelegatedCompositorOutputSurface( 846 new DelegatedCompositorOutputSurface(
846 routing_id(), 847 routing_id(),
847 output_surface_id, 848 output_surface_id,
848 context_provider)); 849 context_provider));
849 } 850 }
850 if (!context_provider.get()) { 851 if (!context_provider.get()) {
851 scoped_ptr<cc::SoftwareOutputDevice> software_device( 852 scoped_ptr<cc::SoftwareOutputDevice> software_device(
852 new CompositorSoftwareOutputDevice()); 853 new CompositorSoftwareOutputDevice());
853 854
854 return scoped_ptr<cc::OutputSurface>(new CompositorOutputSurface( 855 return scoped_ptr<cc::OutputSurface>(new CompositorOutputSurface(
855 routing_id(), 856 routing_id(),
856 output_surface_id, 857 output_surface_id,
857 NULL, 858 NULL,
858 software_device.Pass(), 859 software_device.Pass(),
859 true)); 860 true));
860 } 861 }
861 862
862 if (command_line.HasSwitch(cc::switches::kCompositeToMailbox)) { 863 if (command_line.HasSwitch(cc::switches::kCompositeToMailbox)) {
863 // Composite-to-mailbox is currently used for layout tests in order to cause 864 // Composite-to-mailbox is currently used for layout tests in order to cause
864 // them to draw inside in the renderer to do the readback there. This should 865 // them to draw inside in the renderer to do the readback there. This should
865 // no longer be the case when crbug.com/311404 is fixed. 866 // no longer be the case when crbug.com/311404 is fixed.
866 DCHECK(is_threaded_compositing_enabled_ || 867 DCHECK(IsThreadedCompositingEnabled() ||
867 RenderThreadImpl::current()->layout_test_mode()); 868 RenderThreadImpl::current()->layout_test_mode());
868 cc::ResourceFormat format = cc::RGBA_8888; 869 cc::ResourceFormat format = cc::RGBA_8888;
869 if (base::SysInfo::IsLowEndDevice()) 870 if (base::SysInfo::IsLowEndDevice())
870 format = cc::RGB_565; 871 format = cc::RGB_565;
871 return scoped_ptr<cc::OutputSurface>( 872 return scoped_ptr<cc::OutputSurface>(
872 new MailboxOutputSurface( 873 new MailboxOutputSurface(
873 routing_id(), 874 routing_id(),
874 output_surface_id, 875 output_surface_id,
875 context_provider, 876 context_provider,
876 scoped_ptr<cc::SoftwareOutputDevice>(), 877 scoped_ptr<cc::SoftwareOutputDevice>(),
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1165 } 1166 }
1166 1167
1167 void RenderWidget::AutoResizeCompositor() { 1168 void RenderWidget::AutoResizeCompositor() {
1168 physical_backing_size_ = gfx::ToCeiledSize(gfx::ScaleSize(size_, 1169 physical_backing_size_ = gfx::ToCeiledSize(gfx::ScaleSize(size_,
1169 device_scale_factor_)); 1170 device_scale_factor_));
1170 if (compositor_) 1171 if (compositor_)
1171 compositor_->setViewportSize(size_, physical_backing_size_); 1172 compositor_->setViewportSize(size_, physical_backing_size_);
1172 } 1173 }
1173 1174
1174 void RenderWidget::initializeLayerTreeView() { 1175 void RenderWidget::initializeLayerTreeView() {
1175 compositor_ = RenderWidgetCompositor::Create( 1176 compositor_ =
1176 this, is_threaded_compositing_enabled_); 1177 RenderWidgetCompositor::Create(this, IsThreadedCompositingEnabled());
1177 compositor_->setViewportSize(size_, physical_backing_size_); 1178 compositor_->setViewportSize(size_, physical_backing_size_);
1178 if (init_complete_) 1179 if (init_complete_)
1179 StartCompositor(); 1180 StartCompositor();
1180 } 1181 }
1181 1182
1182 blink::WebLayerTreeView* RenderWidget::layerTreeView() { 1183 blink::WebLayerTreeView* RenderWidget::layerTreeView() {
1183 return compositor_.get(); 1184 return compositor_.get();
1184 } 1185 }
1185 1186
1186 void RenderWidget::suppressCompositorScheduling(bool enable) { 1187 void RenderWidget::suppressCompositorScheduling(bool enable) {
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after
2073 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { 2074 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) {
2074 video_hole_frames_.AddObserver(frame); 2075 video_hole_frames_.AddObserver(frame);
2075 } 2076 }
2076 2077
2077 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { 2078 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) {
2078 video_hole_frames_.RemoveObserver(frame); 2079 video_hole_frames_.RemoveObserver(frame);
2079 } 2080 }
2080 #endif // defined(VIDEO_HOLE) 2081 #endif // defined(VIDEO_HOLE)
2081 2082
2082 } // namespace content 2083 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_widget.h ('k') | content/shell/app/shell_main_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698