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

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

Issue 2819023: Reworked ExtensionsService::AddPendingExtension(). (Closed)
Patch Set: Fixed browsertest test failure Created 10 years, 6 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_EXTENSIONS_SERVICE_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 30 matching lines...) Expand all
41 class ResourceDispatcherHost; 41 class ResourceDispatcherHost;
42 class SiteInstance; 42 class SiteInstance;
43 class Version; 43 class Version;
44 44
45 // A pending extension is an extension that hasn't been installed yet 45 // A pending extension is an extension that hasn't been installed yet
46 // and is intended to be installed in the next auto-update cycle. The 46 // and is intended to be installed in the next auto-update cycle. The
47 // update URL of a pending extension may be blank, in which case a 47 // update URL of a pending extension may be blank, in which case a
48 // default one is assumed. 48 // default one is assumed.
49 struct PendingExtensionInfo { 49 struct PendingExtensionInfo {
50 PendingExtensionInfo(const GURL& update_url, 50 PendingExtensionInfo(const GURL& update_url,
51 const Version& version,
52 bool is_theme, 51 bool is_theme,
53 bool install_silently); 52 bool install_silently,
53 bool enable_on_install,
54 bool enable_incognito_on_install);
54 55
55 PendingExtensionInfo(); 56 PendingExtensionInfo();
56 57
57 GURL update_url; 58 GURL update_url;
58 Version version;
59 bool is_theme; 59 bool is_theme;
60 bool install_silently; 60 bool install_silently;
61 bool enable_on_install;
62 bool enable_incognito_on_install;
61 }; 63 };
62 64
63 // A PendingExtensionMap is a map from IDs of pending extensions to 65 // A PendingExtensionMap is a map from IDs of pending extensions to
64 // their info. 66 // their info.
65 typedef std::map<std::string, PendingExtensionInfo> PendingExtensionMap; 67 typedef std::map<std::string, PendingExtensionInfo> PendingExtensionMap;
66 68
67 // This is an interface class to encapsulate the dependencies that 69 // This is an interface class to encapsulate the dependencies that
68 // ExtensionUpdater has on ExtensionsService. This allows easy mocking. 70 // ExtensionUpdater has on ExtensionsService. This allows easy mocking.
69 class ExtensionUpdateService { 71 class ExtensionUpdateService {
70 public: 72 public:
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 virtual void UpdateExtension(const std::string& id, 196 virtual void UpdateExtension(const std::string& id,
195 const FilePath& extension_path, 197 const FilePath& extension_path,
196 const GURL& download_url); 198 const GURL& download_url);
197 199
198 // Adds an extension in a pending state; the extension with the 200 // Adds an extension in a pending state; the extension with the
199 // given info will be installed on the next auto-update cycle. 201 // given info will be installed on the next auto-update cycle.
200 // 202 //
201 // It is an error to call this with an already-installed extension 203 // It is an error to call this with an already-installed extension
202 // (even a disabled one). 204 // (even a disabled one).
203 // 205 //
204 // TODO(akalin): Make sure that all the places that check for 206 // TODO(akalin): Replace |install_silently| with a list of
205 // existing versions also consult the pending extension info. 207 // pre-enabled permissions.
206 void AddPendingExtension( 208 void AddPendingExtension(
207 const std::string& id, const GURL& update_url, 209 const std::string& id, const GURL& update_url,
208 const Version& version, bool is_theme, bool install_silently); 210 bool is_theme, bool install_silently,
211 bool enable_on_install, bool enable_incognito_on_install);
209 212
210 // Reloads the specified extension. 213 // Reloads the specified extension.
211 void ReloadExtension(const std::string& extension_id); 214 void ReloadExtension(const std::string& extension_id);
212 215
213 // Uninstalls the specified extension. Callers should only call this method 216 // Uninstalls the specified extension. Callers should only call this method
214 // with extensions that exist. |external_uninstall| is a magical parameter 217 // with extensions that exist. |external_uninstall| is a magical parameter
215 // that is only used to send information to ExtensionPrefs, which external 218 // that is only used to send information to ExtensionPrefs, which external
216 // callers should never set to true. 219 // callers should never set to true.
217 // TODO(aa): Remove |external_uninstall| -- this information should be passed 220 // TODO(aa): Remove |external_uninstall| -- this information should be passed
218 // to ExtensionPrefs some other way. 221 // to ExtensionPrefs some other way.
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 // Look up an extension by ID, optionally including either or both of enabled 356 // Look up an extension by ID, optionally including either or both of enabled
354 // and disabled extensions. 357 // and disabled extensions.
355 Extension* GetExtensionByIdInternal(const std::string& id, 358 Extension* GetExtensionByIdInternal(const std::string& id,
356 bool include_enabled, 359 bool include_enabled,
357 bool include_disabled); 360 bool include_disabled);
358 361
359 // Like AddPendingExtension() but assumes an extension with the same 362 // Like AddPendingExtension() but assumes an extension with the same
360 // id is not already installed. 363 // id is not already installed.
361 void AddPendingExtensionInternal( 364 void AddPendingExtensionInternal(
362 const std::string& id, const GURL& update_url, 365 const std::string& id, const GURL& update_url,
363 const Version& version, bool is_theme, bool install_silently); 366 bool is_theme, bool install_silently,
367 bool enable_on_install, bool enable_incognito_on_install);
364 368
365 // Handles sending notification that |extension| was loaded. 369 // Handles sending notification that |extension| was loaded.
366 void NotifyExtensionLoaded(Extension* extension); 370 void NotifyExtensionLoaded(Extension* extension);
367 371
368 // Handles sending notification that |extension| was unloaded. 372 // Handles sending notification that |extension| was unloaded.
369 void NotifyExtensionUnloaded(Extension* extension); 373 void NotifyExtensionUnloaded(Extension* extension);
370 374
371 // Helper that updates the active extension list used for crash reporting. 375 // Helper that updates the active extension list used for crash reporting.
372 void UpdateActiveExtensionsInCrashReporter(); 376 void UpdateActiveExtensionsInCrashReporter();
373 377
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 540
537 // A map of all external extension providers. 541 // A map of all external extension providers.
538 typedef std::map<Extension::Location, 542 typedef std::map<Extension::Location,
539 linked_ptr<ExternalExtensionProvider> > ProviderMap; 543 linked_ptr<ExternalExtensionProvider> > ProviderMap;
540 ProviderMap external_extension_providers_; 544 ProviderMap external_extension_providers_;
541 545
542 DISALLOW_COPY_AND_ASSIGN(ExtensionsServiceBackend); 546 DISALLOW_COPY_AND_ASSIGN(ExtensionsServiceBackend);
543 }; 547 };
544 548
545 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ 549 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_updater_unittest.cc ('k') | chrome/browser/extensions/extensions_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698