Index: content/common/mojo/mojo_shell_connection_impl.cc |
diff --git a/content/common/mojo/mojo_shell_connection_impl.cc b/content/common/mojo/mojo_shell_connection_impl.cc |
index 1295ab60cc5d0889f9d4d35b0bdee2a10795d92d..d6d6de7ca2e9f991ce0f50820f971dbac14c5de0 100644 |
--- a/content/common/mojo/mojo_shell_connection_impl.cc |
+++ b/content/common/mojo/mojo_shell_connection_impl.cc |
@@ -86,10 +86,23 @@ class MojoShellConnectionImpl::IOThreadContext |
// Safe to call any time before Start() is called. |
void AddConnectionFilter(std::unique_ptr<ConnectionFilter> filter) { |
- DCHECK(!started_); |
+ //DCHECK(!started_); |
Ken Rockot(use gerrit already)
2016/07/29 17:09:46
Remove
|
connection_filters_.emplace_back(std::move(filter)); |
} |
+ std::unique_ptr<ConnectionFilter> RemoveConnectionFilter( |
+ ConnectionFilter* filter) { |
+ for (auto it = connection_filters_.begin(); it != connection_filters_.end(); |
+ ++it) { |
+ if (it->get() == filter) { |
+ std::unique_ptr<ConnectionFilter> taken = std::move(*it); |
+ connection_filters_.erase(it); |
+ return taken; |
+ } |
+ } |
+ return nullptr; |
+ } |
+ |
// Safe to call any time before Start() is called. |
void SetDefaultBinderForBrowserConnection( |
const shell::InterfaceRegistry::Binder& binder) { |
@@ -388,10 +401,14 @@ void MojoShellConnectionImpl::SetupInterfaceRequestProxies( |
base::Bind(&MojoShellConnectionImpl::GetInterface, |
weak_factory_.GetWeakPtr(), registry)); |
+ if (!provider) |
Ken Rockot(use gerrit already)
2016/07/29 17:09:46
Why would this be null? Tests?
Ben Goodger (Google)
2016/07/29 19:35:02
In the case I've just added. We use the IP from th
|
+ return; |
+ |
// Forward all remote interface requests on |provider| to our IO-thread |
// context. This will ensure they're forwarded to the provider on the |
// incoming browser connection. |
- provider->Forward(base::Bind(&IOThreadContext::GetRemoteInterface, context_)); |
+ provider->Forward(base::Bind(&IOThreadContext::GetRemoteInterface, |
+ context_)); |
} |
void MojoShellConnectionImpl::AddConnectionFilter( |
@@ -399,6 +416,11 @@ void MojoShellConnectionImpl::AddConnectionFilter( |
context_->AddConnectionFilter(std::move(filter)); |
} |
+std::unique_ptr<ConnectionFilter> |
+MojoShellConnectionImpl::RemoveConnectionFilter(ConnectionFilter* filter) { |
+ return context_->RemoveConnectionFilter(filter); |
+} |
+ |
void MojoShellConnectionImpl::AddEmbeddedService( |
const std::string& name, |
const MojoApplicationInfo& info) { |