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

Side by Side Diff: chrome/browser/extensions/tab_helper.h

Issue 2148343002: [Extensions] Rework inline installation observation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_
6 #define CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 // Sets a non-extension app icon associated with WebContents and fires an 116 // Sets a non-extension app icon associated with WebContents and fires an
117 // INVALIDATE_TYPE_TITLE navigation state change to trigger repaint of title. 117 // INVALIDATE_TYPE_TITLE navigation state change to trigger repaint of title.
118 void SetAppIcon(const SkBitmap& app_icon); 118 void SetAppIcon(const SkBitmap& app_icon);
119 119
120 // Sets the factory used to create inline webstore item installers. 120 // Sets the factory used to create inline webstore item installers.
121 // Used for testing. Takes ownership of the factory instance. 121 // Used for testing. Takes ownership of the factory instance.
122 void SetWebstoreInlineInstallerFactoryForTests( 122 void SetWebstoreInlineInstallerFactoryForTests(
123 WebstoreInlineInstallerFactory* factory); 123 WebstoreInlineInstallerFactory* factory);
124 124
125 private: 125 private:
126 class InlineInstallObserver;
127
126 // Utility function to invoke member functions on all relevant 128 // Utility function to invoke member functions on all relevant
127 // ContentRulesRegistries. 129 // ContentRulesRegistries.
128 template <class Func> 130 template <class Func>
129 void InvokeForContentRulesRegistries(const Func& func); 131 void InvokeForContentRulesRegistries(const Func& func);
130 132
131 // Different types of action when web app info is available. 133 // Different types of action when web app info is available.
132 // OnDidGetApplicationInfo uses this to dispatch calls. 134 // OnDidGetApplicationInfo uses this to dispatch calls.
133 enum WebAppAction { 135 enum WebAppAction {
134 NONE, // No action at all. 136 NONE, // No action at all.
135 CREATE_SHORTCUT, // Bring up create application shortcut dialog. 137 CREATE_SHORTCUT, // Bring up create application shortcut dialog.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 // the extension's image asynchronously. 185 // the extension's image asynchronously.
184 void UpdateExtensionAppIcon(const Extension* extension); 186 void UpdateExtensionAppIcon(const Extension* extension);
185 187
186 const Extension* GetExtension(const std::string& extension_app_id); 188 const Extension* GetExtension(const std::string& extension_app_id);
187 189
188 void OnImageLoaded(const gfx::Image& image); 190 void OnImageLoaded(const gfx::Image& image);
189 191
190 // WebstoreStandaloneInstaller::Callback. 192 // WebstoreStandaloneInstaller::Callback.
191 void OnInlineInstallComplete(int install_id, 193 void OnInlineInstallComplete(int install_id,
192 int return_route_id, 194 int return_route_id,
195 const std::string& extension_id,
193 bool success, 196 bool success,
194 const std::string& error, 197 const std::string& error,
195 webstore_install::Result result); 198 webstore_install::Result result);
196 199
197 // ExtensionReenabler::Callback. 200 // ExtensionReenabler::Callback.
198 void OnReenableComplete(int install_id, 201 void OnReenableComplete(int install_id,
199 int return_route_id, 202 int return_route_id,
203 const std::string& extension_id,
200 ExtensionReenabler::ReenableResult result); 204 ExtensionReenabler::ReenableResult result);
201 205
202 // content::NotificationObserver. 206 // content::NotificationObserver.
203 void Observe(int type, 207 void Observe(int type,
204 const content::NotificationSource& source, 208 const content::NotificationSource& source,
205 const content::NotificationDetails& details) override; 209 const content::NotificationDetails& details) override;
206 210
207 // Requests application info for the specified page. This is an asynchronous 211 // Requests application info for the specified page. This is an asynchronous
208 // request. The delegate is notified by way of OnDidGetApplicationInfo when 212 // request. The delegate is notified by way of OnDidGetApplicationInfo when
209 // the data is available. 213 // the data is available.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 256
253 std::unique_ptr<BookmarkAppHelper> bookmark_app_helper_; 257 std::unique_ptr<BookmarkAppHelper> bookmark_app_helper_;
254 258
255 // Creates WebstoreInlineInstaller instances for inline install triggers. 259 // Creates WebstoreInlineInstaller instances for inline install triggers.
256 std::unique_ptr<WebstoreInlineInstallerFactory> 260 std::unique_ptr<WebstoreInlineInstallerFactory>
257 webstore_inline_installer_factory_; 261 webstore_inline_installer_factory_;
258 262
259 // The reenable prompt for disabled extensions, if any. 263 // The reenable prompt for disabled extensions, if any.
260 std::unique_ptr<ExtensionReenabler> extension_reenabler_; 264 std::unique_ptr<ExtensionReenabler> extension_reenabler_;
261 265
266 // Map of extension id -> InlineInstallObserver for inline installations that
267 // have progress listeners.
268 std::map<std::string, std::unique_ptr<InlineInstallObserver>>
269 install_observers_;
270
271 // The set of extension ids that are currently being installed.
272 std::set<std::string> pending_inline_installations_;
273
262 // Vend weak pointers that can be invalidated to stop in-progress loads. 274 // Vend weak pointers that can be invalidated to stop in-progress loads.
263 base::WeakPtrFactory<TabHelper> image_loader_ptr_factory_; 275 base::WeakPtrFactory<TabHelper> image_loader_ptr_factory_;
264 276
265 // Generic weak ptr factory for posting callbacks. 277 // Generic weak ptr factory for posting callbacks.
266 base::WeakPtrFactory<TabHelper> weak_ptr_factory_; 278 base::WeakPtrFactory<TabHelper> weak_ptr_factory_;
267 279
268 DISALLOW_COPY_AND_ASSIGN(TabHelper); 280 DISALLOW_COPY_AND_ASSIGN(TabHelper);
269 }; 281 };
270 282
271 } // namespace extensions 283 } // namespace extensions
272 284
273 #endif // CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_ 285 #endif // CHROME_BROWSER_EXTENSIONS_TAB_HELPER_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/browser_context_keyed_service_factories.cc ('k') | chrome/browser/extensions/tab_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698