Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(803)

Unified Diff: mojo/shell/application_manager.h

Issue 1354043002: Revert of Some more minor cleanup to ApplicationManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/shell/application_instance.cc ('k') | mojo/shell/application_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/shell/application_manager.h
diff --git a/mojo/shell/application_manager.h b/mojo/shell/application_manager.h
index 25b23a551bd47e790be290d0daa6d1940dee2f69..0ec2a6e8c9642cbea258cf15679e0cbe40f92ef6 100644
--- a/mojo/shell/application_manager.h
+++ b/mojo/shell/application_manager.h
@@ -16,6 +16,7 @@
#include "mojo/application/public/interfaces/shell.mojom.h"
#include "mojo/public/cpp/bindings/interface_ptr_info.h"
#include "mojo/public/cpp/bindings/interface_request.h"
+#include "mojo/services/updater/updater.mojom.h"
#include "mojo/shell/application_loader.h"
#include "mojo/shell/capability_filter.h"
#include "mojo/shell/connect_to_application_params.h"
@@ -58,9 +59,32 @@
~ApplicationManager();
// Loads a service if necessary and establishes a new client connection.
+ // |originator| can be NULL (e.g. for the first application or in tests), but
+ // typically is non-NULL and identifies the instance initiating the
+ // connection.
// Please see the comments in connect_to_application_params.h for more details
// about the parameters.
+ void ConnectToApplication(
+ ApplicationInstance* originator,
+ URLRequestPtr app_url_request,
+ const std::string& qualifier,
+ InterfaceRequest<ServiceProvider> services,
+ ServiceProviderPtr exposed_services,
+ const CapabilityFilter& filter,
+ const base::Closure& on_application_end,
+ const Shell::ConnectToApplicationCallback& connect_callback);
+
void ConnectToApplication(scoped_ptr<ConnectToApplicationParams> params);
+
+ // Must only be used by shell internals and test code as it does not forward
+ // capability filters.
+ template <typename Interface>
+ inline void ConnectToService(const GURL& application_url,
+ InterfacePtr<Interface>* ptr) {
+ ScopedMessagePipeHandle service_handle =
+ ConnectToServiceByName(application_url, Interface::Name_);
+ ptr->Bind(InterfacePtrInfo<Interface>(service_handle.Pass(), 0u));
+ }
// Sets the default Loader to be used if not overridden by SetLoaderForURL().
void set_default_loader(scoped_ptr<ApplicationLoader> loader) {
@@ -91,9 +115,10 @@
ApplicationInstance* GetApplicationInstance(const Identity& identity) const;
private:
- using IdentityToInstanceMap = std::map<Identity, ApplicationInstance*>;
- using IdentityToContentHandlerMap =
- std::map<Identity, ContentHandlerConnection*>;
+ using IdentityToApplicationInstanceMap =
+ std::map<Identity, ApplicationInstance*>;
+ using URLToContentHandlerMap =
+ std::map<std::pair<GURL, std::string>, ContentHandlerConnection*>;
using URLToLoaderMap = std::map<GURL, ApplicationLoader*>;
// Takes the contents of |params| only when it returns true.
@@ -108,9 +133,9 @@
const GURL& resolved_url,
ApplicationLoader* loader);
- InterfaceRequest<Application> CreateInstance(
+ InterfaceRequest<Application> RegisterInstance(
scoped_ptr<ConnectToApplicationParams> params,
- ApplicationInstance** instance);
+ ApplicationInstance** resulting_instance);
// Called once |fetcher| has found app. |params->app_url()| is the url of
// the requested application before any mappings/resolution have been applied.
@@ -141,6 +166,10 @@
void CleanupRunner(NativeRunner* runner);
+ ScopedMessagePipeHandle ConnectToServiceByName(
+ const GURL& application_url,
+ const std::string& interface_name);
+
scoped_ptr<PackageManager> const package_manager_;
// Loader management.
// Loaders are chosen in the order they are listed here.
@@ -148,10 +177,11 @@
scoped_ptr<ApplicationLoader> default_loader_;
scoped_ptr<NativeRunnerFactory> native_runner_factory_;
- IdentityToInstanceMap identity_to_instance_;
- IdentityToContentHandlerMap identity_to_content_handler_;
+ IdentityToApplicationInstanceMap identity_to_instance_;
+ URLToContentHandlerMap url_to_content_handler_;
base::SequencedWorkerPool* blocking_pool_;
+ updater::UpdaterPtr updater_;
ScopedVector<NativeRunner> native_runners_;
// Counter used to assign ids to content_handlers.
uint32_t content_handler_id_counter_;
« no previous file with comments | « mojo/shell/application_instance.cc ('k') | mojo/shell/application_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698