Remove ServiceRegistry's support for exposed services.

R=vardhan@google.com
BUG=#762

Review URL: https://codereview.chromium.org/1968543003 .
diff --git a/mojo/public/cpp/application/lib/application_impl.cc b/mojo/public/cpp/application/lib/application_impl.cc
index 23c58ae..ea1c200 100644
--- a/mojo/public/cpp/application/lib/application_impl.cc
+++ b/mojo/public/cpp/application/lib/application_impl.cc
@@ -64,12 +64,13 @@
     InterfaceRequest<ServiceProvider> services,
     InterfaceHandle<ServiceProvider> exposed_services,
     const String& url) {
-  MOJO_LOG_IF(WARNING, exposed_services)
-      << "DEPRECATION WARNING: exposed_services will soon go away";
+  // Note: The shell no longer actually connects |exposed_services|, so a) we
+  // never actually get valid |exposed_services| here, b) it should be OK to
+  // drop it on the floor.
+  MOJO_LOG_IF(ERROR, exposed_services)
+      << "DEPRECATED: exposed_services is going away";
   std::unique_ptr<internal::ServiceRegistry> registry(
-      new internal::ServiceRegistry(this, url, requestor_url,
-                                    std::move(exposed_services),
-                                    services.Pass()));
+      new internal::ServiceRegistry(url, requestor_url, services.Pass()));
   if (!delegate_->ConfigureIncomingConnection(registry.get()))
     return;
   incoming_service_registries_.push_back(std::move(registry));
diff --git a/mojo/public/cpp/application/lib/service_registry.cc b/mojo/public/cpp/application/lib/service_registry.cc
index bbf685e..734dc1b 100644
--- a/mojo/public/cpp/application/lib/service_registry.cc
+++ b/mojo/public/cpp/application/lib/service_registry.cc
@@ -5,34 +5,25 @@
 #include "mojo/public/cpp/application/lib/service_registry.h"
 
 #include "mojo/public/cpp/application/application_connection.h"
-#include "mojo/public/cpp/application/application_impl.h"
 #include "mojo/public/cpp/application/service_connector.h"
 
 namespace mojo {
 namespace internal {
 
+ServiceRegistry::ServiceRegistry() : local_binding_(this) {}
+
 ServiceRegistry::ServiceRegistry(
-    ApplicationImpl* application_impl,
     const std::string& connection_url,
     const std::string& remote_url,
-    InterfaceHandle<ServiceProvider> remote_services,
     InterfaceRequest<ServiceProvider> local_services)
-    : application_impl_(application_impl),
-      connection_url_(connection_url),
+    : connection_url_(connection_url),
       remote_url_(remote_url),
-      local_binding_(this),
-      remote_service_provider_(
-          ServiceProviderPtr::Create(std::move(remote_services))) {
+      local_binding_(this) {
   if (local_services.is_pending())
     local_binding_.Bind(local_services.Pass());
 }
 
-ServiceRegistry::ServiceRegistry()
-    : application_impl_(nullptr), local_binding_(this) {
-}
-
-ServiceRegistry::~ServiceRegistry() {
-}
+ServiceRegistry::~ServiceRegistry() {}
 
 void ServiceRegistry::SetServiceConnectorForName(
     ServiceConnector* service_connector,
@@ -44,8 +35,6 @@
 void ServiceRegistry::RemoveServiceConnectorForName(
     const std::string& interface_name) {
   service_connector_registry_.RemoveServiceConnectorForName(interface_name);
-  if (service_connector_registry_.empty())
-    remote_service_provider_.reset();
 }
 
 const std::string& ServiceRegistry::GetConnectionURL() {
@@ -56,7 +45,7 @@
   return remote_url_;
 }
 
-void ServiceRegistry::ConnectToService(const mojo::String& service_name,
+void ServiceRegistry::ConnectToService(const String& service_name,
                                        ScopedMessagePipeHandle client_handle) {
   service_connector_registry_.ConnectToService(this, service_name,
                                                &client_handle);
diff --git a/mojo/public/cpp/application/lib/service_registry.h b/mojo/public/cpp/application/lib/service_registry.h
index f35c085..c8c47d3 100644
--- a/mojo/public/cpp/application/lib/service_registry.h
+++ b/mojo/public/cpp/application/lib/service_registry.h
@@ -13,10 +13,6 @@
 #include "mojo/public/interfaces/application/service_provider.mojom.h"
 
 namespace mojo {
-
-class Application;
-class ApplicationImpl;
-
 namespace internal {
 
 // A ServiceRegistry represents each half of a connection between two
@@ -25,10 +21,8 @@
 class ServiceRegistry : public ServiceProvider, public ApplicationConnection {
  public:
   ServiceRegistry();
-  ServiceRegistry(ApplicationImpl* application_impl,
-                  const std::string& connection_url,
+  ServiceRegistry(const std::string& connection_url,
                   const std::string& remote_url,
-                  InterfaceHandle<ServiceProvider> remote_services,
                   InterfaceRequest<ServiceProvider> local_services);
   ~ServiceRegistry() override;
 
@@ -42,19 +36,12 @@
 
  private:
   // ServiceProvider method.
-  void ConnectToService(const mojo::String& service_name,
+  void ConnectToService(const String& service_name,
                         ScopedMessagePipeHandle client_handle) override;
 
-  ApplicationImpl* application_impl_;
   const std::string connection_url_;
   const std::string remote_url_;
-
- private:
-  void RemoveServiceConnectorForNameInternal(const std::string& interface_name);
-
-  Application* application_;
   Binding<ServiceProvider> local_binding_;
-  ServiceProviderPtr remote_service_provider_;
   ServiceConnectorRegistry service_connector_registry_;
 
   MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceRegistry);