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

Side by Side Diff: chrome/browser/managed_mode/managed_user_service.h

Issue 13119011: Enable WebContents elevation for managed users. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Put ScopedExtensionElevation in its own file. Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_MANAGED_MODE_MANAGED_USER_SERVICE_H_ 5 #ifndef CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SERVICE_H_
6 #define CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SERVICE_H_ 6 #define CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SERVICE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 26 matching lines...) Expand all
37 MANUAL_NONE = 0, 37 MANUAL_NONE = 0,
38 MANUAL_ALLOW, 38 MANUAL_ALLOW,
39 MANUAL_BLOCK 39 MANUAL_BLOCK
40 }; 40 };
41 41
42 explicit ManagedUserService(Profile* profile); 42 explicit ManagedUserService(Profile* profile);
43 virtual ~ManagedUserService(); 43 virtual ~ManagedUserService();
44 44
45 bool ProfileIsManaged() const; 45 bool ProfileIsManaged() const;
46 46
47 // Deprecated. Use IsElevatedForWebContents() instead.
48 bool IsElevated() const;
49
50 // Returns the elevation state for specific WebContents. 47 // Returns the elevation state for specific WebContents.
51 bool IsElevatedForWebContents(const content::WebContents* web_contents) const; 48 bool IsElevatedForWebContents(const content::WebContents* web_contents) const;
52 49
53 static void RegisterUserPrefs(PrefRegistrySyncable* registry); 50 static void RegisterUserPrefs(PrefRegistrySyncable* registry);
54 51
55 // Returns the URL filter for the IO thread, for filtering network requests 52 // Returns the URL filter for the IO thread, for filtering network requests
56 // (in ManagedModeResourceThrottle). 53 // (in ManagedModeResourceThrottle).
57 scoped_refptr<const ManagedModeURLFilter> GetURLFilterForIOThread(); 54 scoped_refptr<const ManagedModeURLFilter> GetURLFilterForIOThread();
58 55
59 // Returns the URL filter for the UI thread, for filtering navigations and 56 // Returns the URL filter for the UI thread, for filtering navigations and
(...skipping 23 matching lines...) Expand all
83 ManualBehavior GetManualBehaviorForURL(const GURL& url); 80 ManualBehavior GetManualBehaviorForURL(const GURL& url);
84 81
85 // Sets the manual behavior for the given URL. 82 // Sets the manual behavior for the given URL.
86 void SetManualBehaviorForURLs(const std::vector<GURL>& url, 83 void SetManualBehaviorForURLs(const std::vector<GURL>& url,
87 ManualBehavior behavior); 84 ManualBehavior behavior);
88 85
89 // Returns all URLS on the given host that have exceptions. 86 // Returns all URLS on the given host that have exceptions.
90 void GetManualExceptionsForHost(const std::string& host, 87 void GetManualExceptionsForHost(const std::string& host,
91 std::vector<GURL>* urls); 88 std::vector<GURL>* urls);
92 89
93 // Deprecated. Use the CanSkipPassphraseDialog() method which requires a
94 // WebContents parameter instead.
95 bool CanSkipPassphraseDialog();
96
97 // Checks if the passphrase dialog can be skipped (the profile is already in 90 // Checks if the passphrase dialog can be skipped (the profile is already in
98 // elevated state for the given WebContents or the passphrase is empty). 91 // elevated state for the given WebContents or the passphrase is empty).
99 bool CanSkipPassphraseDialog(const content::WebContents* web_contents) const; 92 bool CanSkipPassphraseDialog(const content::WebContents* web_contents) const;
100 93
101 // Handles the request to authorize as the custodian of the managed user. 94 // Handles the request to authorize as the custodian of the managed user.
102 void RequestAuthorization(content::WebContents* web_contents, 95 void RequestAuthorization(content::WebContents* web_contents,
103 const PassphraseCheckedCallback& callback); 96 const PassphraseCheckedCallback& callback);
104 97
105 // Handles the request to authorize as the custodian of the managed user.
106 // Also determines the active web contents to be passed to the passphrase
107 // dialog.
108 void RequestAuthorizationUsingActiveWebContents(
109 Browser* browser,
110 const PassphraseCheckedCallback& callback);
111
112 // Set the elevation state for the profile.
113 void SetElevated(bool is_elevated);
114
115 // Add an elevation for a specific extension which allows the managed user to 98 // Add an elevation for a specific extension which allows the managed user to
116 // install/uninstall this specific extension. 99 // install/uninstall this specific extension.
117 void AddElevationForExtension(const std::string& extension_id); 100 void AddElevationForExtension(const std::string& extension_id);
118 101
119 // Remove the elevation for a specific extension. 102 // Remove the elevation for a specific extension.
120 void RemoveElevationForExtension(const std::string& extension_id); 103 void RemoveElevationForExtension(const std::string& extension_id);
121 104
122 // Initializes this object. This method does nothing if the profile is not 105 // Initializes this object. This method does nothing if the profile is not
123 // managed. 106 // managed.
124 void Init(); 107 void Init();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 // Updates the manual overrides for URLs in the URL filters when the 172 // Updates the manual overrides for URLs in the URL filters when the
190 // corresponding preference is changed. 173 // corresponding preference is changed.
191 void UpdateManualURLs(); 174 void UpdateManualURLs();
192 175
193 // Returns if the passphrase to authorize as the custodian is empty. 176 // Returns if the passphrase to authorize as the custodian is empty.
194 bool IsPassphraseEmpty() const; 177 bool IsPassphraseEmpty() const;
195 178
196 // Owns us via the ProfileKeyedService mechanism. 179 // Owns us via the ProfileKeyedService mechanism.
197 Profile* profile_; 180 Profile* profile_;
198 181
199 // If ManagedUserService is in an elevated state, a custodian user has
200 // authorized making changes (to install additional content packs, for
201 // example).
202 bool is_elevated_;
203
204 content::NotificationRegistrar registrar_; 182 content::NotificationRegistrar registrar_;
205 PrefChangeRegistrar pref_change_registrar_; 183 PrefChangeRegistrar pref_change_registrar_;
206 184
207 // Stores the extension ids of the extensions which currently can be modified 185 // Stores the extension ids of the extensions which currently can be modified
208 // by the managed user. 186 // by the managed user.
209 std::set<std::string> elevated_for_extensions_; 187 std::set<std::string> elevated_for_extensions_;
210 188
211 URLFilterContext url_filter_context_; 189 URLFilterContext url_filter_context_;
212 }; 190 };
213 191
214 #endif // CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SERVICE_H_ 192 #endif // CHROME_BROWSER_MANAGED_MODE_MANAGED_USER_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698