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

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: Removing default in switch. Created 8 years 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/prefs/public/pref_change_registrar.h" 8 #include "base/prefs/public/pref_change_registrar.h"
9 #include "base/sequenced_task_runner.h" 9 #include "base/sequenced_task_runner.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/policy/url_blacklist_manager.h"
16 #include "chrome/browser/prefs/pref_service.h" 16 #include "chrome/browser/prefs/pref_service.h"
17 #include "chrome/browser/prefs/scoped_user_pref_update.h"
17 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/browser/ui/browser.h" 19 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/browser_list.h" 20 #include "chrome/browser/ui/browser_list.h"
20 #include "chrome/browser/ui/browser_window.h" 21 #include "chrome/browser/ui/browser_window.h"
21 #include "chrome/common/chrome_notification_types.h" 22 #include "chrome/common/chrome_notification_types.h"
22 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/extensions/extension_set.h" 24 #include "chrome/common/extensions/extension_set.h"
24 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.h"
25 #include "content/public/browser/browser_thread.h" 26 #include "content/public/browser/browser_thread.h"
26 #include "content/public/browser/notification_service.h" 27 #include "content/public/browser/notification_service.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 scoped_ptr<ListValue> blacklist) { 69 scoped_ptr<ListValue> blacklist) {
69 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 70 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
70 task_runner_->PostTask(FROM_HERE, 71 task_runner_->PostTask(FROM_HERE,
71 base::Bind(&ManagedModeURLFilter::SetManualLists, 72 base::Bind(&ManagedModeURLFilter::SetManualLists,
72 base::Unretained(&url_filter_), 73 base::Unretained(&url_filter_),
73 base::Passed(&whitelist), 74 base::Passed(&whitelist),
74 base::Passed(&blacklist), 75 base::Passed(&blacklist),
75 base::Bind(&base::DoNothing))); 76 base::Bind(&base::DoNothing)));
76 } 77 }
77 78
78 void AddStringToManualWhitelist(const std::string& url) { 79 void AddURLPatternToManualWhitelist(const std::string& url) {
Pam (message me for reviews) 2012/12/06 15:11:56 Use url_pattern for the argument, to match the hea
Sergiu 2013/01/04 15:44:07 Done.
79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 80 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
80 task_runner_->PostTask(FROM_HERE, 81 task_runner_->PostTask(FROM_HERE,
81 base::Bind( 82 base::Bind(&ManagedModeURLFilter::AddURLPatternToManualWhitelist,
82 &ManagedModeURLFilter::AddStringToManualWhitelist, 83 base::Unretained(&url_filter_),
83 base::Unretained(&url_filter_), 84 url,
84 url, 85 base::Bind(&base::DoNothing)));
85 base::Bind(&base::DoNothing)));
86 } 86 }
87 87
88 void AddStringToManualBlacklist(const std::string& url) { 88 void AddURLPatternToManualBlacklist(const std::string& url) {
89 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 89 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
90 task_runner_->PostTask(FROM_HERE, 90 task_runner_->PostTask(FROM_HERE,
91 base::Bind( 91 base::Bind(&ManagedModeURLFilter::AddURLPatternToManualBlacklist,
92 &ManagedModeURLFilter::AddStringToManualBlacklist, 92 base::Unretained(&url_filter_),
93 base::Unretained(&url_filter_), 93 url,
94 url, 94 base::Bind(&base::DoNothing)));
95 base::Bind(&base::DoNothing)));
96 } 95 }
97 96
98 void ShutdownOnUIThread() { 97 void ShutdownOnUIThread() {
99 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 98 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
100 bool result = task_runner_->DeleteSoon(FROM_HERE, this); 99 bool result = task_runner_->DeleteSoon(FROM_HERE, this);
101 DCHECK(result); 100 DCHECK(result);
102 } 101 }
103 102
104 private: 103 private:
105 ManagedModeURLFilter url_filter_; 104 ManagedModeURLFilter url_filter_;
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 254
256 return (*sites.begin())->category_id; 255 return (*sites.begin())->category_id;
257 } 256 }
258 257
259 // static 258 // static
260 void ManagedMode::GetCategoryNames(CategoryList* list) { 259 void ManagedMode::GetCategoryNames(CategoryList* list) {
261 ManagedModeSiteList::GetCategoryNames(list); 260 ManagedModeSiteList::GetCategoryNames(list);
262 }; 261 };
263 262
264 // static 263 // static
265 scoped_ptr<base::ListValue> ManagedMode::GetWhitelist() { 264 void ManagedMode::AddToManualWhitelist(const base::ListValue& whitelist) {
266 // XXX Is this ok? GetList returns a const and we need non-const 265 GetInstance()->AddToManualWhitelistImpl(whitelist);
267 return scoped_ptr<base::ListValue>( 266 }
268 GetInstance()->managed_profile_->GetPrefs()->GetList( 267
269 prefs::kManagedModeWhitelist)->DeepCopy()).Pass(); 268 void ManagedMode::AddToManualWhitelistImpl(const base::ListValue& whitelist) {
269 ListPrefUpdate pref_update(managed_profile_->GetPrefs(),
270 prefs::kManagedModeWhitelist);
271 ListValue* pref_whitelist = pref_update.Get();
272
273 for (size_t i = 0; i < whitelist.GetSize(); ++i) {
274 std::string url_pattern;
275 whitelist.GetString(i, &url_pattern);
276
277 if (!IsInManualWhitelist(url_pattern)) {
278 pref_whitelist->AppendString(url_pattern);
279 AddURLPatternToManualWhitelist(url_pattern);
280 }
281 }
270 } 282 }
271 283
272 // static 284 // static
273 void ManagedMode::SetWhitelist(base::ListValue* whitelist) { 285 bool ManagedMode::IsInManualWhitelist(const std::string& url_pattern) {
274 GetInstance()->managed_profile_->GetPrefs()->Set( 286 return GetInstance()->IsInManualWhitelistImpl(url_pattern);
275 prefs::kManagedModeWhitelist, *whitelist); 287 }
288
289 bool ManagedMode::IsInManualWhitelistImpl(const std::string& url_pattern) {
290 StringValue pattern(url_pattern);
291 const ListValue* list = managed_profile_->GetPrefs()->GetList(
292 prefs::kManagedModeWhitelist);
293 return list->Find(pattern) != list->end();
276 } 294 }
277 295
278 // static 296 // static
279 scoped_ptr<base::ListValue> ManagedMode::GetBlacklist() { 297 scoped_ptr<base::ListValue> ManagedMode::GetBlacklist() {
280 return scoped_ptr<base::ListValue>( 298 return scoped_ptr<base::ListValue>(
281 GetInstance()->managed_profile_->GetPrefs()->GetList( 299 GetInstance()->managed_profile_->GetPrefs()->GetList(
282 prefs::kManagedModeBlacklist)->DeepCopy()).Pass(); 300 prefs::kManagedModeBlacklist)->DeepCopy()).Pass();
283 } 301 }
284 302
285 std::string ManagedMode::GetDebugPolicyProviderName() const { 303 std::string ManagedMode::GetDebugPolicyProviderName() const {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 ui_url_filter_context_->SetDefaultFilteringBehavior(behavior); 530 ui_url_filter_context_->SetDefaultFilteringBehavior(behavior);
513 } 531 }
514 532
515 void ManagedMode::UpdateWhitelist() { 533 void ManagedMode::UpdateWhitelist() {
516 io_url_filter_context_->LoadWhitelists(GetActiveSiteLists()); 534 io_url_filter_context_->LoadWhitelists(GetActiveSiteLists());
517 ui_url_filter_context_->LoadWhitelists(GetActiveSiteLists()); 535 ui_url_filter_context_->LoadWhitelists(GetActiveSiteLists());
518 io_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist()); 536 io_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist());
519 ui_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist()); 537 ui_url_filter_context_->LoadManualLists(GetWhitelist(), GetBlacklist());
520 } 538 }
521 539
522 void ManagedMode::AddStringToManualWhitelist(const std::string& url) { 540 scoped_ptr<base::ListValue> ManagedMode::GetWhitelist() {
523 GetInstance()->io_url_filter_context_->AddStringToManualWhitelist(url); 541 return make_scoped_ptr(
524 GetInstance()->ui_url_filter_context_->AddStringToManualWhitelist(url); 542 managed_profile_->GetPrefs()->GetList(
543 prefs::kManagedModeWhitelist)->DeepCopy());
525 } 544 }
526 545
527 void ManagedMode::AddStringToManualBlacklist(const std::string& url) { 546
528 GetInstance()->io_url_filter_context_->AddStringToManualBlacklist(url); 547 void ManagedMode::AddURLPatternToManualWhitelist(
529 GetInstance()->ui_url_filter_context_->AddStringToManualBlacklist(url); 548 const std::string& url_pattern) {
549 GetInstance()->io_url_filter_context_->AddURLPatternToManualWhitelist(
550 url_pattern);
551 GetInstance()->ui_url_filter_context_->AddURLPatternToManualWhitelist(
552 url_pattern);
530 } 553 }
554
555 void ManagedMode::AddURLPatternToManualBlacklist(
556 const std::string& url_pattern) {
557 GetInstance()->io_url_filter_context_->AddURLPatternToManualBlacklist(
558 url_pattern);
559 GetInstance()->ui_url_filter_context_->AddURLPatternToManualBlacklist(
560 url_pattern);
561 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698