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

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

Issue 8488012: Fix for management API related to escalated permissions disabled extensions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased again Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_MANAGEMENT_API_H__ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__
7 #pragma once 7 #pragma once
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "chrome/browser/extensions/extension_function.h" 10 #include "chrome/browser/extensions/extension_function.h"
11 #include "chrome/browser/extensions/extension_install_ui.h"
11 #include "content/public/browser/notification_observer.h" 12 #include "content/public/browser/notification_observer.h"
12 #include "content/public/browser/notification_registrar.h" 13 #include "content/public/browser/notification_registrar.h"
13 14
14 class ExtensionService; 15 class ExtensionService;
15 16
16 class ExtensionManagementFunction : public SyncExtensionFunction { 17 class ExtensionManagementFunction : public SyncExtensionFunction {
17 protected: 18 protected:
18 ExtensionService* service(); 19 ExtensionService* service();
19 }; 20 };
20 21
22 class AsyncExtensionManagementFunction : public AsyncExtensionFunction {
23 protected:
24 ExtensionService* service();
25 };
26
21 class GetAllExtensionsFunction : public ExtensionManagementFunction { 27 class GetAllExtensionsFunction : public ExtensionManagementFunction {
22 virtual ~GetAllExtensionsFunction() {} 28 virtual ~GetAllExtensionsFunction() {}
23 virtual bool RunImpl() OVERRIDE; 29 virtual bool RunImpl() OVERRIDE;
24 DECLARE_EXTENSION_FUNCTION_NAME("management.getAll"); 30 DECLARE_EXTENSION_FUNCTION_NAME("management.getAll");
25 }; 31 };
26 32
27 class GetExtensionByIdFunction : public ExtensionManagementFunction { 33 class GetExtensionByIdFunction : public ExtensionManagementFunction {
28 virtual ~GetExtensionByIdFunction() {} 34 virtual ~GetExtensionByIdFunction() {}
29 virtual bool RunImpl() OVERRIDE; 35 virtual bool RunImpl() OVERRIDE;
30 DECLARE_EXTENSION_FUNCTION_NAME("management.get"); 36 DECLARE_EXTENSION_FUNCTION_NAME("management.get");
(...skipping 16 matching lines...) Expand all
47 DECLARE_EXTENSION_FUNCTION_NAME( 53 DECLARE_EXTENSION_FUNCTION_NAME(
48 "management.getPermissionWarningsByManifest"); 54 "management.getPermissionWarningsByManifest");
49 }; 55 };
50 56
51 class LaunchAppFunction : public ExtensionManagementFunction { 57 class LaunchAppFunction : public ExtensionManagementFunction {
52 virtual ~LaunchAppFunction() {} 58 virtual ~LaunchAppFunction() {}
53 virtual bool RunImpl() OVERRIDE; 59 virtual bool RunImpl() OVERRIDE;
54 DECLARE_EXTENSION_FUNCTION_NAME("management.launchApp"); 60 DECLARE_EXTENSION_FUNCTION_NAME("management.launchApp");
55 }; 61 };
56 62
57 class SetEnabledFunction : public ExtensionManagementFunction { 63 class SetEnabledFunction : public AsyncExtensionManagementFunction,
58 virtual ~SetEnabledFunction() {} 64 public ExtensionInstallUI::Delegate {
65 public:
66 SetEnabledFunction();
67 virtual ~SetEnabledFunction();
59 virtual bool RunImpl() OVERRIDE; 68 virtual bool RunImpl() OVERRIDE;
69
70 protected:
71 // ExtensionInstalUI::Delegate.
72 virtual void InstallUIProceed() OVERRIDE;
73 virtual void InstallUIAbort(bool user_initiated) OVERRIDE;
74
75 private:
76 std::string extension_id_;
77
78 // Used for prompting to re-enable items with permissions escalation updates.
79 scoped_ptr<ExtensionInstallUI> install_ui_;
80
60 DECLARE_EXTENSION_FUNCTION_NAME("management.setEnabled"); 81 DECLARE_EXTENSION_FUNCTION_NAME("management.setEnabled");
61 }; 82 };
62 83
63 class UninstallFunction : public ExtensionManagementFunction { 84 class UninstallFunction : public ExtensionManagementFunction {
64 virtual ~UninstallFunction() {} 85 virtual ~UninstallFunction() {}
65 virtual bool RunImpl() OVERRIDE; 86 virtual bool RunImpl() OVERRIDE;
66 DECLARE_EXTENSION_FUNCTION_NAME("management.uninstall"); 87 DECLARE_EXTENSION_FUNCTION_NAME("management.uninstall");
67 }; 88 };
68 89
69 class ExtensionManagementEventRouter : public content::NotificationObserver { 90 class ExtensionManagementEventRouter : public content::NotificationObserver {
(...skipping 10 matching lines...) Expand all
80 const content::NotificationDetails& details) OVERRIDE; 101 const content::NotificationDetails& details) OVERRIDE;
81 102
82 content::NotificationRegistrar registrar_; 103 content::NotificationRegistrar registrar_;
83 104
84 Profile* profile_; 105 Profile* profile_;
85 106
86 DISALLOW_COPY_AND_ASSIGN(ExtensionManagementEventRouter); 107 DISALLOW_COPY_AND_ASSIGN(ExtensionManagementEventRouter);
87 }; 108 };
88 109
89 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__ 110 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_install_dialog.cc ('k') | chrome/browser/extensions/extension_management_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698