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 <vector> | 10 #include <vector> |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 | 415 |
416 private: | 416 private: |
417 mojo::StrongBinding<EmbeddedWorkerSetup> binding_; | 417 mojo::StrongBinding<EmbeddedWorkerSetup> binding_; |
418 }; | 418 }; |
419 | 419 |
420 void CreateEmbeddedWorkerSetup( | 420 void CreateEmbeddedWorkerSetup( |
421 mojo::InterfaceRequest<EmbeddedWorkerSetup> request) { | 421 mojo::InterfaceRequest<EmbeddedWorkerSetup> request) { |
422 new EmbeddedWorkerSetupImpl(request.Pass()); | 422 new EmbeddedWorkerSetupImpl(request.Pass()); |
423 } | 423 } |
424 | 424 |
| 425 void StringToUintVector(const std::string& str, std::vector<unsigned>* vector) { |
| 426 DCHECK(vector->empty()); |
| 427 std::vector<std::string> pieces; |
| 428 base::SplitString(str, ',', &pieces); |
| 429 DCHECK_EQ(pieces.size(), static_cast<size_t>(gfx::BufferFormat::LAST) + 1); |
| 430 for (size_t i = 0; i < pieces.size(); ++i) { |
| 431 unsigned number = 0; |
| 432 bool succeed = base::StringToUint(pieces[i], &number); |
| 433 DCHECK(succeed); |
| 434 vector->push_back(number); |
| 435 } |
| 436 } |
| 437 |
425 } // namespace | 438 } // namespace |
426 | 439 |
427 // For measuring memory usage after each task. Behind a command line flag. | 440 // For measuring memory usage after each task. Behind a command line flag. |
428 class MemoryObserver : public base::MessageLoop::TaskObserver { | 441 class MemoryObserver : public base::MessageLoop::TaskObserver { |
429 public: | 442 public: |
430 MemoryObserver() {} | 443 MemoryObserver() {} |
431 ~MemoryObserver() override {} | 444 ~MemoryObserver() override {} |
432 | 445 |
433 void WillProcessTask(const base::PendingTask& pending_task) override {} | 446 void WillProcessTask(const base::PendingTask& pending_task) override {} |
434 | 447 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 key, kCFPreferencesCurrentApplication, &key_exists); | 660 key, kCFPreferencesCurrentApplication, &key_exists); |
648 if (key_exists && !value) | 661 if (key_exists && !value) |
649 is_elastic_overscroll_enabled_ = false; | 662 is_elastic_overscroll_enabled_ = false; |
650 } | 663 } |
651 #else | 664 #else |
652 is_elastic_overscroll_enabled_ = false; | 665 is_elastic_overscroll_enabled_ = false; |
653 #endif | 666 #endif |
654 | 667 |
655 std::string image_texture_target_string = | 668 std::string image_texture_target_string = |
656 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget); | 669 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget); |
657 bool parsed_image_texture_target = base::StringToUint( | 670 StringToUintVector(image_texture_target_string, &use_image_texture_targets_); |
658 image_texture_target_string, &use_image_texture_target_); | |
659 DCHECK(parsed_image_texture_target); | |
660 | 671 |
661 if (command_line.HasSwitch(switches::kDisableLCDText)) { | 672 if (command_line.HasSwitch(switches::kDisableLCDText)) { |
662 is_lcd_text_enabled_ = false; | 673 is_lcd_text_enabled_ = false; |
663 } else if (command_line.HasSwitch(switches::kEnableLCDText)) { | 674 } else if (command_line.HasSwitch(switches::kEnableLCDText)) { |
664 is_lcd_text_enabled_ = true; | 675 is_lcd_text_enabled_ = true; |
665 } else { | 676 } else { |
666 #if defined(OS_ANDROID) | 677 #if defined(OS_ANDROID) |
667 is_lcd_text_enabled_ = false; | 678 is_lcd_text_enabled_ = false; |
668 #else | 679 #else |
669 is_lcd_text_enabled_ = true; | 680 is_lcd_text_enabled_ = true; |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1330 lose_context_when_out_of_memory, | 1341 lose_context_when_out_of_memory, |
1331 GURL("chrome://gpu/RenderThreadImpl::GetGpuVDAContext3D"), | 1342 GURL("chrome://gpu/RenderThreadImpl::GetGpuVDAContext3D"), |
1332 WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits(), | 1343 WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits(), |
1333 NULL)), | 1344 NULL)), |
1334 GPU_VIDEO_ACCELERATOR_CONTEXT); | 1345 GPU_VIDEO_ACCELERATOR_CONTEXT); |
1335 } | 1346 } |
1336 if (gpu_va_context_provider_.get()) { | 1347 if (gpu_va_context_provider_.get()) { |
1337 bool enable_video_accelerator = | 1348 bool enable_video_accelerator = |
1338 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); | 1349 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); |
1339 std::string image_texture_target_string = | 1350 std::string image_texture_target_string = |
1340 cmd_line->GetSwitchValueASCII(switches::kContentImageTextureTarget); | 1351 cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget); |
1341 unsigned image_texture_target = 0; | 1352 unsigned image_texture_target = 0; |
1342 bool parsed_image_texture_target = | 1353 bool parsed_image_texture_target = |
1343 base::StringToUint(image_texture_target_string, &image_texture_target); | 1354 base::StringToUint(image_texture_target_string, &image_texture_target); |
1344 DCHECK(parsed_image_texture_target); | 1355 DCHECK(parsed_image_texture_target); |
1345 CHECK(gpu_channel_.get()) << "Have gpu_va_context_provider but no " | 1356 CHECK(gpu_channel_.get()) << "Have gpu_va_context_provider but no " |
1346 "gpu_channel_. See crbug.com/495185."; | 1357 "gpu_channel_. See crbug.com/495185."; |
1347 CHECK(gpu_channel_host.get()) << "Have gpu_va_context_provider but lost " | 1358 CHECK(gpu_channel_host.get()) << "Have gpu_va_context_provider but lost " |
1348 "gpu_channel_. See crbug.com/495185."; | 1359 "gpu_channel_. See crbug.com/495185."; |
1349 gpu_factories = RendererGpuVideoAcceleratorFactories::Create( | 1360 gpu_factories = RendererGpuVideoAcceleratorFactories::Create( |
1350 gpu_channel_host.get(), media_task_runner, gpu_va_context_provider_, | 1361 gpu_channel_host.get(), media_task_runner, gpu_va_context_provider_, |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1459 } | 1470 } |
1460 | 1471 |
1461 bool RenderThreadImpl::IsOneCopyEnabled() { | 1472 bool RenderThreadImpl::IsOneCopyEnabled() { |
1462 return is_one_copy_enabled_; | 1473 return is_one_copy_enabled_; |
1463 } | 1474 } |
1464 | 1475 |
1465 bool RenderThreadImpl::IsElasticOverscrollEnabled() { | 1476 bool RenderThreadImpl::IsElasticOverscrollEnabled() { |
1466 return is_elastic_overscroll_enabled_; | 1477 return is_elastic_overscroll_enabled_; |
1467 } | 1478 } |
1468 | 1479 |
1469 uint32 RenderThreadImpl::GetImageTextureTarget() { | 1480 std::vector<unsigned> RenderThreadImpl::GetImageTextureTargets() { |
1470 return use_image_texture_target_; | 1481 return use_image_texture_targets_; |
1471 } | 1482 } |
1472 | 1483 |
1473 scoped_refptr<base::SingleThreadTaskRunner> | 1484 scoped_refptr<base::SingleThreadTaskRunner> |
1474 RenderThreadImpl::GetCompositorMainThreadTaskRunner() { | 1485 RenderThreadImpl::GetCompositorMainThreadTaskRunner() { |
1475 return main_thread_compositor_task_runner_; | 1486 return main_thread_compositor_task_runner_; |
1476 } | 1487 } |
1477 | 1488 |
1478 scoped_refptr<base::SingleThreadTaskRunner> | 1489 scoped_refptr<base::SingleThreadTaskRunner> |
1479 RenderThreadImpl::GetCompositorImplThreadTaskRunner() { | 1490 RenderThreadImpl::GetCompositorImplThreadTaskRunner() { |
1480 return compositor_task_runner_; | 1491 return compositor_task_runner_; |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1932 } | 1943 } |
1933 | 1944 |
1934 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { | 1945 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { |
1935 size_t erased = | 1946 size_t erased = |
1936 RenderThreadImpl::current()->pending_render_frame_connects_.erase( | 1947 RenderThreadImpl::current()->pending_render_frame_connects_.erase( |
1937 routing_id_); | 1948 routing_id_); |
1938 DCHECK_EQ(1u, erased); | 1949 DCHECK_EQ(1u, erased); |
1939 } | 1950 } |
1940 | 1951 |
1941 } // namespace content | 1952 } // namespace content |
OLD | NEW |