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

Side by Side Diff: mojo/application_manager/application_manager.h

Issue 741453002: Make sure that Content Handled application can be connected multiple times. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Follow review Created 6 years, 1 month 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 unified diff | Download patch
OLDNEW
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 #include <set> 9 #include <set>
10 10
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 // and have a chance to shutdown. 102 // and have a chance to shutdown.
103 void TerminateShellConnections(); 103 void TerminateShellConnections();
104 104
105 private: 105 private:
106 enum IncludeDefaultLoader { 106 enum IncludeDefaultLoader {
107 INCLUDE_DEFAULT_LOADER, 107 INCLUDE_DEFAULT_LOADER,
108 DONT_INCLUDE_DEFAULT_LOADER, 108 DONT_INCLUDE_DEFAULT_LOADER,
109 }; 109 };
110 110
111 class ContentHandlerConnection; 111 class ContentHandlerConnection;
112 class LoadCallbacksImpl;
113 class ShellImpl; 112 class ShellImpl;
114 113
115 typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap; 114 typedef std::map<std::string, ApplicationLoader*> SchemeToLoaderMap;
116 typedef std::map<GURL, ApplicationLoader*> URLToLoaderMap; 115 typedef std::map<GURL, ApplicationLoader*> URLToLoaderMap;
117 typedef std::map<GURL, ShellImpl*> URLToShellImplMap; 116 typedef std::map<GURL, ShellImpl*> URLToShellImplMap;
118 typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap; 117 typedef std::map<GURL, ContentHandlerConnection*> URLToContentHandlerMap;
119 typedef std::map<GURL, std::vector<std::string> > URLToArgsMap; 118 typedef std::map<GURL, std::vector<std::string> > URLToArgsMap;
120 119
121 void ConnectToApplicationImpl(const GURL& url, 120 void ConnectToApplicationImpl(const GURL& url,
122 const GURL& original_url, 121 const GURL& original_url,
123 const GURL& requestor_url, 122 const GURL& requestor_url,
124 ServiceProviderPtr service_provider, 123 ServiceProviderPtr service_provider,
125 ApplicationLoader* loader); 124 ApplicationLoader* loader);
126 125
127 void ConnectToClient(ShellImpl* shell_impl, 126 void ConnectToClient(ShellImpl* shell_impl,
128 const GURL& url, 127 const GURL& url,
129 const GURL& requestor_url, 128 const GURL& requestor_url,
130 ServiceProviderPtr service_provider); 129 ServiceProviderPtr service_provider);
131 130
132 void RegisterLoadedApplication(const GURL& requested_url, 131 void LoadWithContentHandler(const GURL& content_handler_url,
133 const GURL& resolved_url, 132 ScopedMessagePipeHandle shell_handle,
134 const GURL& requestor_url, 133 URLResponsePtr url_response);
135 ServiceProviderPtr service_provider,
136 ScopedMessagePipeHandle* shell_handle);
137
138 void LoadWithContentHandler(const GURL& requested_url,
139 const GURL& resolved_url,
140 const GURL& requestor_url,
141 const GURL& content_handler_url,
142 URLResponsePtr url_response,
143 ServiceProviderPtr service_provider);
144 134
145 // Return the appropriate loader for |url|. This can return NULL if there is 135 // Return the appropriate loader for |url|. This can return NULL if there is
146 // no default loader configured. 136 // no default loader configured.
147 ApplicationLoader* GetLoaderForURL(const GURL& url, 137 ApplicationLoader* GetLoaderForURL(const GURL& url,
148 IncludeDefaultLoader fallback); 138 IncludeDefaultLoader fallback);
149 139
150 // Removes a ShellImpl when it encounters an error. 140 // Removes a ShellImpl when it encounters an error.
151 void OnShellImplError(ShellImpl* shell_impl); 141 void OnShellImplError(ShellImpl* shell_impl);
152 // 142 //
153 // Removes a ContentHandler when it encounters an error. 143 // Removes a ContentHandler when it encounters an error.
(...skipping 15 matching lines...) Expand all
169 std::set<ShellImpl*> content_shell_impls_; 159 std::set<ShellImpl*> content_shell_impls_;
170 160
171 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_; 161 base::WeakPtrFactory<ApplicationManager> weak_ptr_factory_;
172 162
173 DISALLOW_COPY_AND_ASSIGN(ApplicationManager); 163 DISALLOW_COPY_AND_ASSIGN(ApplicationManager);
174 }; 164 };
175 165
176 } // namespace mojo 166 } // namespace mojo
177 167
178 #endif // MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_ 168 #endif // MOJO_APPLICATION_MANAGER_APPLICATION_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698