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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_thread_impl.cc
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index b3ac9d9513a41317525fcd903218b69f21a6aa4d..e22f73c52522b1941a516ccc9434494e6819299a 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -257,6 +257,7 @@ uint32_t g_next_compositor_frame_sink_id = 1;
// An implementation of mojom::RenderMessageFilter which can be mocked out
// for tests which may indirectly send messages over this interface.
mojom::RenderMessageFilter* g_render_message_filter_for_testing;
+mojom::RenderMessageFilterUI* g_render_message_filter_ui_for_testing;
// Keep the global RenderThreadImpl in a TLS slot so it is impossible to access
// incorrectly from the wrong thread.
@@ -538,11 +539,25 @@ mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() {
}
// static
+mojom::RenderMessageFilterUI*
+RenderThreadImpl::current_render_message_filter_ui() {
+ if (g_render_message_filter_ui_for_testing)
+ return g_render_message_filter_ui_for_testing;
+ DCHECK(current());
+ return current()->render_message_filter_ui();
+}
+
+// static
void RenderThreadImpl::SetRenderMessageFilterForTesting(
mojom::RenderMessageFilter* render_message_filter) {
g_render_message_filter_for_testing = render_message_filter;
}
+void RenderThreadImpl::SetRenderMessageFilterUIForTesting(
+ mojom::RenderMessageFilterUI* render_message_filter_ui) {
+ g_render_message_filter_ui_for_testing = render_message_filter_ui;
+}
+
// In single-process mode used for debugging, we don't pass a renderer client
// ID via command line because RenderThreadImpl lives in the same process as
// the browser
@@ -2055,6 +2070,15 @@ mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() {
return render_message_filter_.get();
}
+mojom::RenderMessageFilterUI* RenderThreadImpl::render_message_filter_ui() {
+ if (!render_message_filter_ui_) {
+ GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_ui_);
+ }
+
+ DCHECK(render_message_filter_ui_);
+ return render_message_filter_ui_.get();
+}
+
gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() {
if (!gpu_channel_)
return nullptr;

Powered by Google App Engine
This is Rietveld 408576698