Index: mojo/shell/application_manager.cc |
diff --git a/mojo/shell/application_manager.cc b/mojo/shell/application_manager.cc |
index c24e36a04c4d8567a8849d35c956602aebf385f4..c61a616851f0964263d4fd37bffa7540d1e549e9 100644 |
--- a/mojo/shell/application_manager.cc |
+++ b/mojo/shell/application_manager.cc |
@@ -98,6 +98,22 @@ void ApplicationManager::Connect(scoped_ptr<ConnectParams> params) { |
weak_ptr_factory_.GetWeakPtr(), base::Passed(¶ms))); |
} |
+mojom::ShellClientRequest ApplicationManager::CreateInstanceForURL( |
+ scoped_ptr<ConnectParams> params) { |
+ DCHECK(params->target().url().is_valid()); |
+ DCHECK(params->target().user_id() == mojom::Shell::kUserRoot); |
+ DCHECK(!GetApplicationInstance(params->target())); |
+ |
+ Identity target(params->target().url(), params->target().qualifier(), |
+ params->target().user_id(), params->target().filter()); |
+ |
+ mojom::ShellClientRequest request; |
+ ApplicationInstance* instance = CreateInstance(target, &request); |
+ instance->ConnectToClient(std::move(params)); |
+ |
+ return request; |
+} |
+ |
void ApplicationManager::SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, |
const GURL& url) { |
URLToLoaderMap::iterator it = url_to_loader_.find(url); |