OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/dom_ui/options/content_settings_handler.h" | 5 #include "chrome/browser/dom_ui/options/content_settings_handler.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/browser_list.h" | 12 #include "chrome/browser/browser_list.h" |
| 13 #include "chrome/browser/browser_process.h" |
13 #include "chrome/browser/content_settings/content_settings_details.h" | 14 #include "chrome/browser/content_settings/content_settings_details.h" |
14 #include "chrome/browser/content_settings/host_content_settings_map.h" | 15 #include "chrome/browser/content_settings/host_content_settings_map.h" |
15 #include "chrome/browser/geolocation/geolocation_content_settings_map.h" | 16 #include "chrome/browser/geolocation/geolocation_content_settings_map.h" |
16 #include "chrome/browser/notifications/desktop_notification_service.h" | 17 #include "chrome/browser/notifications/desktop_notification_service.h" |
17 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
18 #include "chrome/common/chrome_switches.h" | 19 #include "chrome/common/chrome_switches.h" |
19 #include "chrome/common/content_settings_helper.h" | 20 #include "chrome/common/content_settings_helper.h" |
20 #include "chrome/common/notification_service.h" | 21 #include "chrome/common/notification_service.h" |
21 #include "chrome/common/notification_source.h" | 22 #include "chrome/common/notification_source.h" |
22 #include "chrome/common/notification_type.h" | 23 #include "chrome/common/notification_type.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 localized_strings->SetString("cookies_header", | 210 localized_strings->SetString("cookies_header", |
210 l10n_util::GetStringUTF16(IDS_COOKIES_HEADER)); | 211 l10n_util::GetStringUTF16(IDS_COOKIES_HEADER)); |
211 localized_strings->SetString("cookies_allow", | 212 localized_strings->SetString("cookies_allow", |
212 l10n_util::GetStringUTF16(IDS_COOKIES_ALLOW_RADIO)); | 213 l10n_util::GetStringUTF16(IDS_COOKIES_ALLOW_RADIO)); |
213 localized_strings->SetString("cookies_ask", | 214 localized_strings->SetString("cookies_ask", |
214 l10n_util::GetStringUTF16(IDS_COOKIES_ASK_EVERY_TIME_RADIO)); | 215 l10n_util::GetStringUTF16(IDS_COOKIES_ASK_EVERY_TIME_RADIO)); |
215 localized_strings->SetString("cookies_block", | 216 localized_strings->SetString("cookies_block", |
216 l10n_util::GetStringUTF16(IDS_COOKIES_BLOCK_RADIO)); | 217 l10n_util::GetStringUTF16(IDS_COOKIES_BLOCK_RADIO)); |
217 localized_strings->SetString("cookies_block_3rd_party", | 218 localized_strings->SetString("cookies_block_3rd_party", |
218 l10n_util::GetStringUTF16(IDS_COOKIES_BLOCK_3RDPARTY_CHKBOX)); | 219 l10n_util::GetStringUTF16(IDS_COOKIES_BLOCK_3RDPARTY_CHKBOX)); |
219 localized_strings->SetString("cookies_clear_on_exit", | |
220 l10n_util::GetStringUTF16(IDS_COOKIES_CLEAR_WHEN_CLOSE_CHKBOX)); | |
221 localized_strings->SetString("cookies_show_cookies", | 220 localized_strings->SetString("cookies_show_cookies", |
222 l10n_util::GetStringUTF16(IDS_COOKIES_SHOW_COOKIES_BUTTON)); | 221 l10n_util::GetStringUTF16(IDS_COOKIES_SHOW_COOKIES_BUTTON)); |
223 localized_strings->SetString("flash_storage_settings", | 222 localized_strings->SetString("flash_storage_settings", |
224 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_SETTINGS)); | 223 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_SETTINGS)); |
225 localized_strings->SetString("flash_storage_url", | 224 localized_strings->SetString("flash_storage_url", |
226 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_URL)); | 225 l10n_util::GetStringUTF16(IDS_FLASH_STORAGE_URL)); |
227 | 226 |
228 // Image filter. | 227 // Image filter. |
229 localized_strings->SetString("images_tab_label", | 228 localized_strings->SetString("images_tab_label", |
230 l10n_util::GetStringUTF16(IDS_IMAGES_TAB_LABEL)); | 229 l10n_util::GetStringUTF16(IDS_IMAGES_TAB_LABEL)); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 l10n_util::GetStringUTF16(IDS_NOTIFICATIONS_BLOCK_RADIO)); | 296 l10n_util::GetStringUTF16(IDS_NOTIFICATIONS_BLOCK_RADIO)); |
298 } | 297 } |
299 | 298 |
300 void ContentSettingsHandler::Initialize() { | 299 void ContentSettingsHandler::Initialize() { |
301 const HostContentSettingsMap* settings_map = GetContentSettingsMap(); | 300 const HostContentSettingsMap* settings_map = GetContentSettingsMap(); |
302 scoped_ptr<Value> block_3rd_party(Value::CreateBooleanValue( | 301 scoped_ptr<Value> block_3rd_party(Value::CreateBooleanValue( |
303 settings_map->BlockThirdPartyCookies())); | 302 settings_map->BlockThirdPartyCookies())); |
304 dom_ui_->CallJavascriptFunction( | 303 dom_ui_->CallJavascriptFunction( |
305 L"ContentSettings.setBlockThirdPartyCookies", *block_3rd_party.get()); | 304 L"ContentSettings.setBlockThirdPartyCookies", *block_3rd_party.get()); |
306 | 305 |
| 306 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, |
| 307 g_browser_process->local_state(), |
| 308 this); |
| 309 UpdateClearPluginLSOData(); |
| 310 |
307 notification_registrar_.Add( | 311 notification_registrar_.Add( |
308 this, NotificationType::OTR_PROFILE_CREATED, | 312 this, NotificationType::OTR_PROFILE_CREATED, |
309 NotificationService::AllSources()); | 313 NotificationService::AllSources()); |
310 notification_registrar_.Add( | 314 notification_registrar_.Add( |
311 this, NotificationType::PROFILE_DESTROYED, | 315 this, NotificationType::PROFILE_DESTROYED, |
312 NotificationService::AllSources()); | 316 NotificationService::AllSources()); |
313 | 317 |
314 UpdateAllExceptionsViewsFromModel(); | 318 UpdateAllExceptionsViewsFromModel(); |
315 notification_registrar_.Add( | 319 notification_registrar_.Add( |
316 this, NotificationType::CONTENT_SETTINGS_CHANGED, | 320 this, NotificationType::CONTENT_SETTINGS_CHANGED, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 UpdateExceptionsViewFromModel(settings_details->type()); | 361 UpdateExceptionsViewFromModel(settings_details->type()); |
358 break; | 362 break; |
359 } | 363 } |
360 | 364 |
361 case NotificationType::PREF_CHANGED: { | 365 case NotificationType::PREF_CHANGED: { |
362 const std::string& pref_name = *Details<std::string>(details).ptr(); | 366 const std::string& pref_name = *Details<std::string>(details).ptr(); |
363 if (pref_name == prefs::kGeolocationDefaultContentSetting) | 367 if (pref_name == prefs::kGeolocationDefaultContentSetting) |
364 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_GEOLOCATION); | 368 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
365 else if (pref_name == prefs::kGeolocationContentSettings) | 369 else if (pref_name == prefs::kGeolocationContentSettings) |
366 UpdateGeolocationExceptionsView(); | 370 UpdateGeolocationExceptionsView(); |
| 371 else if (pref_name == prefs::kClearPluginLSODataEnabled) |
| 372 UpdateClearPluginLSOData(); |
367 break; | 373 break; |
368 } | 374 } |
369 | 375 |
370 case NotificationType::DESKTOP_NOTIFICATION_DEFAULT_CHANGED: { | 376 case NotificationType::DESKTOP_NOTIFICATION_DEFAULT_CHANGED: { |
371 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 377 UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
372 break; | 378 break; |
373 } | 379 } |
374 | 380 |
375 case NotificationType::DESKTOP_NOTIFICATION_SETTINGS_CHANGED: { | 381 case NotificationType::DESKTOP_NOTIFICATION_SETTINGS_CHANGED: { |
376 UpdateNotificationExceptionsView(); | 382 UpdateNotificationExceptionsView(); |
377 break; | 383 break; |
378 } | 384 } |
379 | 385 |
380 default: | 386 default: |
381 OptionsPageUIHandler::Observe(type, source, details); | 387 OptionsPageUIHandler::Observe(type, source, details); |
382 } | 388 } |
383 } | 389 } |
384 | 390 |
| 391 void ContentSettingsHandler::UpdateClearPluginLSOData() { |
| 392 int label_id = clear_plugin_lso_data_enabled_.GetValue() ? |
| 393 IDS_COOKIES_LSO_CLEAR_WHEN_CLOSE_CHKBOX : |
| 394 IDS_COOKIES_CLEAR_WHEN_CLOSE_CHKBOX; |
| 395 scoped_ptr<Value> label( |
| 396 Value::CreateStringValue(l10n_util::GetStringUTF16(label_id))); |
| 397 dom_ui_->CallJavascriptFunction( |
| 398 L"ContentSettings.setClearLocalDataOnShutdownLabel", *label); |
| 399 } |
| 400 |
385 void ContentSettingsHandler::UpdateSettingDefaultFromModel( | 401 void ContentSettingsHandler::UpdateSettingDefaultFromModel( |
386 ContentSettingsType type) { | 402 ContentSettingsType type) { |
387 DictionaryValue filter_settings; | 403 DictionaryValue filter_settings; |
388 filter_settings.SetString(ContentSettingsTypeToGroupName(type) + ".value", | 404 filter_settings.SetString(ContentSettingsTypeToGroupName(type) + ".value", |
389 GetSettingDefaultFromModel(type)); | 405 GetSettingDefaultFromModel(type)); |
390 filter_settings.SetBoolean(ContentSettingsTypeToGroupName(type) + ".managed", | 406 filter_settings.SetBoolean(ContentSettingsTypeToGroupName(type) + ".managed", |
391 GetDefaultSettingManagedFromModel(type)); | 407 GetDefaultSettingManagedFromModel(type)); |
392 | 408 |
393 dom_ui_->CallJavascriptFunction( | 409 dom_ui_->CallJavascriptFunction( |
394 L"ContentSettings.setContentFilterSettingsValue", filter_settings); | 410 L"ContentSettings.setContentFilterSettingsValue", filter_settings); |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 return dom_ui_->GetProfile()->GetHostContentSettingsMap(); | 778 return dom_ui_->GetProfile()->GetHostContentSettingsMap(); |
763 } | 779 } |
764 | 780 |
765 HostContentSettingsMap* | 781 HostContentSettingsMap* |
766 ContentSettingsHandler::GetOTRContentSettingsMap() { | 782 ContentSettingsHandler::GetOTRContentSettingsMap() { |
767 Profile* profile = dom_ui_->GetProfile(); | 783 Profile* profile = dom_ui_->GetProfile(); |
768 if (profile->HasOffTheRecordProfile()) | 784 if (profile->HasOffTheRecordProfile()) |
769 return profile->GetOffTheRecordProfile()->GetHostContentSettingsMap(); | 785 return profile->GetOffTheRecordProfile()->GetHostContentSettingsMap(); |
770 return NULL; | 786 return NULL; |
771 } | 787 } |
OLD | NEW |