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

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

Issue 11299035: Support manual (white|black)list, previewing and allowing after interstitial (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix bad text in generated_resources.grd and rebase to ToT Created 7 years, 11 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) 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_MANAGED_MODE_MANAGED_MODE_H_ 5 #ifndef CHROME_BROWSER_MANAGED_MODE_MANAGED_MODE_H_
6 #define CHROME_BROWSER_MANAGED_MODE_MANAGED_MODE_H_ 6 #define CHROME_BROWSER_MANAGED_MODE_MANAGED_MODE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 10 matching lines...) Expand all
21 class Browser; 21 class Browser;
22 template<typename T> 22 template<typename T>
23 struct DefaultSingletonTraits; 23 struct DefaultSingletonTraits;
24 class ManagedModeSiteList; 24 class ManagedModeSiteList;
25 class ManagedModeURLFilter; 25 class ManagedModeURLFilter;
26 class PrefChangeRegistrar; 26 class PrefChangeRegistrar;
27 class PrefServiceSimple; 27 class PrefServiceSimple;
28 class PrefServiceSyncable; 28 class PrefServiceSyncable;
29 class Profile; 29 class Profile;
30 30
31 namespace policy{
32 class URLBlacklist;
33 }
34
31 // Managed mode allows one person to manage the Chrome experience for another 35 // Managed mode allows one person to manage the Chrome experience for another
32 // person by pre-configuring and then locking a managed User profile. 36 // person by pre-configuring and then locking a managed User profile.
33 // The ManagedMode class provides methods to check whether the browser is in 37 // The ManagedMode class provides methods to check whether the browser is in
34 // managed mode, and to attempt to enter or leave managed mode. 38 // managed mode, and to attempt to enter or leave managed mode.
35 // Except where otherwise noted, this class should be used on the UI thread. 39 // Except where otherwise noted, this class should be used on the UI thread.
36 class ManagedMode : public chrome::BrowserListObserver, 40 class ManagedMode : public chrome::BrowserListObserver,
37 public extensions::ManagementPolicy::Provider, 41 public extensions::ManagementPolicy::Provider,
38 public content::NotificationObserver { 42 public content::NotificationObserver {
39 public: 43 public:
40 typedef base::Callback<void(bool)> EnterCallback; 44 typedef base::Callback<void(bool)> EnterCallback;
45 typedef base::ListValue URLPatternList;
41 46
42 static void RegisterPrefs(PrefServiceSimple* prefs); 47 static void RegisterPrefs(PrefServiceSimple* prefs);
43 static void RegisterUserPrefs(PrefServiceSyncable* prefs); 48 static void RegisterUserPrefs(PrefServiceSyncable* prefs);
44 49
45 // Initializes the singleton, setting the managed_profile_. Must be called 50 // Initializes the singleton, setting the managed_profile_. Must be called
46 // after g_browser_process and the LocalState have been created. 51 // after g_browser_process and the LocalState have been created.
47 static void Init(Profile* profile); 52 static void Init(Profile* profile);
48 static bool IsInManagedMode(); 53 static bool IsInManagedMode();
49 54
50 // Calls |callback| with the argument true iff managed mode was entered 55 // Calls |callback| with the argument true iff managed mode was entered
51 // sucessfully. 56 // sucessfully.
52 static void EnterManagedMode(Profile* profile, const EnterCallback& callback); 57 static void EnterManagedMode(Profile* profile, const EnterCallback& callback);
53 static void LeaveManagedMode(); 58 static void LeaveManagedMode();
54 59
55 // Returns the URL filter for the IO thread, for filtering network requests 60 // Returns the URL filter for the IO thread, for filtering network requests
56 // (in ChromeNetworkDelegate). 61 // (in ChromeNetworkDelegate).
57 // This method should only be called on the IO thread. 62 // This method should only be called on the IO thread.
58 static const ManagedModeURLFilter* GetURLFilterForIOThread(); 63 static const ManagedModeURLFilter* GetURLFilterForIOThread();
59 64
60 // Returns the URL filter for the UI thread, for filtering navigations and 65 // Returns the URL filter for the UI thread, for filtering navigations and
61 // classifying sites in the history view. 66 // classifying sites in the history view.
62 // This method should only be called on the UI thread. 67 // This method should only be called on the UI thread.
63 static const ManagedModeURLFilter* GetURLFilterForUIThread(); 68 static const ManagedModeURLFilter* GetURLFilterForUIThread();
64 69
70 // The functions that handle manual whitelists use |url_pattern| or lists
71 // of "url patterns". An "url pattern" is a pattern in the format used by the
72 // URLBlacklist filter. A description of the format used can be found here:
Bernhard Bauer 2013/01/07 12:34:19 Nit: policy::URLBacklist is the fully qualified cl
Sergiu 2013/01/07 16:25:05 Done.
73 // http://dev.chromium.org/administrators/url-blacklist-filter-format
74
75 // Checks if the |url_pattern| is in the manual whitelist.
76 static bool IsInManualList(const bool isWhitelist,
Pam (message me for reviews) 2013/01/07 13:00:16 Style nit: is_whitelist (also below) Comment nit:
Sergiu 2013/01/07 16:25:05 Done.
77 const std::string& url_pattern);
78
79 // Appends |list| to the manual white/black list (according to |isWhitelist|)
80 // both in URL filter and in preferences.
81 static void AddToManualList(const bool isWhitelist,
82 const URLPatternList& list);
83
84 // Removes |list| from the manual white/black list (according to
85 // |isWhitelist|) both in URL filter and in preferences.
86 static void RemoveFromManualList(const bool isWhitelist,
87 const URLPatternList& list);
88
89 // Updates the whitelist and the blacklist from the prefs.
90 static void UpdateWhitelist();
Pam (message me for reviews) 2013/01/07 13:00:16 If this updates both the white- and blacklists, it
Sergiu 2013/01/07 16:25:05 Done, renamed to UpdateManualLists to fit with the
91
92 // Returns the profile blacklist.
93 static scoped_ptr<URLPatternList> GetBlacklist();
94
65 // ExtensionManagementPolicy::Provider implementation: 95 // ExtensionManagementPolicy::Provider implementation:
66 virtual std::string GetDebugPolicyProviderName() const OVERRIDE; 96 virtual std::string GetDebugPolicyProviderName() const OVERRIDE;
67 virtual bool UserMayLoad(const extensions::Extension* extension, 97 virtual bool UserMayLoad(const extensions::Extension* extension,
68 string16* error) const OVERRIDE; 98 string16* error) const OVERRIDE;
69 virtual bool UserMayModifySettings(const extensions::Extension* extension, 99 virtual bool UserMayModifySettings(const extensions::Extension* extension,
70 string16* error) const OVERRIDE; 100 string16* error) const OVERRIDE;
71 101
72 // chrome::BrowserListObserver implementation: 102 // chrome::BrowserListObserver implementation:
73 virtual void OnBrowserAdded(Browser* browser) OVERRIDE; 103 virtual void OnBrowserAdded(Browser* browser) OVERRIDE;
74 virtual void OnBrowserRemoved(Browser* browser) OVERRIDE; 104 virtual void OnBrowserRemoved(Browser* browser) OVERRIDE;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 // testing). 155 // testing).
126 virtual void SetInManagedMode(Profile* newly_managed_profile); 156 virtual void SetInManagedMode(Profile* newly_managed_profile);
127 157
128 // Returns a list of all installed and enabled site lists in the current 158 // Returns a list of all installed and enabled site lists in the current
129 // managed profile. 159 // managed profile.
130 // This method should only be called if managed mode is active. 160 // This method should only be called if managed mode is active.
131 ScopedVector<ManagedModeSiteList> GetActiveSiteLists(); 161 ScopedVector<ManagedModeSiteList> GetActiveSiteLists();
132 162
133 void OnDefaultFilteringBehaviorChanged(); 163 void OnDefaultFilteringBehaviorChanged();
134 164
135 void UpdateWhitelist(); 165 void UpdateWhitelistImpl();
166
167 // Returns a copy of the manual whitelist which is stored in each profile.
168 scoped_ptr<URLPatternList> GetWhitelist();
169
170 void RemoveFromManualListImpl(const bool isWhitelist,
171 const URLPatternList& whitelist);
172
173 // Adds the |url_pattern| to the manual lists in the URL filter. This is used
174 // by AddToManualListImpl().
175 static void AddURLPatternToManualList(const bool isWhitelist,
Bernhard Bauer 2013/01/07 12:34:19 Can you move this method to an anonymous namespace
Sergiu 2013/01/07 16:25:05 It shouldn't have been static at all, made it just
176 const std::string& url_pattern);
177
178 void AddToManualListImpl(const bool isWhitelist,
179 const URLPatternList& whitelist);
180
181 bool IsInManualListImpl(const bool isWhitelist,
182 const std::string& url_pattern);
136 183
137 content::NotificationRegistrar registrar_; 184 content::NotificationRegistrar registrar_;
138 scoped_ptr<PrefChangeRegistrar> pref_change_registrar_; 185 scoped_ptr<PrefChangeRegistrar> pref_change_registrar_;
139 186
140 scoped_ptr<URLFilterContext> io_url_filter_context_; 187 scoped_ptr<URLFilterContext> io_url_filter_context_;
141 scoped_ptr<URLFilterContext> ui_url_filter_context_; 188 scoped_ptr<URLFilterContext> ui_url_filter_context_;
142 189
143 std::set<Browser*> browsers_to_close_; 190 std::set<Browser*> browsers_to_close_;
144 std::vector<EnterCallback> callbacks_; 191 std::vector<EnterCallback> callbacks_;
145 192
146 DISALLOW_COPY_AND_ASSIGN(ManagedMode); 193 DISALLOW_COPY_AND_ASSIGN(ManagedMode);
147 }; 194 };
148 195
149 #endif // CHROME_BROWSER_MANAGED_MODE_MANAGED_MODE_H_ 196 #endif // CHROME_BROWSER_MANAGED_MODE_MANAGED_MODE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698