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

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

Issue 2821473002: Service CreateNewWindow on the UI thread with a new mojo interface (Closed)
Patch Set: associated with IPC channel Created 3 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
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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 const size_t kImageCacheSingleAllocationByteLimit = 64 * 1024 * 1024; 250 const size_t kImageCacheSingleAllocationByteLimit = 64 * 1024 * 1024;
251 251
252 #if defined(OS_ANDROID) 252 #if defined(OS_ANDROID)
253 // Unique identifier for each output surface created. 253 // Unique identifier for each output surface created.
254 uint32_t g_next_compositor_frame_sink_id = 1; 254 uint32_t g_next_compositor_frame_sink_id = 1;
255 #endif 255 #endif
256 256
257 // An implementation of mojom::RenderMessageFilter which can be mocked out 257 // An implementation of mojom::RenderMessageFilter which can be mocked out
258 // for tests which may indirectly send messages over this interface. 258 // for tests which may indirectly send messages over this interface.
259 mojom::RenderMessageFilter* g_render_message_filter_for_testing; 259 mojom::RenderMessageFilter* g_render_message_filter_for_testing;
260 mojom::RenderMessageFilterUI* g_render_message_filter_ui_for_testing;
260 261
261 // Keep the global RenderThreadImpl in a TLS slot so it is impossible to access 262 // Keep the global RenderThreadImpl in a TLS slot so it is impossible to access
262 // incorrectly from the wrong thread. 263 // incorrectly from the wrong thread.
263 base::LazyInstance<base::ThreadLocalPointer<RenderThreadImpl>>::DestructorAtExit 264 base::LazyInstance<base::ThreadLocalPointer<RenderThreadImpl>>::DestructorAtExit
264 lazy_tls = LAZY_INSTANCE_INITIALIZER; 265 lazy_tls = LAZY_INSTANCE_INITIALIZER;
265 266
266 // v8::MemoryPressureLevel should correspond to base::MemoryPressureListener. 267 // v8::MemoryPressureLevel should correspond to base::MemoryPressureListener.
267 static_assert(static_cast<v8::MemoryPressureLevel>( 268 static_assert(static_cast<v8::MemoryPressureLevel>(
268 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) == 269 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE) ==
269 v8::MemoryPressureLevel::kNone, "none level not align"); 270 v8::MemoryPressureLevel::kNone, "none level not align");
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 532
532 // static 533 // static
533 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() { 534 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() {
534 if (g_render_message_filter_for_testing) 535 if (g_render_message_filter_for_testing)
535 return g_render_message_filter_for_testing; 536 return g_render_message_filter_for_testing;
536 DCHECK(current()); 537 DCHECK(current());
537 return current()->render_message_filter(); 538 return current()->render_message_filter();
538 } 539 }
539 540
540 // static 541 // static
542 mojom::RenderMessageFilterUI*
543 RenderThreadImpl::current_render_message_filter_ui() {
544 if (g_render_message_filter_ui_for_testing)
545 return g_render_message_filter_ui_for_testing;
546 DCHECK(current());
547 return current()->render_message_filter_ui();
548 }
549
550 // static
541 void RenderThreadImpl::SetRenderMessageFilterForTesting( 551 void RenderThreadImpl::SetRenderMessageFilterForTesting(
542 mojom::RenderMessageFilter* render_message_filter) { 552 mojom::RenderMessageFilter* render_message_filter) {
543 g_render_message_filter_for_testing = render_message_filter; 553 g_render_message_filter_for_testing = render_message_filter;
544 } 554 }
545 555
556 void RenderThreadImpl::SetRenderMessageFilterUIForTesting(
557 mojom::RenderMessageFilterUI* render_message_filter_ui) {
558 g_render_message_filter_ui_for_testing = render_message_filter_ui;
559 }
560
546 // In single-process mode used for debugging, we don't pass a renderer client 561 // In single-process mode used for debugging, we don't pass a renderer client
547 // ID via command line because RenderThreadImpl lives in the same process as 562 // ID via command line because RenderThreadImpl lives in the same process as
548 // the browser 563 // the browser
549 RenderThreadImpl::RenderThreadImpl( 564 RenderThreadImpl::RenderThreadImpl(
550 const InProcessChildThreadParams& params, 565 const InProcessChildThreadParams& params,
551 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, 566 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler,
552 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) 567 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue)
553 : ChildThreadImpl(Options::Builder() 568 : ChildThreadImpl(Options::Builder()
554 .InBrowserProcess(params) 569 .InBrowserProcess(params)
555 .AutoStartServiceManagerConnection(false) 570 .AutoStartServiceManagerConnection(false)
(...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2048 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); 2063 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_);
2049 return render_frame_message_filter_.get(); 2064 return render_frame_message_filter_.get();
2050 } 2065 }
2051 2066
2052 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() { 2067 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() {
2053 if (!render_message_filter_) 2068 if (!render_message_filter_)
2054 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_); 2069 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_);
2055 return render_message_filter_.get(); 2070 return render_message_filter_.get();
2056 } 2071 }
2057 2072
2073 mojom::RenderMessageFilterUI* RenderThreadImpl::render_message_filter_ui() {
2074 if (!render_message_filter_ui_) {
2075 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_ui_);
2076 }
2077
2078 DCHECK(render_message_filter_ui_);
2079 return render_message_filter_ui_.get();
2080 }
2081
2058 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { 2082 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() {
2059 if (!gpu_channel_) 2083 if (!gpu_channel_)
2060 return nullptr; 2084 return nullptr;
2061 if (gpu_channel_->IsLost()) 2085 if (gpu_channel_->IsLost())
2062 return nullptr; 2086 return nullptr;
2063 return gpu_channel_.get(); 2087 return gpu_channel_.get();
2064 } 2088 }
2065 2089
2066 void RenderThreadImpl::OnFieldTrialGroupFinalized( 2090 void RenderThreadImpl::OnFieldTrialGroupFinalized(
2067 const std::string& trial_name, 2091 const std::string& trial_name,
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
2449 } 2473 }
2450 } 2474 }
2451 2475
2452 void RenderThreadImpl::OnRendererInterfaceRequest( 2476 void RenderThreadImpl::OnRendererInterfaceRequest(
2453 mojom::RendererAssociatedRequest request) { 2477 mojom::RendererAssociatedRequest request) {
2454 DCHECK(!renderer_binding_.is_bound()); 2478 DCHECK(!renderer_binding_.is_bound());
2455 renderer_binding_.Bind(std::move(request)); 2479 renderer_binding_.Bind(std::move(request));
2456 } 2480 }
2457 2481
2458 } // namespace content 2482 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698