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

Side by Side Diff: chrome/browser/ui/webui/options/website_settings_handler.cc

Issue 547433002: Add many more content settings to be set in the Website Settings options (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: MultipleAutomaticDownloads -> Downloads Created 6 years, 3 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
« no previous file with comments | « chrome/browser/resources/options/website_settings_edit_site.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/ui/webui/options/website_settings_handler.h" 5 #include "chrome/browser/ui/webui/options/website_settings_handler.h"
6 6
7 #include "chrome/browser/content_settings/content_settings_utils.h" 7 #include "chrome/browser/content_settings/content_settings_utils.h"
8 #include "chrome/browser/content_settings/host_content_settings_map.h" 8 #include "chrome/browser/content_settings/host_content_settings_map.h"
9 #include "chrome/browser/extensions/extension_service.h" 9 #include "chrome/browser/extensions/extension_service.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 20 matching lines...) Expand all
31 using power::OriginPowerMapFactory; 31 using power::OriginPowerMapFactory;
32 32
33 namespace { 33 namespace {
34 34
35 const char kBattery[] = "battery"; 35 const char kBattery[] = "battery";
36 const int kHttpPort = 80; 36 const int kHttpPort = 80;
37 const int kHttpsPort = 443; 37 const int kHttpsPort = 443;
38 const char kPreferencesSource[] = "preference"; 38 const char kPreferencesSource[] = "preference";
39 const char kStorage[] = "storage"; 39 const char kStorage[] = "storage";
40 const ContentSettingsType kValidTypes[] = { 40 const ContentSettingsType kValidTypes[] = {
41 CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
42 CONTENT_SETTINGS_TYPE_COOKIES,
41 CONTENT_SETTINGS_TYPE_GEOLOCATION, 43 CONTENT_SETTINGS_TYPE_GEOLOCATION,
44 CONTENT_SETTINGS_TYPE_IMAGES,
45 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
42 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 46 CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
43 CONTENT_SETTINGS_TYPE_MEDIASTREAM, 47 CONTENT_SETTINGS_TYPE_MEDIASTREAM,
44 CONTENT_SETTINGS_TYPE_COOKIES}; 48 CONTENT_SETTINGS_TYPE_PLUGINS,
49 CONTENT_SETTINGS_TYPE_POPUPS};
45 const size_t kValidTypesLength = arraysize(kValidTypes); 50 const size_t kValidTypesLength = arraysize(kValidTypes);
46 51
47 } // namespace 52 } // namespace
48 53
49 namespace options { 54 namespace options {
50 55
51 WebsiteSettingsHandler::WebsiteSettingsHandler() 56 WebsiteSettingsHandler::WebsiteSettingsHandler()
52 : observer_(this), 57 : observer_(this),
53 weak_ptr_factory_(this) { 58 weak_ptr_factory_(this) {
54 } 59 }
55 60
56 WebsiteSettingsHandler::~WebsiteSettingsHandler() { 61 WebsiteSettingsHandler::~WebsiteSettingsHandler() {
57 } 62 }
58 63
59 void WebsiteSettingsHandler::GetLocalizedValues( 64 void WebsiteSettingsHandler::GetLocalizedValues(
60 base::DictionaryValue* localized_strings) { 65 base::DictionaryValue* localized_strings) {
61 DCHECK(localized_strings); 66 DCHECK(localized_strings);
62 67
63 static OptionsStringResource resources[] = { 68 static OptionsStringResource resources[] = {
64 {"websitesOptionsPageTabTitle", IDS_WEBSITE_SETTINGS_TITLE}, 69 {"websitesOptionsPageTabTitle", IDS_WEBSITE_SETTINGS_TITLE},
65 {"websitesSettingsEditPage", IDS_WEBSITE_SETTINGS_EDIT_TITLE}, 70 {"websitesSettingsEditPage", IDS_WEBSITE_SETTINGS_EDIT_TITLE},
66 {"websitesManage", IDS_WEBSITE_SETTINGS_MANAGE}, 71 {"websitesManage", IDS_WEBSITE_SETTINGS_MANAGE},
67 {"websitesSearch", IDS_WEBSITE_SETTINGS_SEARCH_ORIGINS}, 72 {"websitesSearch", IDS_WEBSITE_SETTINGS_SEARCH_ORIGINS},
68 {"websitesLabelGeolocation", IDS_WEBSITE_SETTINGS_TYPE_LOCATION}, 73 {"websitesLabelLocation", IDS_WEBSITE_SETTINGS_TYPE_LOCATION},
69 {"websitesLabelMediaStream", IDS_WEBSITE_SETTINGS_TYPE_MEDIASTREAM}, 74 {"websitesLabelMediaStream", IDS_WEBSITE_SETTINGS_TYPE_MEDIASTREAM},
70 {"websitesLabelNotifications", IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS}, 75 {"websitesLabelNotifications", IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS},
71 {"websitesLabelStorage", IDS_WEBSITE_SETTINGS_TYPE_STORAGE}, 76 {"websitesLabelStorage", IDS_WEBSITE_SETTINGS_TYPE_STORAGE},
72 {"websitesLabelBattery", IDS_WEBSITE_SETTINGS_TYPE_BATTERY}, 77 {"websitesLabelBattery", IDS_WEBSITE_SETTINGS_TYPE_BATTERY},
73 {"websitesCookiesDescription", IDS_WEBSITE_SETTINGS_COOKIES_DESCRIPTION}, 78 {"websitesCookiesDescription", IDS_WEBSITE_SETTINGS_COOKIES_DESCRIPTION},
74 {"websitesLocationDescription", 79 {"websitesLocationDescription",
75 IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION}, 80 IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION},
76 {"websitesMediastreamDescription", 81 {"websitesMediaStreamDescription",
77 IDS_WEBSITE_SETTINGS_MEDIASTREAM_DESCRIPTION}, 82 IDS_WEBSITE_SETTINGS_MEDIASTREAM_DESCRIPTION},
78 {"websitesNotificationsDescription", 83 {"websitesNotificationsDescription",
79 IDS_WEBSITE_SETTINGS_NOTIFICATIONS_DESCRIPTION}, 84 IDS_WEBSITE_SETTINGS_NOTIFICATIONS_DESCRIPTION},
85 {"websitesDownloadsDescription",
86 IDS_WEBSITE_SETTINGS_DOWNLOAD_DESCRIPTION},
87 {"websitesPluginsDescription", IDS_WEBSITE_SETTINGS_PLUGINS_DESCRIPTION},
88 {"websitesPopupsDescription", IDS_WEBSITE_SETTINGS_POPUPS_DESCRIPTION},
89 {"websitesJavascriptDescription",
90 IDS_WEBSITE_SETTINGS_JAVASCRIPT_DESCRIPTION},
91 {"websitesImagesDescription", IDS_WEBSITE_SETTINGS_IMAGES_DESCRIPTION},
80 {"websitesButtonClear", IDS_WEBSITE_SETTINGS_STORAGE_CLEAR_BUTTON}, 92 {"websitesButtonClear", IDS_WEBSITE_SETTINGS_STORAGE_CLEAR_BUTTON},
81 {"websitesButtonStop", IDS_WEBSITE_SETTINGS_BATTERY_STOP_BUTTON}, 93 {"websitesButtonStop", IDS_WEBSITE_SETTINGS_BATTERY_STOP_BUTTON},
82 }; 94 };
83 95
84 RegisterStrings(localized_strings, resources, arraysize(resources)); 96 RegisterStrings(localized_strings, resources, arraysize(resources));
85 RegisterTitle( 97 RegisterTitle(
86 localized_strings, "websiteSettingsPage", IDS_WEBSITE_SETTINGS_TITLE); 98 localized_strings, "websiteSettingsPage", IDS_WEBSITE_SETTINGS_TITLE);
87 } 99 }
88 100
89 void WebsiteSettingsHandler::InitializeHandler() { 101 void WebsiteSettingsHandler::InitializeHandler() {
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 map->GetDefaultContentSetting(settings_type, NULL); 352 map->GetDefaultContentSetting(settings_type, NULL);
341 353
342 // Users are not allowed to be the source of the "ask" setting. It is an 354 // Users are not allowed to be the source of the "ask" setting. It is an
343 // ephemeral setting which is removed once the question is asked. 355 // ephemeral setting which is removed once the question is asked.
344 if (setting == CONTENT_SETTING_ASK && setting == default_value) 356 if (setting == CONTENT_SETTING_ASK && setting == default_value)
345 setting = CONTENT_SETTING_DEFAULT; 357 setting = CONTENT_SETTING_DEFAULT;
346 358
347 ContentSettingsPattern primary_pattern; 359 ContentSettingsPattern primary_pattern;
348 ContentSettingsPattern secondary_pattern; 360 ContentSettingsPattern secondary_pattern;
349 switch (settings_type) { 361 switch (settings_type) {
350 case CONTENT_SETTINGS_TYPE_COOKIES:
351 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
352 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
353 break;
354 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: 362 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS:
355 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); 363 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
356 secondary_pattern = ContentSettingsPattern::Wildcard(); 364 secondary_pattern = ContentSettingsPattern::Wildcard();
357 break; 365 break;
358 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
359 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
360 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
361 break;
362 case CONTENT_SETTINGS_TYPE_MEDIASTREAM: 366 case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
363 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); 367 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
364 secondary_pattern = ContentSettingsPattern::Wildcard(); 368 secondary_pattern = ContentSettingsPattern::Wildcard();
365 map->SetContentSetting(primary_pattern, 369 map->SetContentSetting(primary_pattern,
366 secondary_pattern, 370 secondary_pattern,
367 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, 371 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC,
368 std::string(), 372 std::string(),
369 setting); 373 setting);
370 map->SetContentSetting(primary_pattern, 374 map->SetContentSetting(primary_pattern,
371 secondary_pattern, 375 secondary_pattern,
372 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, 376 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
373 std::string(), 377 std::string(),
374 setting); 378 setting);
375 return; 379 return;
380 case CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS:
381 case CONTENT_SETTINGS_TYPE_COOKIES:
382 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
383 case CONTENT_SETTINGS_TYPE_IMAGES:
384 case CONTENT_SETTINGS_TYPE_JAVASCRIPT:
385 case CONTENT_SETTINGS_TYPE_PLUGINS:
386 case CONTENT_SETTINGS_TYPE_POPUPS:
387 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
388 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_);
389 break;
376 default: 390 default:
377 NOTREACHED() << "Content settings type not yet supported."; 391 NOTREACHED() << "Content settings type not yet supported.";
378 break; 392 return;
379 } 393 }
380 394
381 content_settings::SettingInfo info; 395 content_settings::SettingInfo info;
382 scoped_ptr<base::Value> v(map->GetWebsiteSetting( 396 scoped_ptr<base::Value> v(map->GetWebsiteSetting(
383 last_site_, last_site_, settings_type, std::string(), &info)); 397 last_site_, last_site_, settings_type, std::string(), &info));
384 map->SetNarrowestWebsiteSetting(primary_pattern, 398 map->SetNarrowestWebsiteSetting(primary_pattern,
385 secondary_pattern, 399 secondary_pattern,
386 settings_type, 400 settings_type,
387 std::string(), 401 std::string(),
388 setting, 402 setting,
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 // If extension is NULL, it was removed and we cannot look up its name. 621 // If extension is NULL, it was removed and we cannot look up its name.
608 if (!extension) 622 if (!extension)
609 return site_url.spec(); 623 return site_url.spec();
610 624
611 return extension->name(); 625 return extension->name();
612 } 626 }
613 return site_url.spec(); 627 return site_url.spec();
614 } 628 }
615 629
616 } // namespace options 630 } // namespace options
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/website_settings_edit_site.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698