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

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

Issue 11299035: Support manual (white|black)list, previewing and allowing after interstitial (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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) 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 #include "chrome/browser/managed_mode/managed_mode.h" 5 #include "chrome/browser/managed_mode/managed_mode.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/sequenced_task_runner.h" 8 #include "base/sequenced_task_runner.h"
9 #include "base/prefs/public/pref_change_registrar.h" 9 #include "base/prefs/public/pref_change_registrar.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/extensions/extension_service.h" 11 #include "chrome/browser/extensions/extension_service.h"
12 #include "chrome/browser/extensions/extension_system.h" 12 #include "chrome/browser/extensions/extension_system.h"
13 #include "chrome/browser/managed_mode/managed_mode_site_list.h" 13 #include "chrome/browser/managed_mode/managed_mode_site_list.h"
14 #include "chrome/browser/managed_mode/managed_mode_url_filter.h" 14 #include "chrome/browser/managed_mode/managed_mode_url_filter.h"
15 #include "chrome/browser/policy/url_blacklist_manager.h"
15 #include "chrome/browser/prefs/pref_service.h" 16 #include "chrome/browser/prefs/pref_service.h"
16 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/ui/browser.h" 18 #include "chrome/browser/ui/browser.h"
18 #include "chrome/browser/ui/browser_list.h" 19 #include "chrome/browser/ui/browser_list.h"
19 #include "chrome/browser/ui/browser_window.h" 20 #include "chrome/browser/ui/browser_window.h"
20 #include "chrome/common/chrome_notification_types.h" 21 #include "chrome/common/chrome_notification_types.h"
21 #include "chrome/common/chrome_switches.h" 22 #include "chrome/common/chrome_switches.h"
22 #include "chrome/common/pref_names.h" 23 #include "chrome/common/pref_names.h"
23 #include "content/public/browser/browser_thread.h" 24 #include "content/public/browser/browser_thread.h"
24 #include "content/public/browser/notification_service.h" 25 #include "content/public/browser/notification_service.h"
(...skipping 29 matching lines...) Expand all
54 55
55 void LoadWhitelists(ScopedVector<ManagedModeSiteList> site_lists) { 56 void LoadWhitelists(ScopedVector<ManagedModeSiteList> site_lists) {
56 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 57 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
57 task_runner_->PostTask(FROM_HERE, 58 task_runner_->PostTask(FROM_HERE,
58 base::Bind(&ManagedModeURLFilter::LoadWhitelists, 59 base::Bind(&ManagedModeURLFilter::LoadWhitelists,
59 base::Unretained(&url_filter_), 60 base::Unretained(&url_filter_),
60 base::Passed(&site_lists), 61 base::Passed(&site_lists),
61 base::Bind(&base::DoNothing))); 62 base::Bind(&base::DoNothing)));
62 } 63 }
63 64
65 void LoadManualLists(scoped_ptr<ListValue> whitelist,
66 scoped_ptr<ListValue> blacklist) {
67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
68 task_runner_->PostTask(FROM_HERE,
69 base::Bind(&ManagedModeURLFilter::SetManualLists,
70 base::Unretained(&url_filter_),
71 base::Passed(&whitelist),
72 base::Passed(&blacklist),
73 base::Bind(&base::DoNothing)));
74 }
75
76 void AddStringToManualWhitelist(const std::string& url) {
77 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
78 task_runner_->PostTask(FROM_HERE,
79 base::Bind(
80 &ManagedModeURLFilter::AddStringToManualWhitelist,
81 base::Unretained(&url_filter_),
82 url,
83 base::Bind(&base::DoNothing)));
84 }
85
86 void AddStringToManualBlacklist(const std::string& url) {
87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
88 task_runner_->PostTask(FROM_HERE,
89 base::Bind(
90 &ManagedModeURLFilter::AddStringToManualBlacklist,
91 base::Unretained(&url_filter_),
92 url,
93 base::Bind(&base::DoNothing)));
94 }
95
64 void ShutdownOnUIThread() { 96 void ShutdownOnUIThread() {
65 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 97 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
66 bool result = task_runner_->DeleteSoon(FROM_HERE, this); 98 bool result = task_runner_->DeleteSoon(FROM_HERE, this);
67 DCHECK(result); 99 DCHECK(result);
68 } 100 }
69 101
70 private: 102 private:
71 ManagedModeURLFilter url_filter_; 103 ManagedModeURLFilter url_filter_;
72 scoped_refptr<base::SequencedTaskRunner> task_runner_; 104 scoped_refptr<base::SequencedTaskRunner> task_runner_;
73 105
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 return CATEGORY_NOT_ON_LIST; 252 return CATEGORY_NOT_ON_LIST;
221 253
222 return (*sites.begin())->category_id; 254 return (*sites.begin())->category_id;
223 } 255 }
224 256
225 // static 257 // static
226 void ManagedMode::GetCategoryNames(CategoryList* list) { 258 void ManagedMode::GetCategoryNames(CategoryList* list) {
227 ManagedModeSiteList::GetCategoryNames(list); 259 ManagedModeSiteList::GetCategoryNames(list);
228 }; 260 };
229 261
262 // static
263 scoped_ptr<base::ListValue> ManagedMode::GetWhitelist() {
264 // XXX Is this ok? GetList returns a const and we need non-const
Bernhard Bauer 2012/11/16 15:04:46 Yes, it is (at least with this signature). We're p
265 return scoped_ptr<base::ListValue>(
Bernhard Bauer 2012/11/16 15:04:46 You can use make_scoped_ptr() here.
Sergiu 2012/11/26 14:48:08 Done.
266 GetInstance()->managed_profile_->GetPrefs()->GetList(
Bernhard Bauer 2012/11/16 15:04:46 I would prefer to have public static Foo() methods
Sergiu 2012/11/26 14:48:08 Done.
267 prefs::kManagedModeWhitelist)->DeepCopy()).Pass();
268 }
269
270 // static
271 void ManagedMode::SetWhitelist(base::ListValue* whitelist) {
272 GetInstance()->managed_profile_->GetPrefs()->Set(
273 prefs::kManagedModeWhitelist, *whitelist);
274 }
275
276 // static
277 scoped_ptr<base::ListValue> ManagedMode::GetBlacklist() {
278 return scoped_ptr<base::ListValue>(
279 GetInstance()->managed_profile_->GetPrefs()->GetList(
280 prefs::kManagedModeBlacklist)->DeepCopy()).Pass();
281 }
230 282
231 std::string ManagedMode::GetDebugPolicyProviderName() const { 283 std::string ManagedMode::GetDebugPolicyProviderName() const {
232 // Save the string space in official builds. 284 // Save the string space in official builds.
233 #ifdef NDEBUG 285 #ifdef NDEBUG
234 NOTREACHED(); 286 NOTREACHED();
235 return std::string(); 287 return std::string();
236 #else 288 #else
237 return "Managed Mode"; 289 return "Managed Mode";
238 #endif 290 #endif
239 } 291 }
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 } 485 }
434 486
435 void ManagedMode::UpdateWhitelist() { 487 void ManagedMode::UpdateWhitelist() {
436 DCHECK(managed_profile_); 488 DCHECK(managed_profile_);
437 ExtensionService* extension_service = 489 ExtensionService* extension_service =
438 extensions::ExtensionSystem::Get(managed_profile_)->extension_service(); 490 extensions::ExtensionSystem::Get(managed_profile_)->extension_service();
439 io_url_filter_context_->LoadWhitelists( 491 io_url_filter_context_->LoadWhitelists(
440 ManagedModeSiteList::GetActiveSiteLists(extension_service)); 492 ManagedModeSiteList::GetActiveSiteLists(extension_service));
441 ui_url_filter_context_->LoadWhitelists( 493 ui_url_filter_context_->LoadWhitelists(
442 ManagedModeSiteList::GetActiveSiteLists(extension_service)); 494 ManagedModeSiteList::GetActiveSiteLists(extension_service));
495 io_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist());
496 ui_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist());
443 } 497 }
498
499 void ManagedMode::AddStringToManualWhitelist(const std::string& url) {
500 GetInstance()->io_url_filter_context_->AddStringToManualWhitelist(url);
501 GetInstance()->ui_url_filter_context_->AddStringToManualWhitelist(url);
502 }
503
504 void ManagedMode::AddStringToManualBlacklist(const std::string& url) {
505 GetInstance()->io_url_filter_context_->AddStringToManualBlacklist(url);
506 GetInstance()->ui_url_filter_context_->AddStringToManualBlacklist(url);
507 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698