Move application_manager from /mojo to /shell.

application_manager is an implementation detail of the shell.

BUG=430984
R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/814273005
diff --git a/shell/application_manager/shell_impl.cc b/shell/application_manager/shell_impl.cc
new file mode 100644
index 0000000..0d2b59d
--- /dev/null
+++ b/shell/application_manager/shell_impl.cc
@@ -0,0 +1,66 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "shell/application_manager/shell_impl.h"
+
+#include "mojo/common/common_type_converters.h"
+#include "mojo/services/content_handler/public/interfaces/content_handler.mojom.h"
+#include "shell/application_manager/application_manager.h"
+
+namespace mojo {
+
+ShellImpl::ShellImpl(ScopedMessagePipeHandle handle,
+                     ApplicationManager* manager,
+                     const GURL& requested_url,
+                     const GURL& url)
+    : ShellImpl(manager, requested_url, url) {
+  binding_.Bind(handle.Pass());
+}
+
+ShellImpl::ShellImpl(ShellPtr* ptr,
+                     ApplicationManager* manager,
+                     const GURL& requested_url,
+                     const GURL& url)
+    : ShellImpl(manager, requested_url, url) {
+  binding_.Bind(ptr);
+}
+
+ShellImpl::~ShellImpl() {
+}
+
+void ShellImpl::ConnectToClient(const GURL& requestor_url,
+                                InterfaceRequest<ServiceProvider> services,
+                                ServiceProviderPtr exposed_services) {
+  client()->AcceptConnection(String::From(requestor_url), services.Pass(),
+                             exposed_services.Pass());
+}
+
+ShellImpl::ShellImpl(ApplicationManager* manager,
+                     const GURL& requested_url,
+                     const GURL& url)
+    : manager_(manager),
+      requested_url_(requested_url),
+      url_(url),
+      binding_(this) {
+  binding_.set_error_handler(this);
+}
+
+// Shell implementation:
+void ShellImpl::ConnectToApplication(const String& app_url,
+                                     InterfaceRequest<ServiceProvider> services,
+                                     ServiceProviderPtr exposed_services) {
+  GURL app_gurl(app_url);
+  if (!app_gurl.is_valid()) {
+    LOG(ERROR) << "Error: invalid URL: " << app_url;
+    return;
+  }
+  manager_->ConnectToApplication(app_gurl, url_, services.Pass(),
+                                 exposed_services.Pass());
+}
+
+void ShellImpl::OnConnectionError() {
+  manager_->OnShellImplError(this);
+}
+
+}  // namespace mojo