Change InterfaceFactory<I>::Create() to take a ConnectionContext instead of an ApplicationConnection.
This is part of a long road to nuke ApplicationConnection and
InterfaceFactory (!) from orbit.
R=vardhan@google.com
Review URL: https://codereview.chromium.org/1975993002 .
diff --git a/apps/moterm/moterm_view.cc b/apps/moterm/moterm_view.cc
index bf6fc46..413d486 100644
--- a/apps/moterm/moterm_view.cc
+++ b/apps/moterm/moterm_view.cc
@@ -53,7 +53,11 @@
// TODO(vtl): |service_provider_impl_|'s ctor doesn't like an invalid request,
// so we have to conditionally, explicitly bind.
if (service_provider_request.is_pending()) {
- service_provider_impl_.Bind(service_provider_request.Pass());
+ // TODO(vtl): The connection context should probably be plumbed here, which
+ // means that mojo::ui::ViewProviderApp::CreateView() should probably have a
+ // connection context argument.
+ service_provider_impl_.Bind(mojo::ConnectionContext(),
+ service_provider_request.Pass());
service_provider_impl_.AddService<mojo::terminal::Terminal>(this);
}
@@ -130,7 +134,7 @@
}
void MotermView::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::terminal::Terminal> request) {
terminal_bindings_.AddBinding(this, request.Pass());
}
diff --git a/apps/moterm/moterm_view.h b/apps/moterm/moterm_view.h
index 7f8b6a8..692670b 100644
--- a/apps/moterm/moterm_view.h
+++ b/apps/moterm/moterm_view.h
@@ -62,7 +62,7 @@
// |mojo::InterfaceFactory<mojo::terminal::Terminal>|:
void Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::terminal::Terminal> request) override;
// |mojo::terminal::Terminal| implementation:
diff --git a/examples/apptest/example_service_application.cc b/examples/apptest/example_service_application.cc
index 9efceba..0487194 100644
--- a/examples/apptest/example_service_application.cc
+++ b/examples/apptest/example_service_application.cc
@@ -23,7 +23,7 @@
}
void ExampleServiceApplication::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<ExampleService> request) {
// Not leaked: ExampleServiceImpl is strongly bound to the pipe.
new ExampleServiceImpl(request.Pass());
diff --git a/examples/apptest/example_service_application.h b/examples/apptest/example_service_application.h
index b995edc..e0a8cee 100644
--- a/examples/apptest/example_service_application.h
+++ b/examples/apptest/example_service_application.h
@@ -26,7 +26,7 @@
ApplicationConnection* connection) override;
// InterfaceFactory<ExampleService> implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<ExampleService> request) override;
MOJO_DISALLOW_COPY_AND_ASSIGN(ExampleServiceApplication);
diff --git a/examples/bank_app/bank.cc b/examples/bank_app/bank.cc
index b2ffbb3..7229c6f 100644
--- a/examples/bank_app/bank.cc
+++ b/examples/bank_app/bank.cc
@@ -82,7 +82,7 @@
return true;
}
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Bank> request) override {
bindings_.AddBinding(&bank_impl_, request.Pass());
}
diff --git a/examples/content_handler_demo/content_handler_demo.cc b/examples/content_handler_demo/content_handler_demo.cc
index 21b564a..24fbd52 100644
--- a/examples/content_handler_demo/content_handler_demo.cc
+++ b/examples/content_handler_demo/content_handler_demo.cc
@@ -105,7 +105,7 @@
return true;
}
- void Create(ApplicationConnection* app,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<ContentHandler> request) override {
new ContentHandlerImpl(request.Pass());
}
diff --git a/examples/echo/echo_server.cc b/examples/echo/echo_server.cc
index 43a975e..7cd54d5 100644
--- a/examples/echo/echo_server.cc
+++ b/examples/echo/echo_server.cc
@@ -64,7 +64,7 @@
}
// From InterfaceFactory<Echo>
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Echo> request) override {
// This object will be deleted automatically because of the use of
// StrongBinding<> for the declaration of |strong_binding_|.
@@ -87,7 +87,7 @@
}
// From InterfaceFactory<Echo>
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Echo> request) override {
// All channels will connect to this singleton object, so just
// add the binding to our collection.
@@ -119,7 +119,7 @@
}
// From InterfaceFactory<Echo>
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Echo> request) override {
binding_.Bind(request.Pass());
}
diff --git a/examples/echo_terminal/main.cc b/examples/echo_terminal/main.cc
index f4a0ec1..348d96c 100644
--- a/examples/echo_terminal/main.cc
+++ b/examples/echo_terminal/main.cc
@@ -114,7 +114,7 @@
// |InterfaceFactory<mojo::terminal::TerminalClient>| implementation:
void Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::terminal::TerminalClient> request) override {
terminal_clients_.AddBinding(this, request.Pass());
}
diff --git a/examples/hello_mojo/hello_mojo_server.cc b/examples/hello_mojo/hello_mojo_server.cc
index 08efddd..6d0060a 100644
--- a/examples/hello_mojo/hello_mojo_server.cc
+++ b/examples/hello_mojo/hello_mojo_server.cc
@@ -52,7 +52,7 @@
}
// |mojo::InterfaceFactory<HelloMojo>| implementation:
- void Create(mojo::ApplicationConnection* application_connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<HelloMojo> hello_mojo_request) override {
new HelloMojoImpl(std::move(hello_mojo_request)); // Owns itself.
}
diff --git a/examples/indirect_service/indirect_integer_service.cc b/examples/indirect_service/indirect_integer_service.cc
index e1665a9..137eb10 100644
--- a/examples/indirect_service/indirect_integer_service.cc
+++ b/examples/indirect_service/indirect_integer_service.cc
@@ -61,7 +61,7 @@
private:
// InterfaceFactory<IndirectIntegerService>
- void Create(ApplicationConnection* app,
+ void Create(const mojo::ConnectionContext& connection_context,
InterfaceRequest<IndirectIntegerService> request) override {
new IndirectIntegerServiceImpl(request.Pass());
}
diff --git a/examples/indirect_service/integer_service.cc b/examples/indirect_service/integer_service.cc
index 42f718f..4927267 100644
--- a/examples/indirect_service/integer_service.cc
+++ b/examples/indirect_service/integer_service.cc
@@ -40,7 +40,7 @@
private:
// InterfaceFactory<IntegerService>
- void Create(ApplicationConnection* app,
+ void Create(const mojo::ConnectionContext& connection_context,
InterfaceRequest<IntegerService> request) override {
new IntegerServiceImpl(request.Pass());
}
diff --git a/examples/native_run_app/native_run_app.cc b/examples/native_run_app/native_run_app.cc
index 30645be..7a61636 100644
--- a/examples/native_run_app/native_run_app.cc
+++ b/examples/native_run_app/native_run_app.cc
@@ -243,7 +243,7 @@
}
// |InterfaceFactory<TerminalClient>| implementation:
- void Create(mojo::ApplicationConnection* /*connection*/,
+ void Create(const mojo::ConnectionContext& /*connection_context*/,
mojo::InterfaceRequest<TerminalClient> request) override {
new TerminalClientImpl(request.Pass(), native_support_process_.get());
}
diff --git a/mojo/application/content_handler_factory.cc b/mojo/application/content_handler_factory.cc
index a8c3b92..34c0ee4 100644
--- a/mojo/application/content_handler_factory.cc
+++ b/mojo/application/content_handler_factory.cc
@@ -129,7 +129,7 @@
loop.Run();
}
-void ContentHandlerFactory::Create(ApplicationConnection* connection,
+void ContentHandlerFactory::Create(const ConnectionContext& connection_context,
InterfaceRequest<ContentHandler> request) {
new ContentHandlerImpl(delegate_, request.Pass());
}
diff --git a/mojo/application/content_handler_factory.h b/mojo/application/content_handler_factory.h
index be47207..0d1d3e9 100644
--- a/mojo/application/content_handler_factory.h
+++ b/mojo/application/content_handler_factory.h
@@ -51,7 +51,7 @@
private:
// From InterfaceFactory:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<ContentHandler> request) override;
Delegate* delegate_;
diff --git a/mojo/public/cpp/application/interface_factory.h b/mojo/public/cpp/application/interface_factory.h
index da07008..f459f6f 100644
--- a/mojo/public/cpp/application/interface_factory.h
+++ b/mojo/public/cpp/application/interface_factory.h
@@ -9,9 +9,7 @@
namespace mojo {
-class ApplicationConnection;
-template <typename Interface>
-class InterfaceRequest;
+struct ConnectionContext;
// Implement this class to provide implementations of a given interface and
// bind them to incoming requests. The implementation of this class is
@@ -21,7 +19,7 @@
class InterfaceFactory {
public:
virtual ~InterfaceFactory() {}
- virtual void Create(ApplicationConnection* connection,
+ virtual void Create(const ConnectionContext& connection_context,
InterfaceRequest<Interface> request) = 0;
};
diff --git a/mojo/public/cpp/application/lib/interface_factory_connector.h b/mojo/public/cpp/application/lib/interface_factory_connector.h
index 30bc8c5..0879636 100644
--- a/mojo/public/cpp/application/lib/interface_factory_connector.h
+++ b/mojo/public/cpp/application/lib/interface_factory_connector.h
@@ -19,10 +19,10 @@
: factory_(factory) {}
~InterfaceFactoryConnector() override {}
- void ConnectToService(ApplicationConnection* application_connection,
+ void ConnectToService(const ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle client_handle) override {
- factory_->Create(application_connection,
+ factory_->Create(connection_context,
InterfaceRequest<Interface>(client_handle.Pass()));
}
diff --git a/mojo/public/cpp/application/lib/service_connector_registry.cc b/mojo/public/cpp/application/lib/service_connector_registry.cc
index a921d34..6a974de 100644
--- a/mojo/public/cpp/application/lib/service_connector_registry.cc
+++ b/mojo/public/cpp/application/lib/service_connector_registry.cc
@@ -6,6 +6,8 @@
#include <utility>
+#include "mojo/public/cpp/application/application_connection.h"
+#include "mojo/public/cpp/application/connection_context.h"
#include "mojo/public/cpp/application/service_connector.h"
namespace mojo {
@@ -31,12 +33,12 @@
}
bool ServiceConnectorRegistry::ConnectToService(
- ApplicationConnection* application_connection,
+ const ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle* client_handle) {
auto iter = name_to_service_connector_.find(interface_name);
if (iter != name_to_service_connector_.end()) {
- iter->second->ConnectToService(application_connection, interface_name,
+ iter->second->ConnectToService(connection_context, interface_name,
client_handle->Pass());
return true;
}
diff --git a/mojo/public/cpp/application/lib/service_connector_registry.h b/mojo/public/cpp/application/lib/service_connector_registry.h
index b66d379..235d34d 100644
--- a/mojo/public/cpp/application/lib/service_connector_registry.h
+++ b/mojo/public/cpp/application/lib/service_connector_registry.h
@@ -13,7 +13,7 @@
namespace mojo {
-class ApplicationConnection;
+struct ConnectionContext;
class ServiceConnector;
namespace internal {
@@ -40,7 +40,7 @@
// |interface_name|. In that case, the |client_handle| is passed along
// to the |ServiceConnector|. Otherwise, this function returns false and
// |client_handle| is untouched.
- bool ConnectToService(ApplicationConnection* application_connection,
+ bool ConnectToService(const ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle* client_handle);
diff --git a/mojo/public/cpp/application/lib/service_provider_impl.cc b/mojo/public/cpp/application/lib/service_provider_impl.cc
index e7978b6..70821e5 100644
--- a/mojo/public/cpp/application/lib/service_provider_impl.cc
+++ b/mojo/public/cpp/application/lib/service_provider_impl.cc
@@ -14,29 +14,33 @@
}
ServiceProviderImpl::ServiceProviderImpl(
+ const ConnectionContext& connection_context,
InterfaceRequest<ServiceProvider> service_provider_request)
- : binding_(this, service_provider_request.Pass()),
+ : connection_context_(connection_context),
+ binding_(this, service_provider_request.Pass()),
fallback_service_provider_(nullptr) {}
ServiceProviderImpl::~ServiceProviderImpl() {}
void ServiceProviderImpl::Bind(
+ const ConnectionContext& connection_context,
InterfaceRequest<ServiceProvider> service_provider_request) {
+ connection_context_ = connection_context;
binding_.Bind(service_provider_request.Pass());
}
void ServiceProviderImpl::Close() {
- if (binding_.is_bound())
+ if (binding_.is_bound()) {
binding_.Close();
+ connection_context_ = ConnectionContext();
+ }
}
void ServiceProviderImpl::ConnectToService(
const String& service_name,
ScopedMessagePipeHandle client_handle) {
- // TODO(beng): perhaps take app connection thru ctor so that we can pass
- // ApplicationConnection through?
bool service_found = service_connector_registry_.ConnectToService(
- nullptr, service_name, &client_handle);
+ connection_context_, service_name, &client_handle);
if (!service_found && fallback_service_provider_) {
fallback_service_provider_->ConnectToService(service_name,
client_handle.Pass());
diff --git a/mojo/public/cpp/application/lib/service_registry.cc b/mojo/public/cpp/application/lib/service_registry.cc
index 3c34628..d48f161 100644
--- a/mojo/public/cpp/application/lib/service_registry.cc
+++ b/mojo/public/cpp/application/lib/service_registry.cc
@@ -48,8 +48,8 @@
void ServiceRegistry::ConnectToService(const String& service_name,
ScopedMessagePipeHandle client_handle) {
- service_connector_registry_.ConnectToService(this, service_name,
- &client_handle);
+ service_connector_registry_.ConnectToService(connection_context_,
+ service_name, &client_handle);
}
} // namespace internal
diff --git a/mojo/public/cpp/application/service_connector.h b/mojo/public/cpp/application/service_connector.h
index 6dd6c86..378be9e 100644
--- a/mojo/public/cpp/application/service_connector.h
+++ b/mojo/public/cpp/application/service_connector.h
@@ -11,7 +11,7 @@
namespace mojo {
-class ApplicationConnection;
+struct ConnectionContext;
class ServiceConnector {
public:
@@ -20,7 +20,7 @@
// Asks the ServiceConnector to connect to the specified service. If the
// ServiceConnector connects to the service it should take ownership of
// the handle in |handle|.
- virtual void ConnectToService(ApplicationConnection* application_connection,
+ virtual void ConnectToService(const ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle handle) = 0;
};
diff --git a/mojo/public/cpp/application/service_provider_impl.h b/mojo/public/cpp/application/service_provider_impl.h
index b885924..dd24472 100644
--- a/mojo/public/cpp/application/service_provider_impl.h
+++ b/mojo/public/cpp/application/service_provider_impl.h
@@ -37,18 +37,16 @@
// Constructs this service provider implementation, binding it to the given
// interface request.
- // TODO(vtl): This should take a |ConnectionContext|, to provide
- // |InterfaceRequestHandler<I>|s.
explicit ServiceProviderImpl(
+ const ConnectionContext& connection_context,
InterfaceRequest<ServiceProvider> service_provider_request);
~ServiceProviderImpl() override;
// Binds this service provider implementation to the given interface request.
// This may only be called if this object is unbound.
- // TODO(vtl): This should take a |ConnectionContext|, to provide
- // |InterfaceRequestHandler<I>|s.
- void Bind(InterfaceRequest<ServiceProvider> service_provider_request);
+ void Bind(const ConnectionContext& connection_context,
+ InterfaceRequest<ServiceProvider> service_provider_request);
// Disconnect this service provider implementation and put it in a state where
// it can be rebound to a new request (i.e., restores this object to an
@@ -110,15 +108,11 @@
: interface_request_handler_(std::move(interface_request_handler)) {}
~ServiceConnectorImpl() override {}
- void ConnectToService(ApplicationConnection* application_connection,
+ void ConnectToService(const mojo::ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle client_handle) override {
- // TODO(vtl): This should be given a |const ConnectionContext&|, instead
- // of an |ApplicationConnection*| -- which may be null!
interface_request_handler_(
- application_connection
- ? application_connection->GetConnectionContext()
- : ConnectionContext(),
+ connection_context,
InterfaceRequest<Interface>(client_handle.Pass()));
}
@@ -132,6 +126,7 @@
void ConnectToService(const String& service_name,
ScopedMessagePipeHandle client_handle) override;
+ ConnectionContext connection_context_;
Binding<ServiceProvider> binding_;
internal::ServiceConnectorRegistry service_connector_registry_;
diff --git a/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc b/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
index e0a4f12..a66f182 100644
--- a/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
+++ b/mojo/public/cpp/application/tests/service_provider_impl_unittest.cc
@@ -54,23 +54,36 @@
};
TEST_F(ServiceProviderImplTest, Basic) {
+ const char kRemoteUrl[] = "https://example.com/remote.mojo";
+ const char kConnectionUrl[] = "https://example.com/me.mojo";
+
const char kPing1[] = "Ping1";
const char kPing2[] = "Ping2";
const char kPing3[] = "Ping3";
ServiceProviderPtr sp;
- ServiceProviderImpl impl(GetProxy(&sp));
+ ServiceProviderImpl impl(ConnectionContext(ConnectionContext::Type::INCOMING,
+ kRemoteUrl, kConnectionUrl),
+ GetProxy(&sp));
impl.AddServiceNew<test::PingService>(
- [](const ConnectionContext& connection_context,
- InterfaceRequest<test::PingService> ping_service_request) {
+ [&kRemoteUrl, &kConnectionUrl](
+ const ConnectionContext& connection_context,
+ InterfaceRequest<test::PingService> ping_service_request) {
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, connection_context.type);
+ EXPECT_EQ(kRemoteUrl, connection_context.remote_url);
+ EXPECT_EQ(kConnectionUrl, connection_context.connection_url);
new PingServiceImpl(std::move(ping_service_request));
},
kPing1);
impl.AddServiceNew<test::PingService>(
- [](const ConnectionContext& connection_context,
- InterfaceRequest<test::PingService> ping_service_request) {
+ [&kRemoteUrl, &kConnectionUrl](
+ const ConnectionContext& connection_context,
+ InterfaceRequest<test::PingService> ping_service_request) {
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, connection_context.type);
+ EXPECT_EQ(kRemoteUrl, connection_context.remote_url);
+ EXPECT_EQ(kConnectionUrl, connection_context.connection_url);
new PingServiceImpl(std::move(ping_service_request));
},
kPing2);
@@ -108,14 +121,24 @@
}
TEST_F(ServiceProviderImplTest, CloseAndRebind) {
+ const char kRemoteUrl1[] = "https://example.com/remote1.mojo";
+ const char kRemoteUrl2[] = "https://example.com/remote2.mojo";
+ const char kConnectionUrl[] = "https://example.com/me.mojo";
const char kPing[] = "Ping";
ServiceProviderPtr sp1;
- ServiceProviderImpl impl(GetProxy(&sp1));
+ ServiceProviderImpl impl(ConnectionContext(ConnectionContext::Type::INCOMING,
+ kRemoteUrl1, kConnectionUrl),
+ GetProxy(&sp1));
impl.AddServiceNew<test::PingService>(
- [](const ConnectionContext& connection_context,
- InterfaceRequest<test::PingService> ping_service_request) {
+ [&kRemoteUrl1, &kRemoteUrl2, &kConnectionUrl](
+ const ConnectionContext& connection_context,
+ InterfaceRequest<test::PingService> ping_service_request) {
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, connection_context.type);
+ EXPECT_TRUE(connection_context.remote_url == kRemoteUrl1 ||
+ connection_context.remote_url == kRemoteUrl2);
+ EXPECT_EQ(kConnectionUrl, connection_context.connection_url);
new PingServiceImpl(std::move(ping_service_request));
},
kPing);
@@ -134,7 +157,9 @@
loop().RunUntilIdle();
ServiceProviderPtr sp2;
- impl.Bind(GetProxy(&sp2));
+ impl.Bind(ConnectionContext(ConnectionContext::Type::INCOMING, kRemoteUrl2,
+ kConnectionUrl),
+ GetProxy(&sp2));
{
test::PingServicePtr ping;
@@ -153,16 +178,24 @@
}
TEST_F(ServiceProviderImplTest, Bind) {
+ const char kRemoteUrl[] = "https://example.com/remote.mojo";
+ const char kConnectionUrl[] = "https://example.com/me.mojo";
const char kPing[] = "Ping";
ServiceProviderPtr sp;
ServiceProviderImpl impl;
- impl.Bind(GetProxy(&sp));
+ impl.Bind(ConnectionContext(ConnectionContext::Type::INCOMING, kRemoteUrl,
+ kConnectionUrl),
+ GetProxy(&sp));
impl.AddServiceNew<test::PingService>(
- [](const ConnectionContext& connection_context,
- InterfaceRequest<test::PingService> request) {
+ [&kRemoteUrl, &kConnectionUrl](
+ const ConnectionContext& connection_context,
+ InterfaceRequest<test::PingService> request) {
+ EXPECT_EQ(ConnectionContext::Type::INCOMING, connection_context.type);
+ EXPECT_EQ(kRemoteUrl, connection_context.remote_url);
+ EXPECT_EQ(kConnectionUrl, connection_context.connection_url);
new PingServiceImpl(std::move(request));
},
kPing);
@@ -204,7 +237,10 @@
const char kWhatever[] = "Whatever";
ServiceProviderPtr sp;
- ServiceProviderImpl impl(GetProxy(&sp));
+ ServiceProviderImpl impl(ConnectionContext(ConnectionContext::Type::INCOMING,
+ "https://example.com/remote.mojo",
+ "https://example.com/me.mojo"),
+ GetProxy(&sp));
{
test::PingServicePtr ping;
diff --git a/mojo/public/cpp/application/tests/service_registry_unittest.cc b/mojo/public/cpp/application/tests/service_registry_unittest.cc
index e0c5a9d..304259e 100644
--- a/mojo/public/cpp/application/tests/service_registry_unittest.cc
+++ b/mojo/public/cpp/application/tests/service_registry_unittest.cc
@@ -15,7 +15,7 @@
public:
explicit TestConnector(int* delete_count) : delete_count_(delete_count) {}
~TestConnector() override { (*delete_count_)++; }
- void ConnectToService(ApplicationConnection* application_connection,
+ void ConnectToService(const ConnectionContext& connection_context,
const std::string& interface_name,
ScopedMessagePipeHandle client_handle) override {}
diff --git a/mojo/public/cpp/bindings/tests/versioning_test_service.cc b/mojo/public/cpp/bindings/tests/versioning_test_service.cc
index 419fa3a..893a47d 100644
--- a/mojo/public/cpp/bindings/tests/versioning_test_service.cc
+++ b/mojo/public/cpp/bindings/tests/versioning_test_service.cc
@@ -106,7 +106,7 @@
}
// InterfaceFactory<HumanResourceDatabase> implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<HumanResourceDatabase> request) override {
// It will be deleted automatically when the underlying pipe encounters a
// connection error.
diff --git a/mojo/ui/content_viewer_app.cc b/mojo/ui/content_viewer_app.cc
index 6993082..42d3192 100644
--- a/mojo/ui/content_viewer_app.cc
+++ b/mojo/ui/content_viewer_app.cc
@@ -54,10 +54,10 @@
}
void ContentViewerApp::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ContentHandler> request) {
bindings_.AddBinding(
- new DelegatingContentHandler(this, connection->GetConnectionURL()),
+ new DelegatingContentHandler(this, connection_context.connection_url),
request.Pass());
}
diff --git a/mojo/ui/content_viewer_app.h b/mojo/ui/content_viewer_app.h
index a45ebf9..990c900 100644
--- a/mojo/ui/content_viewer_app.h
+++ b/mojo/ui/content_viewer_app.h
@@ -19,18 +19,17 @@
// TODO(jeffbrown): Support creating the view provider application in a
// separate thread if desired (often not the case). This is one reason
// we are not using the ContentHandlerFactory here.
-class ContentViewerApp : public mojo::ApplicationDelegate,
- public mojo::InterfaceFactory<mojo::ContentHandler> {
+class ContentViewerApp : public ApplicationDelegate,
+ public InterfaceFactory<ContentHandler> {
public:
ContentViewerApp();
~ContentViewerApp() override;
- mojo::ApplicationImpl* app_impl() { return app_impl_; }
+ ApplicationImpl* app_impl() { return app_impl_; }
// |ApplicationDelegate|:
- void Initialize(mojo::ApplicationImpl* app) override;
- bool ConfigureIncomingConnection(
- mojo::ApplicationConnection* connection) override;
+ void Initialize(ApplicationImpl* app) override;
+ bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// Called to create the view provider application to view the content.
//
@@ -46,22 +45,21 @@
// Returns the view provider application delegate to view the content,
// or nullptr if the content could not be loaded.
virtual ViewProviderApp* LoadContent(const std::string& content_handler_url,
- mojo::URLResponsePtr response) = 0;
+ URLResponsePtr response) = 0;
private:
class DelegatingContentHandler;
// |InterfaceFactory<ContentHandler>|:
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::ContentHandler> request) override;
+ void Create(const ConnectionContext& connection_context,
+ InterfaceRequest<ContentHandler> request) override;
- void StartViewer(
- const std::string& content_handler_url,
- mojo::InterfaceRequest<mojo::Application> application_request,
- mojo::URLResponsePtr response);
+ void StartViewer(const std::string& content_handler_url,
+ InterfaceRequest<Application> application_request,
+ URLResponsePtr response);
- mojo::ApplicationImpl* app_impl_ = nullptr;
- mojo::StrongBindingSet<mojo::ContentHandler> bindings_;
+ ApplicationImpl* app_impl_ = nullptr;
+ StrongBindingSet<ContentHandler> bindings_;
MOJO_DISALLOW_COPY_AND_ASSIGN(ContentViewerApp);
};
diff --git a/mojo/ui/view_provider_app.cc b/mojo/ui/view_provider_app.cc
index 432f00e..9df21e3 100644
--- a/mojo/ui/view_provider_app.cc
+++ b/mojo/ui/view_provider_app.cc
@@ -57,10 +57,10 @@
}
void ViewProviderApp::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ui::ViewProvider> request) {
bindings_.AddBinding(
- new DelegatingViewProvider(this, connection->GetConnectionURL()),
+ new DelegatingViewProvider(this, connection_context.connection_url),
request.Pass());
}
diff --git a/mojo/ui/view_provider_app.h b/mojo/ui/view_provider_app.h
index a275540..147fb1b 100644
--- a/mojo/ui/view_provider_app.h
+++ b/mojo/ui/view_provider_app.h
@@ -22,18 +22,17 @@
//
// It is not necessary to use this class to implement all ViewProviders.
// This class is merely intended to make the simple apps easier to write.
-class ViewProviderApp : public mojo::ApplicationDelegate,
- public mojo::InterfaceFactory<mojo::ui::ViewProvider> {
+class ViewProviderApp : public ApplicationDelegate,
+ public InterfaceFactory<ui::ViewProvider> {
public:
ViewProviderApp();
~ViewProviderApp() override;
- mojo::ApplicationImpl* app_impl() { return app_impl_; }
+ ApplicationImpl* app_impl() { return app_impl_; }
// |ApplicationDelegate|:
- void Initialize(mojo::ApplicationImpl* app) override;
- bool ConfigureIncomingConnection(
- mojo::ApplicationConnection* connection) override;
+ void Initialize(ApplicationImpl* app) override;
+ bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// Called by the ViewProvider to create a view.
// This method may be called multiple times in the case where the
@@ -51,26 +50,25 @@
// the view from the caller.
virtual void CreateView(
const std::string& view_provider_url,
- mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
- mojo::InterfaceRequest<mojo::ServiceProvider> services,
- mojo::InterfaceHandle<mojo::ServiceProvider> exposed_services) = 0;
+ InterfaceRequest<ViewOwner> view_owner_request,
+ InterfaceRequest<ServiceProvider> services,
+ InterfaceHandle<ServiceProvider> exposed_services) = 0;
private:
class DelegatingViewProvider;
- // |InterfaceFactory<mojo::ui::ViewProvider>|:
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::ui::ViewProvider> request) override;
+ // |InterfaceFactory<ViewProvider>|:
+ void Create(const ConnectionContext& connection_context,
+ InterfaceRequest<ViewProvider> request) override;
- void CreateView(
- DelegatingViewProvider* provider,
- const std::string& view_provider_url,
- mojo::InterfaceRequest<mojo::ui::ViewOwner> view_owner_request,
- mojo::InterfaceRequest<mojo::ServiceProvider> services,
- mojo::InterfaceHandle<mojo::ServiceProvider> exposed_services);
+ void CreateView(DelegatingViewProvider* provider,
+ const std::string& view_provider_url,
+ InterfaceRequest<ViewOwner> view_owner_request,
+ InterfaceRequest<ServiceProvider> services,
+ InterfaceHandle<ServiceProvider> exposed_services);
- mojo::ApplicationImpl* app_impl_ = nullptr;
- mojo::StrongBindingSet<mojo::ui::ViewProvider> bindings_;
+ ApplicationImpl* app_impl_ = nullptr;
+ StrongBindingSet<ViewProvider> bindings_;
MOJO_DISALLOW_COPY_AND_ASSIGN(ViewProviderApp);
};
diff --git a/services/asset_bundle/main.cc b/services/asset_bundle/main.cc
index ce98693..9d06e52 100644
--- a/services/asset_bundle/main.cc
+++ b/services/asset_bundle/main.cc
@@ -28,7 +28,7 @@
}
// |InterfaceFactory<AssetUnpacker>| implementation:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<AssetUnpacker> request) override {
// Lazily initialize |sequenced_worker_pool_|. (We can't create it in the
// constructor, since AtExitManager is only created in
diff --git a/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.cc b/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.cc
index 051b36f..9dcf03f 100644
--- a/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.cc
+++ b/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.cc
@@ -29,9 +29,9 @@
}
void AuthenticatingURLLoaderInterceptorApp::Create(
- ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
InterfaceRequest<AuthenticatingURLLoaderInterceptorMetaFactory> request) {
- GURL app_url(connection->GetRemoteApplicationURL());
+ GURL app_url(connection_context.remote_url);
GURL app_origin;
if (app_url.is_valid()) {
app_origin = app_url.GetOrigin();
diff --git a/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.h b/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.h
index ddd98bf..10050fb 100644
--- a/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.h
+++ b/services/authenticating_url_loader_interceptor/authenticating_url_loader_interceptor_app.h
@@ -27,7 +27,7 @@
bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// InterfaceFactory<AuthenticatingURLLoaderInterceptorMetaFactory>
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<AuthenticatingURLLoaderInterceptorMetaFactory>
request) override;
diff --git a/services/authentication/main.cc b/services/authentication/main.cc
index 25c0140..bedd607 100644
--- a/services/authentication/main.cc
+++ b/services/authentication/main.cc
@@ -39,7 +39,7 @@
return true;
}
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<AuthenticationService> request) override {
mojo::files::Error error = mojo::files::Error::INTERNAL;
mojo::files::DirectoryPtr directory;
diff --git a/services/clipboard/main.cc b/services/clipboard/main.cc
index 2a2a658..cdbb564 100644
--- a/services/clipboard/main.cc
+++ b/services/clipboard/main.cc
@@ -23,7 +23,7 @@
}
// mojo::InterfaceFactory<mojo::Clipboard> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::Clipboard> request) override {
// TODO(erg): Write native implementations of the clipboard. For now, we
// just build a clipboard which doesn't interact with the system.
diff --git a/services/device_info/device_info.cc b/services/device_info/device_info.cc
index 54fe54c..59cfe33 100644
--- a/services/device_info/device_info.cc
+++ b/services/device_info/device_info.cc
@@ -19,9 +19,9 @@
// This is a native Mojo application which implements |DeviceInfo| interface for
// Linux.
-class DeviceInfo : public mojo::ApplicationDelegate,
+class DeviceInfo : public ApplicationDelegate,
public mojo::DeviceInfo,
- public mojo::InterfaceFactory<mojo::DeviceInfo> {
+ public InterfaceFactory<mojo::DeviceInfo> {
public:
// We look for the 'DISPLAY' environment variable. If present, then we assume
// it to be a desktop, else we assume it to be a commandline
@@ -38,8 +38,8 @@
}
// |InterfaceFactory<DeviceInfo>| implementation.
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::DeviceInfo> request) override {
+ void Create(const ConnectionContext& connection_context,
+ InterfaceRequest<mojo::DeviceInfo> request) override {
binding_.AddBinding(this, request.Pass());
}
diff --git a/services/files/files_impl.cc b/services/files/files_impl.cc
index 94eb6cd..c6a8243 100644
--- a/services/files/files_impl.cc
+++ b/services/files/files_impl.cc
@@ -19,7 +19,7 @@
#include "base/posix/eintr_wrapper.h"
#include "base/sha1.h"
#include "base/strings/string_number_conversions.h"
-#include "mojo/public/cpp/application/application_connection.h"
+#include "mojo/public/cpp/application/connection_context.h"
#include "services/files/directory_impl.h"
namespace mojo {
@@ -99,9 +99,9 @@
} // namespace
-FilesImpl::FilesImpl(ApplicationConnection* connection,
+FilesImpl::FilesImpl(const ConnectionContext& connection_context,
InterfaceRequest<Files> request)
- : client_url_(connection->GetRemoteApplicationURL()),
+ : client_url_(connection_context.remote_url),
binding_(this, request.Pass()) {}
FilesImpl::~FilesImpl() {}
diff --git a/services/files/files_impl.h b/services/files/files_impl.h
index eafb1fe..5094c68 100644
--- a/services/files/files_impl.h
+++ b/services/files/files_impl.h
@@ -14,13 +14,14 @@
namespace mojo {
-class ApplicationConnection;
+struct ConnectionContext;
namespace files {
class FilesImpl : public Files {
public:
- FilesImpl(ApplicationConnection* connection, InterfaceRequest<Files> request);
+ FilesImpl(const ConnectionContext& connection_context,
+ InterfaceRequest<Files> request);
~FilesImpl() override;
// |Files| implementation:
diff --git a/services/files/main.cc b/services/files/main.cc
index 56101d9..b8a2ce0 100644
--- a/services/files/main.cc
+++ b/services/files/main.cc
@@ -27,9 +27,9 @@
}
// |InterfaceFactory<Files>| implementation:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<Files> request) override {
- new FilesImpl(connection, request.Pass());
+ new FilesImpl(connection_context, request.Pass());
}
DISALLOW_COPY_AND_ASSIGN(FilesApp);
diff --git a/services/gfx/compositor/compositor_app.cc b/services/gfx/compositor/compositor_app.cc
index 5fd8a9a..a85b0f9 100644
--- a/services/gfx/compositor/compositor_app.cc
+++ b/services/gfx/compositor/compositor_app.cc
@@ -41,7 +41,7 @@
}
void CompositorApp::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::gfx::composition::Compositor> request) {
compositor_bindings_.AddBinding(new CompositorImpl(engine_.get()),
request.Pass());
diff --git a/services/gfx/compositor/compositor_app.h b/services/gfx/compositor/compositor_app.h
index 1faaf11..51fab87 100644
--- a/services/gfx/compositor/compositor_app.h
+++ b/services/gfx/compositor/compositor_app.h
@@ -33,7 +33,7 @@
mojo::ApplicationConnection* connection) override;
// |InterfaceFactory<Compositor>|:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::gfx::composition::Compositor>
request) override;
diff --git a/services/http_server/http_server_app.cc b/services/http_server/http_server_app.cc
index fa063fa..a1e6841 100644
--- a/services/http_server/http_server_app.cc
+++ b/services/http_server/http_server_app.cc
@@ -32,7 +32,7 @@
}
// InterfaceFactory<HttpServerFactory>:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<HttpServerFactory> request) override {
if (!http_server_factory_) {
http_server_factory_.reset(new HttpServerFactoryImpl(app_));
diff --git a/services/icu_data/icu_data_impl.cc b/services/icu_data/icu_data_impl.cc
index a3862a6..7192928 100644
--- a/services/icu_data/icu_data_impl.cc
+++ b/services/icu_data/icu_data_impl.cc
@@ -29,7 +29,7 @@
}
// mojo::InterfaceFactory<mojo::ICUData> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection,
mojo::InterfaceRequest<ICUData> request) override {
bindings_.AddBinding(this, request.Pass());
}
diff --git a/services/keyboard/linux/main.cc b/services/keyboard/linux/main.cc
index b74eaa7..397a4f2 100644
--- a/services/keyboard/linux/main.cc
+++ b/services/keyboard/linux/main.cc
@@ -52,9 +52,8 @@
}
// |InterfaceFactory<KeyboardService>| implementation:
- void Create(
- mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<KeyboardServiceFactory> request) override {
+ void Create(const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<KeyboardServiceFactory> request) override {
new KeyboardServiceFactoryImpl(request.Pass());
}
diff --git a/services/log/log_impl.cc b/services/log/log_impl.cc
index b02459f..1bf505e 100644
--- a/services/log/log_impl.cc
+++ b/services/log/log_impl.cc
@@ -8,7 +8,7 @@
#include "base/logging.h"
#include "base/strings/stringprintf.h"
-#include "mojo/public/cpp/application/application_connection.h"
+#include "mojo/public/cpp/application/connection_context.h"
#include "mojo/services/log/interfaces/entry.mojom.h"
namespace mojo {
@@ -47,13 +47,12 @@
LogImpl::~LogImpl() {}
// static
-void LogImpl::Create(ApplicationConnection* connection,
+void LogImpl::Create(const ConnectionContext& connection_context,
InterfaceRequest<Log> request,
PrintLogMessageFunction print_log_message_function) {
- DCHECK(connection);
DCHECK(print_log_message_function);
- const std::string& remote_url = connection->GetRemoteApplicationURL();
+ const std::string& remote_url = connection_context.remote_url;
if (remote_url.empty()) {
LOG(ERROR) << "No remote URL.";
return;
diff --git a/services/log/log_impl.h b/services/log/log_impl.h
index 6a94ef2..7d92ef2 100644
--- a/services/log/log_impl.h
+++ b/services/log/log_impl.h
@@ -16,7 +16,7 @@
namespace mojo {
-class ApplicationConnection;
+struct ConnectionContext;
namespace log {
@@ -34,7 +34,7 @@
// Note that |print_log_message_function| may be called many times, for the
// lifetime of the created object.
- static void Create(ApplicationConnection* connection,
+ static void Create(const ConnectionContext& connection_context,
InterfaceRequest<Log> request,
PrintLogMessageFunction print_log_message_function);
diff --git a/services/log/log_impl_unittest.cc b/services/log/log_impl_unittest.cc
index 8500ce1..de6ff9b 100644
--- a/services/log/log_impl_unittest.cc
+++ b/services/log/log_impl_unittest.cc
@@ -25,42 +25,16 @@
using base::MessageLoop;
using LogImplTest = mojo::test::ApplicationTestBase;
-// We need to supply a ApplicationConnection to LogImpl::Create().
-class TestApplicationConnection : public ApplicationConnection {
- public:
- TestApplicationConnection()
- : connection_context_(ConnectionContext::Type::INCOMING,
- "mojo:log_impl_unittest",
- "mojo:log") {}
-
- const ConnectionContext& GetConnectionContext() const override {
- return connection_context_;
- }
-
- const std::string& GetConnectionURL() override {
- return connection_context_.connection_url;
- }
-
- const std::string& GetRemoteApplicationURL() override {
- return connection_context_.remote_url;
- }
-
- void SetServiceConnectorForName(ServiceConnector* service_connector,
- const std::string& name) override {}
-
- private:
- const ConnectionContext connection_context_;
-};
-
// Tests the Log service implementation by calling its AddEntry and verifying
// the log message that it "prints".
TEST_F(LogImplTest, AddEntryOutput) {
std::vector<std::string> messages;
LogPtr log;
- TestApplicationConnection app_connection;
+ ConnectionContext connection_context(ConnectionContext::Type::INCOMING,
+ "mojo:log_impl_unittest", "mojo:log");
LogImpl::Create(
- &app_connection, GetProxy(&log),
+ connection_context, GetProxy(&log),
[&messages](const std::string& message) { messages.push_back(message); });
Entry entry;
diff --git a/services/log/main.cc b/services/log/main.cc
index 23b8579..f87f0a3 100644
--- a/services/log/main.cc
+++ b/services/log/main.cc
@@ -34,9 +34,9 @@
// |InterfaceFactory<Log>| implementation:
// We maintain a separate |LogImpl| for each incoming connection.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<Log> request) override {
- LogImpl::Create(connection, std::move(request),
+ LogImpl::Create(connection_context, std::move(request),
[](const std::string& message) {
fprintf(stderr, "%s\n", message.c_str());
});
diff --git a/services/media/audio/audio_server_app.cc b/services/media/audio/audio_server_app.cc
index 6a2a279..c59df0f 100644
--- a/services/media/audio/audio_server_app.cc
+++ b/services/media/audio/audio_server_app.cc
@@ -31,7 +31,7 @@
void AudioServerApp::Quit() {
}
-void AudioServerApp::Create(ApplicationConnection* connection,
+void AudioServerApp::Create(const ConnectionContext& connection_context,
InterfaceRequest<AudioServer> request) {
bindings_.AddBinding(&server_impl_, request.Pass());
}
diff --git a/services/media/audio/audio_server_app.h b/services/media/audio/audio_server_app.h
index b67262a..c98cc30 100644
--- a/services/media/audio/audio_server_app.h
+++ b/services/media/audio/audio_server_app.h
@@ -15,10 +15,9 @@
namespace media {
namespace audio {
-class AudioServerApp : public ApplicationDelegate
- , public InterfaceFactory<AudioServer> {
+class AudioServerApp : public ApplicationDelegate,
+ public InterfaceFactory<AudioServer> {
public:
- // Constructor/Destructor
AudioServerApp();
~AudioServerApp() override;
@@ -28,12 +27,12 @@
void Quit() override;
// InterfaceFactory<AudioServer>
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<AudioServer> request) override;
+ void Create(const ConnectionContext& connection_context,
+ InterfaceRequest<AudioServer> request) override;
private:
- AudioServerImpl server_impl_;
- BindingSet<AudioServer> bindings_;
+ AudioServerImpl server_impl_;
+ BindingSet<AudioServer> bindings_;
};
} // namespace audio
diff --git a/services/media/factory_service/factory_service.cc b/services/media/factory_service/factory_service.cc
index 4a17d82..d6be517 100644
--- a/services/media/factory_service/factory_service.cc
+++ b/services/media/factory_service/factory_service.cc
@@ -34,7 +34,7 @@
return true;
}
-void MediaFactoryService::Create(ApplicationConnection* connection,
+void MediaFactoryService::Create(const ConnectionContext& connection_context,
InterfaceRequest<MediaFactory> request) {
bindings_.AddBinding(this, request.Pass());
}
diff --git a/services/media/factory_service/factory_service.h b/services/media/factory_service/factory_service.h
index 309a4ed..f115c5e 100644
--- a/services/media/factory_service/factory_service.h
+++ b/services/media/factory_service/factory_service.h
@@ -80,7 +80,7 @@
bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// InterfaceFactory<MediaFactory> implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<MediaFactory> request) override;
// MediaFactory implementation.
diff --git a/services/nacl/nonsfi/pnacl_compile.cc b/services/nacl/nonsfi/pnacl_compile.cc
index 38d5ef4..6985511 100644
--- a/services/nacl/nonsfi/pnacl_compile.cc
+++ b/services/nacl/nonsfi/pnacl_compile.cc
@@ -54,7 +54,7 @@
}
// From InterfaceFactory
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<PexeCompilerInit> request) override {
new StrongBindingPexeCompilerImpl(request.Pass());
}
diff --git a/services/nacl/nonsfi/pnacl_link.cc b/services/nacl/nonsfi/pnacl_link.cc
index 1e5e493..299a190 100644
--- a/services/nacl/nonsfi/pnacl_link.cc
+++ b/services/nacl/nonsfi/pnacl_link.cc
@@ -51,7 +51,7 @@
}
// From InterfaceFactory
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<PexeLinkerInit> request) override {
new StrongBindingPexeLinkerImpl(request.Pass());
}
diff --git a/services/native_support/main.cc b/services/native_support/main.cc
index 33aff04..11e8a7d 100644
--- a/services/native_support/main.cc
+++ b/services/native_support/main.cc
@@ -37,13 +37,13 @@
}
// |InterfaceFactory<Process>| implementation:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Process> request) override {
if (!worker_pool_) {
worker_pool_ = new base::SequencedWorkerPool(kMaxWorkerThreads,
"NativeSupportWorker");
}
- new ProcessImpl(worker_pool_, connection, request.Pass());
+ new ProcessImpl(worker_pool_, connection_context, request.Pass());
}
scoped_refptr<base::SequencedWorkerPool> worker_pool_;
diff --git a/services/native_support/process_impl.cc b/services/native_support/process_impl.cc
index 4e72164..48cbd2c 100644
--- a/services/native_support/process_impl.cc
+++ b/services/native_support/process_impl.cc
@@ -51,8 +51,9 @@
} // namespace
+// TODO(vtl): This should do something with the |connection_context|.
ProcessImpl::ProcessImpl(scoped_refptr<base::TaskRunner> worker_runner,
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Process> request)
: worker_runner_(worker_runner.Pass()), binding_(this, request.Pass()) {}
diff --git a/services/native_support/process_impl.h b/services/native_support/process_impl.h
index 8632b2e..b734da2 100644
--- a/services/native_support/process_impl.h
+++ b/services/native_support/process_impl.h
@@ -16,7 +16,7 @@
#include "mojo/services/native_support/interfaces/process.mojom.h"
namespace mojo {
-class ApplicationConnection;
+struct ConnectionContext;
}
namespace native_support {
@@ -26,7 +26,7 @@
class ProcessImpl : public Process {
public:
ProcessImpl(scoped_refptr<base::TaskRunner> worker_runner,
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Process> request);
~ProcessImpl() override;
diff --git a/services/native_viewport/app_delegate.cc b/services/native_viewport/app_delegate.cc
index 38ee403..67e5ecb 100644
--- a/services/native_viewport/app_delegate.cc
+++ b/services/native_viewport/app_delegate.cc
@@ -59,23 +59,24 @@
}
bool NativeViewportAppDelegate::ConfigureIncomingConnection(
- ApplicationConnection* connection) {
- connection->AddService<NativeViewport>(this);
- connection->AddService<Gpu>(this);
+ mojo::ApplicationConnection* connection) {
+ connection->AddService<mojo::NativeViewport>(this);
+ connection->AddService<mojo::Gpu>(this);
return true;
}
void NativeViewportAppDelegate::Create(
- ApplicationConnection* connection,
- mojo::InterfaceRequest<NativeViewport> request) {
+ const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::NativeViewport> request) {
if (!gpu_state_.get())
gpu_state_ = new gles2::GpuState;
new NativeViewportImpl(application_, is_headless_, gpu_state_,
request.Pass());
}
-void NativeViewportAppDelegate::Create(ApplicationConnection* connection,
- mojo::InterfaceRequest<Gpu> request) {
+void NativeViewportAppDelegate::Create(
+ const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::Gpu> request) {
if (!gpu_state_.get())
gpu_state_ = new gles2::GpuState;
new gles2::GpuImpl(request.Pass(), gpu_state_);
diff --git a/services/native_viewport/app_delegate.h b/services/native_viewport/app_delegate.h
index fd651f3..2362355 100644
--- a/services/native_viewport/app_delegate.h
+++ b/services/native_viewport/app_delegate.h
@@ -22,15 +22,12 @@
#include "ui/events/event_switches.h"
#include "ui/gl/gl_surface.h"
-using mojo::ApplicationConnection;
-using mojo::Gpu;
-using mojo::NativeViewport;
-
namespace native_viewport {
-class NativeViewportAppDelegate : public mojo::ApplicationDelegate,
- public mojo::InterfaceFactory<NativeViewport>,
- public mojo::InterfaceFactory<Gpu> {
+class NativeViewportAppDelegate
+ : public mojo::ApplicationDelegate,
+ public mojo::InterfaceFactory<mojo::NativeViewport>,
+ public mojo::InterfaceFactory<mojo::Gpu> {
public:
NativeViewportAppDelegate();
~NativeViewportAppDelegate() override;
@@ -38,15 +35,16 @@
// mojo::ApplicationDelegate implementation.
void Initialize(mojo::ApplicationImpl* application) override;
- bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
+ bool ConfigureIncomingConnection(
+ mojo::ApplicationConnection* connection) override;
- // mojo::InterfaceFactory<NativeViewport> implementation.
- void Create(ApplicationConnection* connection,
- mojo::InterfaceRequest<NativeViewport> request) override;
+ // mojo::InterfaceFactory<mojo::NativeViewport> implementation.
+ void Create(const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::NativeViewport> request) override;
- // mojo::InterfaceFactory<Gpu> implementation.
- void Create(ApplicationConnection* connection,
- mojo::InterfaceRequest<Gpu> request) override;
+ // mojo::InterfaceFactory<mojo::Gpu> implementation.
+ void Create(const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::Gpu> request) override;
private:
void InitLogging(mojo::ApplicationImpl* application);
diff --git a/services/prediction/prediction_service_impl.cc b/services/prediction/prediction_service_impl.cc
index ccc1596..210b965 100644
--- a/services/prediction/prediction_service_impl.cc
+++ b/services/prediction/prediction_service_impl.cc
@@ -48,7 +48,7 @@
// mojo::InterfaceRequest<PredictionService> implementation
void PredictionServiceDelegate::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<PredictionService> request) {
new PredictionServiceImpl(request.Pass());
}
diff --git a/services/prediction/prediction_service_impl.h b/services/prediction/prediction_service_impl.h
index 4963004..64e2b50 100644
--- a/services/prediction/prediction_service_impl.h
+++ b/services/prediction/prediction_service_impl.h
@@ -41,7 +41,7 @@
mojo::ApplicationConnection* connection) override;
// mojo::InterfaceRequest<PredictionService> implementation
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<PredictionService> request) override;
};
diff --git a/services/test_service/test_request_tracker_application.cc b/services/test_service/test_request_tracker_application.cc
index 6cfd204..ed23d44 100644
--- a/services/test_service/test_request_tracker_application.cc
+++ b/services/test_service/test_request_tracker_application.cc
@@ -36,19 +36,19 @@
}
void TestRequestTrackerApplication::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<TestTimeService> request) {
new TestTimeServiceImpl(app_impl_, request.Pass());
}
void TestRequestTrackerApplication::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<TestRequestTracker> request) {
new TestRequestTrackerImpl(request.Pass(), &context_);
}
void TestRequestTrackerApplication::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<TestTrackedRequestService> request) {
new TestTrackedRequestServiceImpl(request.Pass(), &context_);
}
diff --git a/services/test_service/test_request_tracker_application.h b/services/test_service/test_request_tracker_application.h
index 6fe057d..c169c90 100644
--- a/services/test_service/test_request_tracker_application.h
+++ b/services/test_service/test_request_tracker_application.h
@@ -31,15 +31,15 @@
bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// InterfaceFactory<TestTimeService> methods:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestTimeService> request) override;
// InterfaceFactory<TestRequestTracker> methods:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestRequestTracker> request) override;
// InterfaceFactory<TestTrackedRequestService> methods:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestTrackedRequestService> request) override;
private:
diff --git a/services/test_service/test_service_application.cc b/services/test_service/test_service_application.cc
index b288d98..509ddac 100644
--- a/services/test_service/test_service_application.cc
+++ b/services/test_service/test_service_application.cc
@@ -34,13 +34,13 @@
return true;
}
-void TestServiceApplication::Create(ApplicationConnection* connection,
+void TestServiceApplication::Create(const ConnectionContext& connection_context,
InterfaceRequest<TestService> request) {
new TestServiceImpl(app_impl_, this, request.Pass());
AddRef();
}
-void TestServiceApplication::Create(ApplicationConnection* connection,
+void TestServiceApplication::Create(const ConnectionContext& connection_context,
InterfaceRequest<TestTimeService> request) {
new TestTimeServiceImpl(app_impl_, request.Pass());
}
diff --git a/services/test_service/test_service_application.h b/services/test_service/test_service_application.h
index 6b36f07..1839311 100644
--- a/services/test_service/test_service_application.h
+++ b/services/test_service/test_service_application.h
@@ -29,11 +29,11 @@
bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// InterfaceFactory<TestService> implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestService> request) override;
// InterfaceFactory<TestTimeService> implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestTimeService> request) override;
void AddRef();
diff --git a/services/tracing/tracing_app.cc b/services/tracing/tracing_app.cc
index 036e583..915ed03 100644
--- a/services/tracing/tracing_app.cc
+++ b/services/tracing/tracing_app.cc
@@ -21,7 +21,7 @@
return true;
}
-void TracingApp::Create(mojo::ApplicationConnection* connection,
+void TracingApp::Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<TraceCollector> request) {
if (collector_binding_.is_bound()) {
LOG(ERROR) << "Another application is already connected to tracing.";
@@ -31,7 +31,7 @@
collector_binding_.Bind(request.Pass());
}
-void TracingApp::Create(mojo::ApplicationConnection* connection,
+void TracingApp::Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<TraceProviderRegistry> request) {
provider_registry_bindings_.AddBinding(this, request.Pass());
}
diff --git a/services/tracing/tracing_app.h b/services/tracing/tracing_app.h
index 3131c55..24395e0 100644
--- a/services/tracing/tracing_app.h
+++ b/services/tracing/tracing_app.h
@@ -35,11 +35,11 @@
mojo::ApplicationConnection* connection) override;
// mojo::InterfaceFactory<TraceCollector> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<TraceCollector> request) override;
// mojo::InterfaceFactory<TraceProviderRegistry> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<TraceProviderRegistry> request) override;
// TraceCollector implementation.
diff --git a/services/ui/input_manager/input_manager_app.cc b/services/ui/input_manager/input_manager_app.cc
index 9c5db14..b6adffb 100644
--- a/services/ui/input_manager/input_manager_app.cc
+++ b/services/ui/input_manager/input_manager_app.cc
@@ -39,7 +39,7 @@
}
void InputManagerApp::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ui::ViewAssociate> request) {
input_associates.AddBinding(new InputAssociate(), request.Pass());
}
diff --git a/services/ui/input_manager/input_manager_app.h b/services/ui/input_manager/input_manager_app.h
index e7c424a..764487b 100644
--- a/services/ui/input_manager/input_manager_app.h
+++ b/services/ui/input_manager/input_manager_app.h
@@ -30,7 +30,7 @@
mojo::ApplicationConnection* connection) override;
// |InterfaceFactory<ViewAssociate>|:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ui::ViewAssociate> request) override;
mojo::ApplicationImpl* app_impl_;
diff --git a/services/ui/launcher/launcher_app.cc b/services/ui/launcher/launcher_app.cc
index 895f2e1..918681e 100644
--- a/services/ui/launcher/launcher_app.cc
+++ b/services/ui/launcher/launcher_app.cc
@@ -45,7 +45,7 @@
return true;
}
-void LauncherApp::Create(mojo::ApplicationConnection* connection,
+void LauncherApp::Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Launcher> request) {
bindings_.AddBinding(this, request.Pass());
}
diff --git a/services/ui/launcher/launcher_app.h b/services/ui/launcher/launcher_app.h
index 6eddc7d..153641d 100644
--- a/services/ui/launcher/launcher_app.h
+++ b/services/ui/launcher/launcher_app.h
@@ -30,7 +30,7 @@
mojo::ApplicationConnection* connection) override;
// mojo::InterfaceRequest<Launcher> implementation
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Launcher> request) override;
// |Launcher|:
diff --git a/services/ui/view_manager/view_manager_app.cc b/services/ui/view_manager/view_manager_app.cc
index a77b49a..63ebbba 100644
--- a/services/ui/view_manager/view_manager_app.cc
+++ b/services/ui/view_manager/view_manager_app.cc
@@ -66,7 +66,7 @@
}
void ViewManagerApp::Create(
- mojo::ApplicationConnection* connection,
+ const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ui::ViewManager> request) {
DCHECK(registry_);
view_managers_.AddBinding(new ViewManagerImpl(registry_.get()),
diff --git a/services/ui/view_manager/view_manager_app.h b/services/ui/view_manager/view_manager_app.h
index 96cbab4..2088435 100644
--- a/services/ui/view_manager/view_manager_app.h
+++ b/services/ui/view_manager/view_manager_app.h
@@ -31,7 +31,7 @@
mojo::ApplicationConnection* connection) override;
// |InterfaceFactory<ViewManager>|:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::ui::ViewManager> request) override;
void OnCompositorConnectionError();
diff --git a/services/url_response_disk_cache/url_response_disk_cache_app.cc b/services/url_response_disk_cache/url_response_disk_cache_app.cc
index ba7b456..e63d15f 100644
--- a/services/url_response_disk_cache/url_response_disk_cache_app.cc
+++ b/services/url_response_disk_cache/url_response_disk_cache_app.cc
@@ -30,11 +30,10 @@
}
void URLResponseDiskCacheApp::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<URLResponseDiskCache> request) {
new URLResponseDiskCacheImpl(task_runner_, delegate_, db_,
- connection->GetRemoteApplicationURL(),
- request.Pass());
+ connection_context.remote_url, request.Pass());
}
} // namespace mojo
diff --git a/services/url_response_disk_cache/url_response_disk_cache_app.h b/services/url_response_disk_cache/url_response_disk_cache_app.h
index 776db21..7e0715c 100644
--- a/services/url_response_disk_cache/url_response_disk_cache_app.h
+++ b/services/url_response_disk_cache/url_response_disk_cache_app.h
@@ -32,7 +32,7 @@
bool ConfigureIncomingConnection(ApplicationConnection* connection) override;
// InterfaceFactory<URLResponseDiskCache>:
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<URLResponseDiskCache> request) override;
scoped_refptr<base::TaskRunner> task_runner_;
diff --git a/shell/android/native_viewport_application_loader.cc b/shell/android/native_viewport_application_loader.cc
index 34450a9..ea9bc9b 100644
--- a/shell/android/native_viewport_application_loader.cc
+++ b/shell/android/native_viewport_application_loader.cc
@@ -9,6 +9,7 @@
#include "services/native_viewport/native_viewport_impl.h"
using mojo::ApplicationConnection;
+using mojo::ConnectionContext;
using mojo::InterfaceRequest;
namespace shell {
@@ -34,7 +35,7 @@
}
void NativeViewportApplicationLoader::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<mojo::NativeViewport> request) {
if (!gpu_state_)
gpu_state_ = new gles2::GpuState;
@@ -43,7 +44,7 @@
}
void NativeViewportApplicationLoader::Create(
- ApplicationConnection* connection,
+ const ConnectionContext& connection_context,
InterfaceRequest<mojo::Gpu> request) {
if (!gpu_state_)
gpu_state_ = new gles2::GpuState;
diff --git a/shell/android/native_viewport_application_loader.h b/shell/android/native_viewport_application_loader.h
index 8e62420..861a691 100644
--- a/shell/android/native_viewport_application_loader.h
+++ b/shell/android/native_viewport_application_loader.h
@@ -42,11 +42,11 @@
mojo::ApplicationConnection* connection) override;
// mojo::InterfaceFactory<mojo::NativeViewport> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::NativeViewport> request) override;
// mojo::InterfaceFactory<mojo::Gpu> implementation.
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<mojo::Gpu> request) override;
scoped_refptr<gles2::GpuState> gpu_state_;
diff --git a/shell/application_manager/application_manager_unittest.cc b/shell/application_manager/application_manager_unittest.cc
index aa1f7ae..7dec43d 100644
--- a/shell/application_manager/application_manager_unittest.cc
+++ b/shell/application_manager/application_manager_unittest.cc
@@ -27,6 +27,7 @@
using mojo::ApplicationDelegate;
using mojo::ApplicationImpl;
using mojo::Callback;
+using mojo::ConnectionContext;
using mojo::InterfaceFactory;
using mojo::InterfaceRequest;
using mojo::StrongBinding;
@@ -129,7 +130,7 @@
}
// InterfaceFactory implementation.
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestService> request) override {
new TestServiceImpl(context_, request.Pass());
}
@@ -277,9 +278,7 @@
class TestBImpl : public TestB {
public:
- TestBImpl(ApplicationConnection* connection,
- TesterContext* test_context,
- InterfaceRequest<TestB> request)
+ TestBImpl(TesterContext* test_context, InterfaceRequest<TestB> request)
: test_context_(test_context), binding_(this, request.Pass()) {}
~TestBImpl() override {
@@ -330,7 +329,7 @@
return true;
}
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestA> request) override {
mojo::InterfaceHandle<mojo::ServiceProvider> incoming_sp_handle;
app_->shell()->ConnectToApplication(kTestBURLString,
@@ -339,9 +338,9 @@
new TestAImpl(incoming_sp_handle.Pass(), context_, request.Pass()));
}
- void Create(ApplicationConnection* connection,
+ void Create(const ConnectionContext& connection_context,
InterfaceRequest<TestB> request) override {
- new TestBImpl(connection, context_, request.Pass());
+ new TestBImpl(context_, request.Pass());
}
TesterContext* context_;
diff --git a/shell/test/pingable_app.cc b/shell/test/pingable_app.cc
index f65b682..2436a7d 100644
--- a/shell/test/pingable_app.cc
+++ b/shell/test/pingable_app.cc
@@ -58,9 +58,10 @@
}
// InterfaceFactory<Pingable>:
- void Create(mojo::ApplicationConnection* connection,
+ void Create(const mojo::ConnectionContext& connection_context,
mojo::InterfaceRequest<Pingable> request) override {
- new PingableImpl(request.Pass(), app_url_, connection->GetConnectionURL());
+ new PingableImpl(request.Pass(), app_url_,
+ connection_context.connection_url);
}
std::string app_url_;
diff --git a/ui/ozone/platform/drm/mojo/drm_ipc_init_helper.cc b/ui/ozone/platform/drm/mojo/drm_ipc_init_helper.cc
index aa486c6..ecbd1a9 100644
--- a/ui/ozone/platform/drm/mojo/drm_ipc_init_helper.cc
+++ b/ui/ozone/platform/drm/mojo/drm_ipc_init_helper.cc
@@ -17,29 +17,21 @@
class InterfaceFactoryDrmHost
: public mojo::InterfaceFactory<mojo::OzoneDrmHost> {
// mojo::InterfaceFactory implementation.
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::OzoneDrmHost> request) override;
+ void Create(const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::OzoneDrmHost> request) override {
+ new MojoDrmHostImpl(request.Pass());
+ }
};
class InterfaceFactoryDrmGpu
: public mojo::InterfaceFactory<mojo::OzoneDrmGpu> {
// mojo::InterfaceFactory<OzoneDrmGpu> implementation.
- void Create(mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::OzoneDrmGpu> request) override;
+ void Create(const mojo::ConnectionContext& connection_context,
+ mojo::InterfaceRequest<mojo::OzoneDrmGpu> request) override {
+ new MojoDrmGpuImpl(request.Pass());
+ }
};
-void InterfaceFactoryDrmHost::Create(
- mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::OzoneDrmHost> request) {
- new MojoDrmHostImpl(request.Pass());
-}
-
-void InterfaceFactoryDrmGpu::Create(
- mojo::ApplicationConnection* connection,
- mojo::InterfaceRequest<mojo::OzoneDrmGpu> request) {
- new MojoDrmGpuImpl(request.Pass());
-}
-
class DrmIpcInitHelperMojo : public IpcInitHelperMojo {
public:
DrmIpcInitHelperMojo();