OLD | NEW |
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 "apps/app_window_registry.h" | 7 #include "apps/app_window_registry.h" |
8 #include "chrome/browser/content_settings/content_settings_utils.h" | 8 #include "chrome/browser/content_settings/content_settings_utils.h" |
9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
23 #include "ui/base/l10n/time_format.h" | 23 #include "ui/base/l10n/time_format.h" |
24 #include "ui/base/text/bytes_formatting.h" | 24 #include "ui/base/text/bytes_formatting.h" |
25 | 25 |
26 namespace { | 26 namespace { |
27 | 27 |
28 const int kHttpPort = 80; | 28 const int kHttpPort = 80; |
29 const int kHttpsPort = 443; | 29 const int kHttpsPort = 443; |
30 const char kPreferencesSource[] = "preference"; | 30 const char kPreferencesSource[] = "preference"; |
31 const char kStorage[] = "storage"; | 31 const char kStorage[] = "storage"; |
32 const ContentSettingsType kValidTypes[] = {CONTENT_SETTINGS_TYPE_GEOLOCATION, | 32 const ContentSettingsType kValidTypes[] = { |
33 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 33 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
34 CONTENT_SETTINGS_TYPE_MEDIASTREAM}; | 34 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| 35 CONTENT_SETTINGS_TYPE_MEDIASTREAM, |
| 36 CONTENT_SETTINGS_TYPE_COOKIES}; |
35 const size_t kValidTypesLength = arraysize(kValidTypes); | 37 const size_t kValidTypesLength = arraysize(kValidTypes); |
36 } // namespace | 38 } // namespace |
37 | 39 |
38 namespace options { | 40 namespace options { |
39 | 41 |
40 WebsiteSettingsHandler::WebsiteSettingsHandler() | 42 WebsiteSettingsHandler::WebsiteSettingsHandler() |
41 : observer_(this), weak_ptr_factory_(this) { | 43 : observer_(this), weak_ptr_factory_(this) { |
42 } | 44 } |
43 | 45 |
44 WebsiteSettingsHandler::~WebsiteSettingsHandler() { | 46 WebsiteSettingsHandler::~WebsiteSettingsHandler() { |
45 } | 47 } |
46 | 48 |
47 void WebsiteSettingsHandler::GetLocalizedValues( | 49 void WebsiteSettingsHandler::GetLocalizedValues( |
48 base::DictionaryValue* localized_strings) { | 50 base::DictionaryValue* localized_strings) { |
49 DCHECK(localized_strings); | 51 DCHECK(localized_strings); |
50 | 52 |
51 static OptionsStringResource resources[] = { | 53 static OptionsStringResource resources[] = { |
52 {"websitesOptionsPageTabTitle", IDS_WEBSITE_SETTINGS_TITLE}, | 54 {"websitesOptionsPageTabTitle", IDS_WEBSITE_SETTINGS_TITLE}, |
53 {"websitesSettingsEditPage", IDS_WEBSITE_SETTINGS_EDIT_TITLE}, | 55 {"websitesSettingsEditPage", IDS_WEBSITE_SETTINGS_EDIT_TITLE}, |
54 {"websitesManage", IDS_WEBSITE_SETTINGS_MANAGE}, | 56 {"websitesManage", IDS_WEBSITE_SETTINGS_MANAGE}, |
55 {"websitesSearch", IDS_WEBSITE_SETTINGS_SEARCH_ORIGINS}, | 57 {"websitesSearch", IDS_WEBSITE_SETTINGS_SEARCH_ORIGINS}, |
56 {"websitesLabelGeolocation", IDS_WEBSITE_SETTINGS_TYPE_LOCATION}, | 58 {"websitesLabelGeolocation", IDS_WEBSITE_SETTINGS_TYPE_LOCATION}, |
57 {"websitesLabelMediaStream", IDS_WEBSITE_SETTINGS_TYPE_MEDIASTREAM}, | 59 {"websitesLabelMediaStream", IDS_WEBSITE_SETTINGS_TYPE_MEDIASTREAM}, |
58 {"websitesLabelNotifications", IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS}, | 60 {"websitesLabelNotifications", IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS}, |
59 {"websitesLabelStorage", IDS_WEBSITE_SETTINGS_TYPE_STORAGE}, | 61 {"websitesLabelStorage", IDS_WEBSITE_SETTINGS_TYPE_STORAGE}, |
| 62 {"websitesCookiesDescription", IDS_WEBSITE_SETTINGS_COOKIES_DESCRIPTION}, |
60 {"websitesLocationDescription", | 63 {"websitesLocationDescription", |
61 IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION}, | 64 IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION}, |
62 {"websitesMediastreamDescription", | 65 {"websitesMediastreamDescription", |
63 IDS_WEBSITE_SETTINGS_MEDIASTREAM_DESCRIPTION}, | 66 IDS_WEBSITE_SETTINGS_MEDIASTREAM_DESCRIPTION}, |
64 {"websitesNotificationsDescription", | 67 {"websitesNotificationsDescription", |
65 IDS_WEBSITE_SETTINGS_NOTIFICATIONS_DESCRIPTION}, | 68 IDS_WEBSITE_SETTINGS_NOTIFICATIONS_DESCRIPTION}, |
66 {"websitesButtonClear", IDS_WEBSITE_SETTINGS_STORAGE_CLEAR_BUTTON}, | 69 {"websitesButtonClear", IDS_WEBSITE_SETTINGS_STORAGE_CLEAR_BUTTON}, |
67 }; | 70 }; |
68 | 71 |
69 RegisterStrings(localized_strings, resources, arraysize(resources)); | 72 RegisterStrings(localized_strings, resources, arraysize(resources)); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 map->GetDefaultContentSetting(settings_type, NULL); | 304 map->GetDefaultContentSetting(settings_type, NULL); |
302 | 305 |
303 // Users are not allowed to be the source of the "ask" setting. It is an | 306 // Users are not allowed to be the source of the "ask" setting. It is an |
304 // ephemeral setting which is removed once the question is asked. | 307 // ephemeral setting which is removed once the question is asked. |
305 if (setting == CONTENT_SETTING_ASK && setting == default_value) | 308 if (setting == CONTENT_SETTING_ASK && setting == default_value) |
306 setting = CONTENT_SETTING_DEFAULT; | 309 setting = CONTENT_SETTING_DEFAULT; |
307 | 310 |
308 ContentSettingsPattern primary_pattern; | 311 ContentSettingsPattern primary_pattern; |
309 ContentSettingsPattern secondary_pattern; | 312 ContentSettingsPattern secondary_pattern; |
310 switch (settings_type) { | 313 switch (settings_type) { |
| 314 case CONTENT_SETTINGS_TYPE_COOKIES: |
| 315 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
| 316 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
| 317 break; |
311 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: | 318 case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: |
312 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); | 319 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
313 secondary_pattern = ContentSettingsPattern::Wildcard(); | 320 secondary_pattern = ContentSettingsPattern::Wildcard(); |
314 break; | 321 break; |
315 case CONTENT_SETTINGS_TYPE_GEOLOCATION: | 322 case CONTENT_SETTINGS_TYPE_GEOLOCATION: |
316 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); | 323 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
317 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); | 324 secondary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
318 break; | 325 break; |
319 case CONTENT_SETTINGS_TYPE_MEDIASTREAM: | 326 case CONTENT_SETTINGS_TYPE_MEDIASTREAM: |
320 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); | 327 primary_pattern = ContentSettingsPattern::FromURLNoWildcard(last_site_); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 map->GetDefaultContentSetting(permission_type, NULL); | 389 map->GetDefaultContentSetting(permission_type, NULL); |
383 if (default_value != CONTENT_SETTING_ALLOW && | 390 if (default_value != CONTENT_SETTING_ALLOW && |
384 default_value != CONTENT_SETTING_BLOCK) { | 391 default_value != CONTENT_SETTING_BLOCK) { |
385 options->AppendString( | 392 options->AppendString( |
386 content_settings::ContentSettingToString(default_value)); | 393 content_settings::ContentSettingToString(default_value)); |
387 } | 394 } |
388 options->AppendString( | 395 options->AppendString( |
389 content_settings::ContentSettingToString(CONTENT_SETTING_ALLOW)); | 396 content_settings::ContentSettingToString(CONTENT_SETTING_ALLOW)); |
390 options->AppendString( | 397 options->AppendString( |
391 content_settings::ContentSettingToString(CONTENT_SETTING_BLOCK)); | 398 content_settings::ContentSettingToString(CONTENT_SETTING_BLOCK)); |
| 399 if (permission_type == CONTENT_SETTINGS_TYPE_COOKIES) { |
| 400 options->AppendString(content_settings::ContentSettingToString( |
| 401 CONTENT_SETTING_SESSION_ONLY)); |
| 402 } |
392 | 403 |
393 ContentSetting permission; | 404 ContentSetting permission; |
394 content_settings::SettingInfo info; | 405 content_settings::SettingInfo info; |
395 if (permission_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM) { | 406 if (permission_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM) { |
396 scoped_ptr<base::Value> mic_value( | 407 scoped_ptr<base::Value> mic_value( |
397 map->GetWebsiteSetting(site_url, | 408 map->GetWebsiteSetting(site_url, |
398 site_url, | 409 site_url, |
399 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, | 410 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
400 std::string(), | 411 std::string(), |
401 &info)); | 412 &info)); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 | 510 |
500 // Load a new BrowsingDataLocalStorageHelper to update. | 511 // Load a new BrowsingDataLocalStorageHelper to update. |
501 local_storage_ = new BrowsingDataLocalStorageHelper(profile); | 512 local_storage_ = new BrowsingDataLocalStorageHelper(profile); |
502 | 513 |
503 local_storage_->StartFetching( | 514 local_storage_->StartFetching( |
504 base::Bind(&WebsiteSettingsHandler::OnLocalStorageFetched, | 515 base::Bind(&WebsiteSettingsHandler::OnLocalStorageFetched, |
505 weak_ptr_factory_.GetWeakPtr())); | 516 weak_ptr_factory_.GetWeakPtr())); |
506 } | 517 } |
507 | 518 |
508 } // namespace options | 519 } // namespace options |
OLD | NEW |