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

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

Issue 1838853005: android: Remove in-process sync compositor code path (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_in_proc_video
Patch Set: rebase Created 4 years, 8 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/gpu/render_widget_compositor.cc ('k') | content/renderer/render_widget.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_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 <utility> 10 #include <utility>
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 #include "third_party/WebKit/public/web/WebView.h" 158 #include "third_party/WebKit/public/web/WebView.h"
159 #include "third_party/icu/source/i18n/unicode/timezone.h" 159 #include "third_party/icu/source/i18n/unicode/timezone.h"
160 #include "third_party/skia/include/core/SkGraphics.h" 160 #include "third_party/skia/include/core/SkGraphics.h"
161 #include "ui/base/layout.h" 161 #include "ui/base/layout.h"
162 #include "ui/base/ui_base_switches.h" 162 #include "ui/base/ui_base_switches.h"
163 #include "v8/include/v8.h" 163 #include "v8/include/v8.h"
164 164
165 #if defined(OS_ANDROID) 165 #if defined(OS_ANDROID)
166 #include <cpu-features.h> 166 #include <cpu-features.h>
167 #include "content/renderer/android/synchronous_compositor_external_begin_frame_s ource.h" 167 #include "content/renderer/android/synchronous_compositor_external_begin_frame_s ource.h"
168 #include "content/renderer/android/synchronous_compositor_factory.h"
169 #include "content/renderer/android/synchronous_compositor_filter.h" 168 #include "content/renderer/android/synchronous_compositor_filter.h"
170 #include "content/renderer/media/android/renderer_demuxer_android.h" 169 #include "content/renderer/media/android/renderer_demuxer_android.h"
171 #include "content/renderer/media/android/stream_texture_factory_impl.h" 170 #include "content/renderer/media/android/stream_texture_factory_impl.h"
172 #include "media/base/android/media_codec_util.h" 171 #include "media/base/android/media_codec_util.h"
173 #endif 172 #endif
174 173
175 #if defined(OS_MACOSX) 174 #if defined(OS_MACOSX)
176 #include "base/mac/mac_util.h" 175 #include "base/mac/mac_util.h"
177 #include "content/renderer/theme_helper_mac.h" 176 #include "content/renderer/theme_helper_mac.h"
178 #include "content/renderer/webscrollbarbehavior_impl_mac.h" 177 #include "content/renderer/webscrollbarbehavior_impl_mac.h"
(...skipping 963 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 void RenderThreadImpl::RemoveObserver(RenderThreadObserver* observer) { 1141 void RenderThreadImpl::RemoveObserver(RenderThreadObserver* observer) {
1143 observers_.RemoveObserver(observer); 1142 observers_.RemoveObserver(observer);
1144 } 1143 }
1145 1144
1146 void RenderThreadImpl::SetResourceDispatcherDelegate( 1145 void RenderThreadImpl::SetResourceDispatcherDelegate(
1147 ResourceDispatcherDelegate* delegate) { 1146 ResourceDispatcherDelegate* delegate) {
1148 resource_dispatcher()->set_delegate(delegate); 1147 resource_dispatcher()->set_delegate(delegate);
1149 } 1148 }
1150 1149
1151 void RenderThreadImpl::InitializeCompositorThread() { 1150 void RenderThreadImpl::InitializeCompositorThread() {
1151 base::Thread::Options options;
1152 #if defined(OS_ANDROID) 1152 #if defined(OS_ANDROID)
1153 SynchronousCompositorFactory* sync_compositor_factory = 1153 options.priority = base::ThreadPriority::DISPLAY;
1154 SynchronousCompositorFactory::GetInstance();
1155 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
1156 bool using_ipc_sync_compositing =
1157 cmd_line->HasSwitch(switches::kIPCSyncCompositing);
1158 bool sync_input_for_sync_compositing =
1159 cmd_line->HasSwitch(switches::kSyncInputForSyncCompositor);
1160 DCHECK(!sync_compositor_factory || !using_ipc_sync_compositing);
1161 DCHECK(!sync_input_for_sync_compositing || using_ipc_sync_compositing);
1162
1163 if (sync_compositor_factory) {
1164 compositor_task_runner_ =
1165 sync_compositor_factory->GetCompositorTaskRunner();
1166 }
1167 #endif 1154 #endif
1168 if (!compositor_task_runner_.get()) { 1155 compositor_thread_.reset(new WebThreadForCompositor(options));
1169 base::Thread::Options options; 1156 blink_platform_impl_->SetCompositorThread(compositor_thread_.get());
1170 #if defined(OS_ANDROID) 1157 compositor_task_runner_ = compositor_thread_->GetTaskRunner();
1171 options.priority = base::ThreadPriority::DISPLAY; 1158 compositor_task_runner_->PostTask(
1172 #endif 1159 FROM_HERE,
1173 compositor_thread_.reset(new WebThreadForCompositor(options)); 1160 base::Bind(base::IgnoreResult(&ThreadRestrictions::SetIOAllowed), false));
1174 blink_platform_impl_->SetCompositorThread(compositor_thread_.get());
1175 compositor_task_runner_ = compositor_thread_->GetTaskRunner();
1176 compositor_task_runner_->PostTask(
1177 FROM_HERE,
1178 base::Bind(base::IgnoreResult(&ThreadRestrictions::SetIOAllowed),
1179 false));
1180 }
1181 1161
1182 InputHandlerManagerClient* input_handler_manager_client = nullptr; 1162 InputHandlerManagerClient* input_handler_manager_client = nullptr;
1183 SynchronousInputHandlerProxyClient* synchronous_input_handler_proxy_client = 1163 SynchronousInputHandlerProxyClient* synchronous_input_handler_proxy_client =
1184 nullptr; 1164 nullptr;
1185 #if defined(OS_ANDROID) 1165 #if defined(OS_ANDROID)
1186 if (using_ipc_sync_compositing) { 1166 if (GetContentClient()->UsingSynchronousCompositing()) {
1187 sync_compositor_message_filter_ = 1167 sync_compositor_message_filter_ =
1188 new SynchronousCompositorFilter(compositor_task_runner_); 1168 new SynchronousCompositorFilter(compositor_task_runner_);
1189 AddFilter(sync_compositor_message_filter_.get()); 1169 AddFilter(sync_compositor_message_filter_.get());
1190 if (sync_input_for_sync_compositing) 1170 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
1171 switches::kSyncInputForSyncCompositor)) {
1191 input_handler_manager_client = sync_compositor_message_filter_.get(); 1172 input_handler_manager_client = sync_compositor_message_filter_.get();
1173 }
1192 synchronous_input_handler_proxy_client = 1174 synchronous_input_handler_proxy_client =
1193 sync_compositor_message_filter_.get(); 1175 sync_compositor_message_filter_.get();
1194 } else if (sync_compositor_factory) {
1195 input_handler_manager_client =
1196 sync_compositor_factory->GetInputHandlerManagerClient();
1197 synchronous_input_handler_proxy_client =
1198 sync_compositor_factory->GetSynchronousInputHandlerProxyClient();
1199 } 1176 }
1200 #endif 1177 #endif
1201 if (!input_handler_manager_client) { 1178 if (!input_handler_manager_client) {
1202 scoped_refptr<InputEventFilter> compositor_input_event_filter( 1179 scoped_refptr<InputEventFilter> compositor_input_event_filter(
1203 new InputEventFilter(main_input_callback_.callback(), 1180 new InputEventFilter(main_input_callback_.callback(),
1204 main_thread_compositor_task_runner_, 1181 main_thread_compositor_task_runner_,
1205 compositor_task_runner_)); 1182 compositor_task_runner_));
1206 input_handler_manager_client = compositor_input_event_filter.get(); 1183 input_handler_manager_client = compositor_input_event_filter.get();
1207 input_event_filter_ = compositor_input_event_filter; 1184 input_event_filter_ = compositor_input_event_filter;
1208 } 1185 }
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
1664 return renderer_scheduler_.get(); 1641 return renderer_scheduler_.get();
1665 } 1642 }
1666 1643
1667 cc::ContextProvider* RenderThreadImpl::GetSharedMainThreadContextProvider() { 1644 cc::ContextProvider* RenderThreadImpl::GetSharedMainThreadContextProvider() {
1668 return SharedMainThreadContextProvider().get(); 1645 return SharedMainThreadContextProvider().get();
1669 } 1646 }
1670 1647
1671 std::unique_ptr<cc::BeginFrameSource> 1648 std::unique_ptr<cc::BeginFrameSource>
1672 RenderThreadImpl::CreateExternalBeginFrameSource(int routing_id) { 1649 RenderThreadImpl::CreateExternalBeginFrameSource(int routing_id) {
1673 #if defined(OS_ANDROID) 1650 #if defined(OS_ANDROID)
1674 if (SynchronousCompositorFactory* factory = 1651 if (sync_compositor_message_filter_) {
1675 SynchronousCompositorFactory::GetInstance()) {
1676 DCHECK(!sync_compositor_message_filter_);
1677 return factory->CreateExternalBeginFrameSource(routing_id);
1678 } else if (sync_compositor_message_filter_) {
1679 return base::WrapUnique(new SynchronousCompositorExternalBeginFrameSource( 1652 return base::WrapUnique(new SynchronousCompositorExternalBeginFrameSource(
1680 routing_id, sync_compositor_message_filter_.get())); 1653 routing_id, sync_compositor_message_filter_.get()));
1681 } 1654 }
1682 #endif 1655 #endif
1683 return base::WrapUnique(new CompositorExternalBeginFrameSource( 1656 return base::WrapUnique(new CompositorExternalBeginFrameSource(
1684 compositor_message_filter_.get(), sync_message_filter(), routing_id)); 1657 compositor_message_filter_.get(), sync_message_filter(), routing_id));
1685 } 1658 }
1686 1659
1687 cc::ImageSerializationProcessor* 1660 cc::ImageSerializationProcessor*
1688 RenderThreadImpl::GetImageSerializationProcessor() { 1661 RenderThreadImpl::GetImageSerializationProcessor() {
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 } 2115 }
2143 2116
2144 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { 2117 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() {
2145 size_t erased = 2118 size_t erased =
2146 RenderThreadImpl::current()->pending_render_frame_connects_.erase( 2119 RenderThreadImpl::current()->pending_render_frame_connects_.erase(
2147 routing_id_); 2120 routing_id_);
2148 DCHECK_EQ(1u, erased); 2121 DCHECK_EQ(1u, erased);
2149 } 2122 }
2150 2123
2151 } // namespace content 2124 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.cc ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698