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

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

Issue 297263003: Optimize promotion of ephemeral apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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_EXTENSION_SERVICE_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 void MaybeFinishDelayedInstallations(); 284 void MaybeFinishDelayedInstallations();
285 285
286 // Similar to FinishInstallation, but first checks if there still is an update 286 // Similar to FinishInstallation, but first checks if there still is an update
287 // pending for the extension, and makes sure the extension is still idle. 287 // pending for the extension, and makes sure the extension is still idle.
288 void MaybeFinishDelayedInstallation(const std::string& extension_id); 288 void MaybeFinishDelayedInstallation(const std::string& extension_id);
289 289
290 // Finishes installation of an update for an extension with the specified id, 290 // Finishes installation of an update for an extension with the specified id,
291 // when installation of that extension was previously delayed because the 291 // when installation of that extension was previously delayed because the
292 // extension was in use. 292 // extension was in use.
293 virtual void FinishDelayedInstallation( 293 virtual void FinishDelayedInstallation(
294 const std::string& extension_id) OVERRIDE; 294 const std::string& extension_id) OVERRIDE;
295
296 // Promotes an ephemeral app to being installed permanently. Ephemeral apps
297 // are already installed in extension system (albiet transiently) and only
298 // need to be exposed in the UI. Set |user_acknowledged| to true if the
299 // install was confirmed via a dialog, otherwise set to false (for example,
300 // if the install was initiated via sync).
301 void InstallEphemeralApp(
302 const extensions::Extension* extension, bool user_acknowledged);
benwells 2014/05/27 01:42:56 Can this be InstallEphemeralAppPermanently? The na
tmdiep 2014/05/27 01:58:54 Yeah, I originally had "InstallEphemeralAppPermane
tmdiep 2014/05/27 07:46:05 Changed to PromoteEphemeralApp, and user_acknowled
295 303
296 // Returns an update for an extension with the specified id, if installation 304 // Returns an update for an extension with the specified id, if installation
297 // of that update was previously delayed because the extension was in use. If 305 // of that update was previously delayed because the extension was in use. If
298 // no updates are pending for the extension returns NULL. 306 // no updates are pending for the extension returns NULL.
299 virtual const extensions::Extension* GetPendingExtensionUpdate( 307 virtual const extensions::Extension* GetPendingExtensionUpdate(
300 const std::string& extension_id) const OVERRIDE; 308 const std::string& extension_id) const OVERRIDE;
301 309
302 // Go through each extension and unload those that are not allowed to run by 310 // Go through each extension and unload those that are not allowed to run by
303 // management policy providers (ie. network admin and Google-managed 311 // management policy providers (ie. network admin and Google-managed
304 // blacklist). 312 // blacklist).
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 // doesn't notify the user that the extension was terminated, if such a 430 // doesn't notify the user that the extension was terminated, if such a
423 // notification is desired the calling code is responsible for doing that. 431 // notification is desired the calling code is responsible for doing that.
424 void TerminateExtension(const std::string& extension_id); 432 void TerminateExtension(const std::string& extension_id);
425 433
426 #if defined(UNIT_TEST) 434 #if defined(UNIT_TEST)
427 void TrackTerminatedExtensionForTest(const extensions::Extension* extension) { 435 void TrackTerminatedExtensionForTest(const extensions::Extension* extension) {
428 TrackTerminatedExtension(extension); 436 TrackTerminatedExtension(extension);
429 } 437 }
430 438
431 void FinishInstallationForTest(const extensions::Extension* extension) { 439 void FinishInstallationForTest(const extensions::Extension* extension) {
432 FinishInstallation(extension); 440 FinishInstallation(extension, false);
433 } 441 }
434 #endif 442 #endif
435 443
436 base::WeakPtr<ExtensionService> AsWeakPtr() { return base::AsWeakPtr(this); } 444 base::WeakPtr<ExtensionService> AsWeakPtr() { return base::AsWeakPtr(this); }
437 445
438 bool browser_terminating() const { return browser_terminating_; } 446 bool browser_terminating() const { return browser_terminating_; }
439 447
440 extensions::SharedModuleService* shared_module_service() { 448 extensions::SharedModuleService* shared_module_service() {
441 return shared_module_service_.get(); 449 return shared_module_service_.get();
442 } 450 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 503
496 // Handles sending notification that |extension| was loaded. 504 // Handles sending notification that |extension| was loaded.
497 void NotifyExtensionLoaded(const extensions::Extension* extension); 505 void NotifyExtensionLoaded(const extensions::Extension* extension);
498 506
499 // Handles sending notification that |extension| was unloaded. 507 // Handles sending notification that |extension| was unloaded.
500 void NotifyExtensionUnloaded( 508 void NotifyExtensionUnloaded(
501 const extensions::Extension* extension, 509 const extensions::Extension* extension,
502 extensions::UnloadedExtensionInfo::Reason reason); 510 extensions::UnloadedExtensionInfo::Reason reason);
503 511
504 // Common helper to finish installing the given extension. 512 // Common helper to finish installing the given extension.
505 void FinishInstallation(const extensions::Extension* extension); 513 void FinishInstallation(const extensions::Extension* extension,
514 bool was_ephemeral);
benwells 2014/05/27 01:42:56 What is |was_ephemeral| if it wasn't installed at
tmdiep 2014/05/27 01:58:54 It should be false. I'll add a comment.
506 515
507 // Updates the |extension|'s active permission set to include only permissions 516 // Updates the |extension|'s active permission set to include only permissions
508 // currently requested by the extension and all the permissions required by 517 // currently requested by the extension and all the permissions required by
509 // the extension. 518 // the extension.
510 void UpdateActivePermissions(const extensions::Extension* extension); 519 void UpdateActivePermissions(const extensions::Extension* extension);
511 520
512 // Disables the extension if the privilege level has increased 521 // Disables the extension if the privilege level has increased
513 // (e.g., due to an upgrade). 522 // (e.g., due to an upgrade).
514 void CheckPermissionsIncrease(const extensions::Extension* extension, 523 void CheckPermissionsIncrease(const extensions::Extension* extension,
515 bool is_extension_installed); 524 bool is_extension_installed);
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 711 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
703 GreylistedExtensionDisabled); 712 GreylistedExtensionDisabled);
704 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 713 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
705 GreylistDontEnableManuallyDisabled); 714 GreylistDontEnableManuallyDisabled);
706 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 715 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
707 GreylistUnknownDontChange); 716 GreylistUnknownDontChange);
708 DISALLOW_COPY_AND_ASSIGN(ExtensionService); 717 DISALLOW_COPY_AND_ASSIGN(ExtensionService);
709 }; 718 };
710 719
711 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 720 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698