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

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

Issue 801973002: Introduce CompositorDependencies for RenderWidgetCompositor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: compdep: . Created 6 years 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') | content/renderer/render_view_impl.h » ('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_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 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 new RendererBlinkPlatformImpl(renderer_scheduler_.get())); 908 new RendererBlinkPlatformImpl(renderer_scheduler_.get()));
909 blink::initialize(blink_platform_impl_.get()); 909 blink::initialize(blink_platform_impl_.get());
910 910
911 v8::Isolate* isolate = blink::mainThreadIsolate(); 911 v8::Isolate* isolate = blink::mainThreadIsolate();
912 912
913 isolate->SetCounterFunction(base::StatsTable::FindLocation); 913 isolate->SetCounterFunction(base::StatsTable::FindLocation);
914 isolate->SetCreateHistogramFunction(CreateHistogram); 914 isolate->SetCreateHistogramFunction(CreateHistogram);
915 isolate->SetAddHistogramSampleFunction(AddHistogramSample); 915 isolate->SetAddHistogramSampleFunction(AddHistogramSample);
916 916
917 main_thread_compositor_task_runner_ = 917 main_thread_compositor_task_runner_ =
918 renderer_scheduler()->CompositorTaskRunner(); 918 renderer_scheduler_->CompositorTaskRunner();
919 919
920 main_input_callback_.Reset( 920 main_input_callback_.Reset(
921 base::Bind(base::IgnoreResult(&RenderThreadImpl::OnMessageReceived), 921 base::Bind(base::IgnoreResult(&RenderThreadImpl::OnMessageReceived),
922 base::Unretained(this))); 922 base::Unretained(this)));
923 923
924 bool enable = !command_line.HasSwitch(switches::kDisableThreadedCompositing); 924 bool enable = !command_line.HasSwitch(switches::kDisableThreadedCompositing);
925 if (enable) { 925 if (enable) {
926 #if defined(OS_ANDROID) 926 #if defined(OS_ANDROID)
927 if (SynchronousCompositorFactory* factory = 927 if (SynchronousCompositorFactory* factory =
928 SynchronousCompositorFactory::GetInstance()) 928 SynchronousCompositorFactory::GetInstance())
(...skipping 24 matching lines...) Expand all
953 if (!input_handler_manager_client) { 953 if (!input_handler_manager_client) {
954 scoped_refptr<InputEventFilter> compositor_input_event_filter( 954 scoped_refptr<InputEventFilter> compositor_input_event_filter(
955 new InputEventFilter(main_input_callback_.callback(), 955 new InputEventFilter(main_input_callback_.callback(),
956 main_thread_compositor_task_runner_, 956 main_thread_compositor_task_runner_,
957 compositor_message_loop_proxy_)); 957 compositor_message_loop_proxy_));
958 input_handler_manager_client = compositor_input_event_filter.get(); 958 input_handler_manager_client = compositor_input_event_filter.get();
959 input_event_filter_ = compositor_input_event_filter; 959 input_event_filter_ = compositor_input_event_filter;
960 } 960 }
961 input_handler_manager_.reset(new InputHandlerManager( 961 input_handler_manager_.reset(new InputHandlerManager(
962 compositor_message_loop_proxy_, input_handler_manager_client, 962 compositor_message_loop_proxy_, input_handler_manager_client,
963 renderer_scheduler())); 963 renderer_scheduler_.get()));
964 } 964 }
965 965
966 if (!input_event_filter_.get()) { 966 if (!input_event_filter_.get()) {
967 // Always provide an input event filter implementation to ensure consistent 967 // Always provide an input event filter implementation to ensure consistent
968 // input event scheduling and prioritization. 968 // input event scheduling and prioritization.
969 // TODO(jdduke): Merge InputEventFilter, InputHandlerManager and 969 // TODO(jdduke): Merge InputEventFilter, InputHandlerManager and
970 // MainThreadInputEventFilter, crbug.com/436057. 970 // MainThreadInputEventFilter, crbug.com/436057.
971 input_event_filter_ = new MainThreadInputEventFilter( 971 input_event_filter_ = new MainThreadInputEventFilter(
972 main_input_callback_.callback(), main_thread_compositor_task_runner_); 972 main_input_callback_.callback(), main_thread_compositor_task_runner_);
973 } 973 }
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 void RenderThreadImpl::ReleaseCachedFonts() { 1268 void RenderThreadImpl::ReleaseCachedFonts() {
1269 Send(new ChildProcessHostMsg_ReleaseCachedFonts()); 1269 Send(new ChildProcessHostMsg_ReleaseCachedFonts());
1270 } 1270 }
1271 1271
1272 #endif // OS_WIN 1272 #endif // OS_WIN
1273 1273
1274 ServiceRegistry* RenderThreadImpl::GetServiceRegistry() { 1274 ServiceRegistry* RenderThreadImpl::GetServiceRegistry() {
1275 return service_registry(); 1275 return service_registry();
1276 } 1276 }
1277 1277
1278 bool RenderThreadImpl::IsImplSidePaintingEnabled() {
1279 return is_impl_side_painting_enabled_;
1280 }
1281
1282 bool RenderThreadImpl::IsGpuRasterizationForced() {
1283 return is_gpu_rasterization_forced_;
1284 }
1285
1286 bool RenderThreadImpl::IsGpuRasterizationEnabled() {
1287 return is_gpu_rasterization_enabled_;
1288 }
1289
1290 bool RenderThreadImpl::IsLcdTextEnabled() {
1291 return is_lcd_text_enabled_;
1292 }
1293
1294 bool RenderThreadImpl::IsDistanceFieldTextEnabled() {
1295 return is_distance_field_text_enabled_;
1296 }
1297
1298 bool RenderThreadImpl::IsZeroCopyEnabled() {
1299 return is_zero_copy_enabled_;
1300 }
1301
1302 bool RenderThreadImpl::IsOneCopyEnabled() {
1303 return is_one_copy_enabled_;
1304 }
1305
1306 uint32 RenderThreadImpl::GetImageTextureTarget() {
1307 return use_image_texture_target_;
1308 }
1309 scoped_refptr<base::SingleThreadTaskRunner>
1310 RenderThreadImpl::GetCompositorMainThreadTaskRunner() {
1311 return main_thread_compositor_task_runner_;
1312 }
1313
1314 scoped_refptr<base::SingleThreadTaskRunner>
1315 RenderThreadImpl::GetCompositorImplThreadTaskRunner() {
1316 return compositor_message_loop_proxy_;
1317 }
1318
1319 gpu::GpuMemoryBufferManager* RenderThreadImpl::GetGpuMemoryBufferManager() {
1320 return gpu_memory_buffer_manager();
1321 }
1322
1323 RendererScheduler* RenderThreadImpl::GetRendererScheduler() {
1324 return renderer_scheduler_.get();
1325 }
1326
1327 cc::ContextProvider* RenderThreadImpl::GetSharedMainThreadContextProvider() {
1328 return SharedMainThreadContextProvider().get();
1329 }
1330
1331 scoped_ptr<cc::BeginFrameSource>
1332 RenderThreadImpl::CreateExternalBeginFrameSource(int routing_id) {
1333 #if defined(OS_ANDROID)
1334 if (SynchronousCompositorFactory* factory =
1335 SynchronousCompositorFactory::GetInstance()) {
1336 return factory->CreateExternalBeginFrameSource(routing_id);
1337 }
1338 #endif
1339 return make_scoped_ptr(new CompositorExternalBeginFrameSource(
1340 compositor_message_filter_.get(), sync_message_filter(), routing_id));
1341 }
1342
1278 bool RenderThreadImpl::IsMainThread() { 1343 bool RenderThreadImpl::IsMainThread() {
1279 return !!current(); 1344 return !!current();
1280 } 1345 }
1281 1346
1282 base::MessageLoop* RenderThreadImpl::GetMainLoop() { 1347 base::MessageLoop* RenderThreadImpl::GetMainLoop() {
1283 return message_loop(); 1348 return message_loop();
1284 } 1349 }
1285 1350
1286 scoped_refptr<base::MessageLoopProxy> RenderThreadImpl::GetIOLoopProxy() { 1351 scoped_refptr<base::MessageLoopProxy> RenderThreadImpl::GetIOLoopProxy() {
1287 return io_message_loop_proxy_; 1352 return io_message_loop_proxy_;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 1448
1384 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme, 1449 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& scheme,
1385 const std::string& host, 1450 const std::string& host,
1386 double zoom_level) { 1451 double zoom_level) {
1387 RenderViewZoomer zoomer(scheme, host, zoom_level); 1452 RenderViewZoomer zoomer(scheme, host, zoom_level);
1388 RenderView::ForEach(&zoomer); 1453 RenderView::ForEach(&zoomer);
1389 } 1454 }
1390 1455
1391 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) { 1456 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) {
1392 EnsureWebKitInitialized(); 1457 EnsureWebKitInitialized();
1458 CompositorDependencies* compositor_deps = this;
1393 // When bringing in render_view, also bring in webkit's glue and jsbindings. 1459 // When bringing in render_view, also bring in webkit's glue and jsbindings.
1394 RenderViewImpl::Create(params, false); 1460 RenderViewImpl::Create(params, compositor_deps, false);
1395 } 1461 }
1396 1462
1397 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync( 1463 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync(
1398 CauseForGpuLaunch cause_for_gpu_launch) { 1464 CauseForGpuLaunch cause_for_gpu_launch) {
1399 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); 1465 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync");
1400 1466
1401 if (gpu_channel_.get()) { 1467 if (gpu_channel_.get()) {
1402 // Do nothing if we already have a GPU channel or are already 1468 // Do nothing if we already have a GPU channel or are already
1403 // establishing one. 1469 // establishing one.
1404 if (!gpu_channel_->IsLost()) 1470 if (!gpu_channel_->IsLost())
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 hidden_widget_count_--; 1707 hidden_widget_count_--;
1642 1708
1643 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { 1709 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) {
1644 return; 1710 return;
1645 } 1711 }
1646 1712
1647 ScheduleIdleHandler(kLongIdleHandlerDelayMs); 1713 ScheduleIdleHandler(kLongIdleHandlerDelayMs);
1648 } 1714 }
1649 1715
1650 } // namespace content 1716 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698