| OLD | NEW | 
|    1 // Copyright 2014 The Chromium Authors. All rights reserved. |    1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #ifndef MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ |    5 #ifndef MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ | 
|    6 #define MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ |    6 #define MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ | 
|    7  |    7  | 
|    8 #include <map> |    8 #include <map> | 
|    9  |    9  | 
|   10 #include "base/basictypes.h" |   10 #include "base/basictypes.h" | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   85   // Sets the default Loader to be used if not overridden by SetLoaderForURL() |   85   // Sets the default Loader to be used if not overridden by SetLoaderForURL() | 
|   86   // or SetLoaderForScheme(). |   86   // or SetLoaderForScheme(). | 
|   87   void set_default_loader(scoped_ptr<ApplicationLoader> loader) { |   87   void set_default_loader(scoped_ptr<ApplicationLoader> loader) { | 
|   88     default_loader_ = loader.Pass(); |   88     default_loader_ = loader.Pass(); | 
|   89   } |   89   } | 
|   90   // Sets a Loader to be used for a specific url. |   90   // Sets a Loader to be used for a specific url. | 
|   91   void SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, const GURL& url); |   91   void SetLoaderForURL(scoped_ptr<ApplicationLoader> loader, const GURL& url); | 
|   92   // Sets a Loader to be used for a specific url scheme. |   92   // Sets a Loader to be used for a specific url scheme. | 
|   93   void SetLoaderForScheme(scoped_ptr<ApplicationLoader> loader, |   93   void SetLoaderForScheme(scoped_ptr<ApplicationLoader> loader, | 
|   94                           const std::string& scheme); |   94                           const std::string& scheme); | 
 |   95   // These strings will be passed to the Initialize() method when an | 
 |   96   // Application is instantiated. | 
 |   97   void SetArgsForURL(const std::vector<std::string>& args, const GURL& url); | 
 |   98  | 
|   95   // Allows to interpose a debugger to service connections. |   99   // Allows to interpose a debugger to service connections. | 
|   96   void SetInterceptor(Interceptor* interceptor); |  100   void SetInterceptor(Interceptor* interceptor); | 
|   97  |  101  | 
|   98   // Destroys all Shell-ends of connections established with Applications. |  102   // Destroys all Shell-ends of connections established with Applications. | 
|   99   // Applications connected by this ApplicationManager will observe pipe errors |  103   // Applications connected by this ApplicationManager will observe pipe errors | 
|  100   // and have a chance to shutdown. |  104   // and have a chance to shutdown. | 
|  101   void TerminateShellConnections(); |  105   void TerminateShellConnections(); | 
|  102  |  106  | 
|  103  private: |  107  private: | 
|  104   struct ContentHandlerConnection; |  108   struct ContentHandlerConnection; | 
|  105   class LoadCallbacksImpl; |  109   class LoadCallbacksImpl; | 
|  106   class ShellImpl; |  110   class ShellImpl; | 
|  107  |  111  | 
|  108   typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap; |  112   typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap; | 
|  109   typedef std::map<GURL, ApplicationLoader*> URLToLoaderMap; |  113   typedef std::map<GURL, ApplicationLoader*> URLToLoaderMap; | 
|  110   typedef std::map<GURL, ShellImpl*> URLToShellImplMap; |  114   typedef std::map<GURL, ShellImpl*> URLToShellImplMap; | 
|  111   typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap; |  115   typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap; | 
 |  116   typedef std::map<GURL, std::vector<std::string> > URLToArgsMap; | 
|  112  |  117  | 
|  113   void ConnectToClient(ShellImpl* shell_impl, |  118   void ConnectToClient(ShellImpl* shell_impl, | 
|  114                        const GURL& url, |  119                        const GURL& url, | 
|  115                        const GURL& requestor_url, |  120                        const GURL& requestor_url, | 
|  116                        ServiceProviderPtr service_provider); |  121                        ServiceProviderPtr service_provider); | 
|  117  |  122  | 
|  118   void RegisterLoadedApplication(const GURL& service_url, |  123   void RegisterLoadedApplication(const GURL& service_url, | 
|  119                                  const GURL& requestor_url, |  124                                  const GURL& requestor_url, | 
|  120                                  ServiceProviderPtr service_provider, |  125                                  ServiceProviderPtr service_provider, | 
|  121                                  ScopedMessagePipeHandle* shell_handle); |  126                                  ScopedMessagePipeHandle* shell_handle); | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|  136  |  141  | 
|  137   Delegate* delegate_; |  142   Delegate* delegate_; | 
|  138   // Loader management. |  143   // Loader management. | 
|  139   URLToLoaderMap url_to_loader_; |  144   URLToLoaderMap url_to_loader_; | 
|  140   SchemeToLoaderMap scheme_to_loader_; |  145   SchemeToLoaderMap scheme_to_loader_; | 
|  141   scoped_ptr<ApplicationLoader> default_loader_; |  146   scoped_ptr<ApplicationLoader> default_loader_; | 
|  142   Interceptor* interceptor_; |  147   Interceptor* interceptor_; | 
|  143  |  148  | 
|  144   URLToShellImplMap url_to_shell_impl_; |  149   URLToShellImplMap url_to_shell_impl_; | 
|  145   URLToContentHandlerMap url_to_content_handler_; |  150   URLToContentHandlerMap url_to_content_handler_; | 
 |  151   URLToArgsMap url_to_args_; | 
|  146  |  152  | 
|  147   base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; |  153   base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; | 
|  148  |  154  | 
|  149   DISALLOW_COPY_AND_ASSIGN(ApplicationManager); |  155   DISALLOW_COPY_AND_ASSIGN(ApplicationManager); | 
|  150 }; |  156 }; | 
|  151  |  157  | 
|  152 }  // namespace mojo |  158 }  // namespace mojo | 
|  153  |  159  | 
|  154 #endif  // MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ |  160 #endif  // MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ | 
| OLD | NEW |