Chromium Code Reviews| 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/public/renderer/content_renderer_client.h" | 5 #include "content/public/renderer/content_renderer_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | |
| 8 #include "base/task_scheduler/initialization_util.h" | |
| 9 #include "base/task_scheduler/scheduler_worker_pool_params.h" | |
| 10 #include "base/task_scheduler/task_traits.h" | |
| 11 #include "base/threading/platform_thread.h" | |
| 12 #include "base/time/time.h" | |
| 7 #include "cc/blimp/remote_compositor_bridge.h" | 13 #include "cc/blimp/remote_compositor_bridge.h" |
| 8 #include "content/public/renderer/media_stream_renderer_factory.h" | 14 #include "content/public/renderer/media_stream_renderer_factory.h" |
| 9 #include "media/base/renderer_factory.h" | 15 #include "media/base/renderer_factory.h" |
| 10 #include "ui/gfx/icc_profile.h" | 16 #include "ui/gfx/icc_profile.h" |
| 11 #include "url/gurl.h" | 17 #include "url/gurl.h" |
| 12 | 18 |
| 13 namespace content { | 19 namespace content { |
| 14 | 20 |
| 21 namespace { | |
| 22 | |
| 23 enum WorkerPoolType : size_t { | |
| 24 BACKGROUND_WORKER_POOL = 0, | |
| 25 FOREGROUND_WORKER_POOL, | |
|
gab
2016/11/18 18:31:59
Not used anywhere but in GetTaskSchedulerWorkerPoo
| |
| 26 WORKER_POOL_COUNT // Always last. | |
| 27 }; | |
| 28 | |
| 29 size_t GetTaskSchedulerWorkerPoolIndexForTraits( | |
| 30 const base::TaskTraits& traits) { | |
| 31 DCHECK(!traits.with_file_io()); | |
| 32 return traits.priority() == base::TaskPriority::BACKGROUND | |
| 33 ? BACKGROUND_WORKER_POOL | |
| 34 : FOREGROUND_WORKER_POOL; | |
| 35 } | |
|
gab
2016/11/18 18:31:59
I'd prefer for this to be inlined in method's scop
| |
| 36 | |
| 37 } // namespace | |
| 38 | |
| 15 SkBitmap* ContentRendererClient::GetSadPluginBitmap() { | 39 SkBitmap* ContentRendererClient::GetSadPluginBitmap() { |
| 16 return nullptr; | 40 return nullptr; |
| 17 } | 41 } |
| 18 | 42 |
| 19 SkBitmap* ContentRendererClient::GetSadWebViewBitmap() { | 43 SkBitmap* ContentRendererClient::GetSadWebViewBitmap() { |
| 20 return nullptr; | 44 return nullptr; |
| 21 } | 45 } |
| 22 | 46 |
| 23 bool ContentRendererClient::OverrideCreatePlugin( | 47 bool ContentRendererClient::OverrideCreatePlugin( |
| 24 RenderFrame* render_frame, | 48 RenderFrame* render_frame, |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 37 bool ContentRendererClient::HasErrorPage(int http_status_code, | 61 bool ContentRendererClient::HasErrorPage(int http_status_code, |
| 38 std::string* error_domain) { | 62 std::string* error_domain) { |
| 39 return false; | 63 return false; |
| 40 } | 64 } |
| 41 | 65 |
| 42 bool ContentRendererClient::ShouldSuppressErrorPage(RenderFrame* render_frame, | 66 bool ContentRendererClient::ShouldSuppressErrorPage(RenderFrame* render_frame, |
| 43 const GURL& url) { | 67 const GURL& url) { |
| 44 return false; | 68 return false; |
| 45 } | 69 } |
| 46 | 70 |
| 71 void ContentRendererClient::GetTaskSchedulerInitializationArguments( | |
| 72 std::vector<base::SchedulerWorkerPoolParams>* worker_pool_params_vector, | |
| 73 base::Callback<size_t(const base::TaskTraits& traits)>* | |
| 74 worker_pool_index_for_traits_callback, | |
| 75 bool* redirect_sequenced_worker_pool) { | |
| 76 constexpr int kBackgroundThreadsMin = 3; | |
| 77 constexpr int kBackgroundThreadsMax = 8; | |
| 78 constexpr double kBackgroundThreadsCoresMultiplier = 0.1; | |
| 79 constexpr int kBackgroundThreadsOffset = 0; | |
| 80 worker_pool_params_vector->emplace_back( | |
| 81 "RendererBackground", base::ThreadPriority::NORMAL, | |
| 82 base::SchedulerWorkerPoolParams::IORestriction::DISALLOWED, | |
| 83 base::SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, | |
| 84 base::RecommendedMaxNumberOfThreadsInPool( | |
| 85 kBackgroundThreadsMin, kBackgroundThreadsMax, | |
| 86 kBackgroundThreadsCoresMultiplier, kBackgroundThreadsOffset), | |
| 87 base::TimeDelta::FromSeconds(30)); | |
| 88 | |
| 89 constexpr int kForegroundThreadsMin = 8; | |
| 90 constexpr int kForegroundThreadsMax = 32; | |
| 91 constexpr double kForegroundThreadsCoresMultiplier = 0.3; | |
| 92 constexpr int kForegroundThreadsOffset = 0; | |
|
gab
2016/11/18 18:31:59
These constants are probably too high for the rend
| |
| 93 worker_pool_params_vector->emplace_back( | |
| 94 "RendererForeground", base::ThreadPriority::NORMAL, | |
| 95 base::SchedulerWorkerPoolParams::IORestriction::DISALLOWED, | |
| 96 base::SchedulerWorkerPoolParams::StandbyThreadPolicy::LAZY, | |
| 97 base::RecommendedMaxNumberOfThreadsInPool( | |
| 98 kForegroundThreadsMin, kForegroundThreadsMax, | |
| 99 kForegroundThreadsCoresMultiplier, kForegroundThreadsOffset), | |
| 100 base::TimeDelta::FromSeconds(30)); | |
| 101 | |
| 102 *worker_pool_index_for_traits_callback = | |
| 103 base::Bind(&GetTaskSchedulerWorkerPoolIndexForTraits); | |
| 104 | |
| 105 *redirect_sequenced_worker_pool = false; | |
| 106 } | |
| 107 | |
| 47 void ContentRendererClient::DeferMediaLoad( | 108 void ContentRendererClient::DeferMediaLoad( |
| 48 RenderFrame* render_frame, | 109 RenderFrame* render_frame, |
| 49 bool has_played_media_before, | 110 bool has_played_media_before, |
| 50 const base::Closure& closure) { | 111 const base::Closure& closure) { |
| 51 closure.Run(); | 112 closure.Run(); |
| 52 } | 113 } |
| 53 | 114 |
| 54 blink::WebMediaStreamCenter* | 115 blink::WebMediaStreamCenter* |
| 55 ContentRendererClient::OverrideCreateWebMediaStreamCenter( | 116 ContentRendererClient::OverrideCreateWebMediaStreamCenter( |
| 56 blink::WebMediaStreamCenterClient* client) { | 117 blink::WebMediaStreamCenterClient* client) { |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 232 | 293 |
| 233 bool ContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { | 294 bool ContentRendererClient::ShouldEnforceWebRTCRoutingPreferences() { |
| 234 return true; | 295 return true; |
| 235 } | 296 } |
| 236 | 297 |
| 237 GURL ContentRendererClient::OverrideFlashEmbedWithHTML(const GURL& url) { | 298 GURL ContentRendererClient::OverrideFlashEmbedWithHTML(const GURL& url) { |
| 238 return GURL(); | 299 return GURL(); |
| 239 } | 300 } |
| 240 | 301 |
| 241 } // namespace content | 302 } // namespace content |
| OLD | NEW |