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