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 "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/browser_iterator.h" | 10 #include "chrome/browser/ui/browser_iterator.h" |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 if (it->setting != cam_setting) | 375 if (it->setting != cam_setting) |
376 continue; | 376 continue; |
377 } | 377 } |
378 | 378 |
379 if (origin.find(last_filter_) == base::string16::npos) | 379 if (origin.find(last_filter_) == base::string16::npos) |
380 continue; | 380 continue; |
381 | 381 |
382 base::Time last_usage = settings->GetLastUsageByPattern( | 382 base::Time last_usage = settings->GetLastUsageByPattern( |
383 it->primary_pattern, it->secondary_pattern, last_setting); | 383 it->primary_pattern, it->secondary_pattern, last_setting); |
384 | 384 |
385 base::DictionaryValue* origin_entry = new base::DictionaryValue(); | 385 scoped_ptr<base::DictionaryValue> origin_entry(new base::DictionaryValue()); |
386 origin_entry->SetDoubleWithoutPathExpansion("usage", | 386 origin_entry->SetDoubleWithoutPathExpansion("usage", |
387 last_usage.ToDoubleT()); | 387 last_usage.ToDoubleT()); |
388 base::string16 usage_string; | 388 base::string16 usage_string; |
389 if (last_usage.ToDoubleT()) { | 389 if (last_usage.ToDoubleT()) { |
390 usage_string = ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED, | 390 usage_string = ui::TimeFormat::Simple(ui::TimeFormat::FORMAT_ELAPSED, |
391 ui::TimeFormat::LENGTH_SHORT, | 391 ui::TimeFormat::LENGTH_SHORT, |
392 base::Time::Now() - last_usage); | 392 base::Time::Now() - last_usage); |
393 } | 393 } |
394 origin_entry->SetStringWithoutPathExpansion("usageString", usage_string); | 394 origin_entry->SetStringWithoutPathExpansion("usageString", usage_string); |
395 origin_entry->SetStringWithoutPathExpansion("readableName", | 395 origin_entry->SetStringWithoutPathExpansion("readableName", |
396 GetReadableName(origin_url)); | 396 GetReadableName(origin_url)); |
397 | 397 |
398 if (it->setting == CONTENT_SETTING_BLOCK) | 398 if (it->setting == CONTENT_SETTING_BLOCK) |
399 blocked_origins.SetWithoutPathExpansion(origin, origin_entry); | 399 blocked_origins.SetWithoutPathExpansion(origin, origin_entry.Pass()); |
400 else | 400 else |
401 allowed_origins.SetWithoutPathExpansion(origin, origin_entry); | 401 allowed_origins.SetWithoutPathExpansion(origin, origin_entry.Pass()); |
402 } | 402 } |
403 | 403 |
404 bool is_globally_allowed = settings->GetContentSettingOverride(last_setting); | 404 bool is_globally_allowed = settings->GetContentSettingOverride(last_setting); |
405 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", | 405 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", |
406 allowed_origins, | 406 allowed_origins, |
407 blocked_origins, | 407 blocked_origins, |
408 base::FundamentalValue(is_globally_allowed)); | 408 base::FundamentalValue(is_globally_allowed)); |
409 } | 409 } |
410 | 410 |
411 void WebsiteSettingsHandler::HandleGetOriginInfo(const base::ListValue* args) { | 411 void WebsiteSettingsHandler::HandleGetOriginInfo(const base::ListValue* args) { |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
624 | 624 |
625 int battery = 0; | 625 int battery = 0; |
626 battery = OriginPowerMapFactory::GetForBrowserContext( | 626 battery = OriginPowerMapFactory::GetForBrowserContext( |
627 GetProfile())->GetPowerForOrigin(site_url); | 627 GetProfile())->GetPowerForOrigin(site_url); |
628 | 628 |
629 base::DictionaryValue* permissions = new base::DictionaryValue; | 629 base::DictionaryValue* permissions = new base::DictionaryValue; |
630 for (size_t i = 0; i < arraysize(kValidTypes); ++i) { | 630 for (size_t i = 0; i < arraysize(kValidTypes); ++i) { |
631 ContentSettingsType permission_type = kValidTypes[i]; | 631 ContentSettingsType permission_type = kValidTypes[i]; |
632 | 632 |
633 // Append the possible settings. | 633 // Append the possible settings. |
634 base::ListValue* options = new base::ListValue; | 634 scoped_ptr<base::ListValue> options(new base::ListValue()); |
635 ContentSetting default_value = | 635 ContentSetting default_value = |
636 map->GetDefaultContentSetting(permission_type, NULL); | 636 map->GetDefaultContentSetting(permission_type, NULL); |
637 if (default_value != CONTENT_SETTING_ALLOW && | 637 if (default_value != CONTENT_SETTING_ALLOW && |
638 default_value != CONTENT_SETTING_BLOCK) { | 638 default_value != CONTENT_SETTING_BLOCK) { |
639 options->AppendString( | 639 options->AppendString( |
640 content_settings::ContentSettingToString(default_value)); | 640 content_settings::ContentSettingToString(default_value)); |
641 } | 641 } |
642 options->AppendString( | 642 options->AppendString( |
643 content_settings::ContentSettingToString(CONTENT_SETTING_ALLOW)); | 643 content_settings::ContentSettingToString(CONTENT_SETTING_ALLOW)); |
644 options->AppendString( | 644 options->AppendString( |
(...skipping 23 matching lines...) Expand all Loading... |
668 if (mic_setting != cam_setting) | 668 if (mic_setting != cam_setting) |
669 permission = CONTENT_SETTING_ASK; | 669 permission = CONTENT_SETTING_ASK; |
670 else | 670 else |
671 permission = mic_setting; | 671 permission = mic_setting; |
672 } else { | 672 } else { |
673 scoped_ptr<base::Value> v(map->GetWebsiteSettingWithoutOverride( | 673 scoped_ptr<base::Value> v(map->GetWebsiteSettingWithoutOverride( |
674 site_url, site_url, permission_type, std::string(), &info)); | 674 site_url, site_url, permission_type, std::string(), &info)); |
675 permission = content_settings::ValueToContentSetting(v.get()); | 675 permission = content_settings::ValueToContentSetting(v.get()); |
676 } | 676 } |
677 | 677 |
678 base::DictionaryValue* permission_info = new base::DictionaryValue; | 678 scoped_ptr<base::DictionaryValue> |
| 679 permission_info(new base::DictionaryValue()); |
679 permission_info->SetStringWithoutPathExpansion( | 680 permission_info->SetStringWithoutPathExpansion( |
680 "setting", content_settings::ContentSettingToString(permission)); | 681 "setting", content_settings::ContentSettingToString(permission)); |
681 permission_info->SetWithoutPathExpansion("options", options); | 682 permission_info->SetWithoutPathExpansion("options", options.Pass()); |
682 permission_info->SetBooleanWithoutPathExpansion( | 683 permission_info->SetBooleanWithoutPathExpansion( |
683 "editable", info.source == content_settings::SETTING_SOURCE_USER); | 684 "editable", info.source == content_settings::SETTING_SOURCE_USER); |
684 permissions->SetWithoutPathExpansion( | 685 permissions->SetWithoutPathExpansion( |
685 content_settings::GetTypeName(permission_type), permission_info); | 686 content_settings::GetTypeName(permission_type), permission_info.Pass()); |
686 } | 687 } |
687 | 688 |
688 base::Value* storage_used = new base::StringValue(l10n_util::GetStringFUTF16( | 689 base::Value* storage_used = new base::StringValue(l10n_util::GetStringFUTF16( |
689 IDS_WEBSITE_SETTINGS_STORAGE_USED, ui::FormatBytes(storage))); | 690 IDS_WEBSITE_SETTINGS_STORAGE_USED, ui::FormatBytes(storage))); |
690 base::Value* battery_used = | 691 base::Value* battery_used = |
691 new base::StringValue(l10n_util::GetStringFUTF16Int( | 692 new base::StringValue(l10n_util::GetStringFUTF16Int( |
692 IDS_WEBSITE_SETTINGS_BATTERY_USED, battery)); | 693 IDS_WEBSITE_SETTINGS_BATTERY_USED, battery)); |
693 | 694 |
694 web_ui()->CallJavascriptFunction("WebsiteSettingsEditor.populateOrigin", | 695 web_ui()->CallJavascriptFunction("WebsiteSettingsEditor.populateOrigin", |
695 *storage_used, | 696 *storage_used, |
696 *battery_used, | 697 *battery_used, |
697 *permissions, | 698 *permissions, |
698 base::FundamentalValue(show_page)); | 699 base::FundamentalValue(show_page)); |
699 } | 700 } |
700 | 701 |
701 void WebsiteSettingsHandler::UpdateLocalStorage() { | 702 void WebsiteSettingsHandler::UpdateLocalStorage() { |
702 base::DictionaryValue local_storage_map; | 703 base::DictionaryValue local_storage_map; |
703 for (LocalStorageList::const_iterator it = local_storage_list_.begin(); | 704 for (LocalStorageList::const_iterator it = local_storage_list_.begin(); |
704 it != local_storage_list_.end(); | 705 it != local_storage_list_.end(); |
705 it++) { | 706 it++) { |
706 std::string origin = it->origin_url.spec(); | 707 std::string origin = it->origin_url.spec(); |
707 | 708 |
708 if (origin.find(last_filter_) == base::string16::npos) | 709 if (origin.find(last_filter_) == base::string16::npos) |
709 continue; | 710 continue; |
710 | 711 |
711 base::DictionaryValue* origin_entry = new base::DictionaryValue(); | 712 scoped_ptr<base::DictionaryValue> origin_entry(new base::DictionaryValue()); |
712 origin_entry->SetWithoutPathExpansion( | 713 origin_entry->SetDoubleWithoutPathExpansion( |
713 "usage", new base::FundamentalValue(static_cast<double>(it->size))); | 714 "usage", static_cast<double>(it->size)); |
714 origin_entry->SetWithoutPathExpansion( | 715 origin_entry->SetStringWithoutPathExpansion( |
715 "usageString", new base::StringValue(ui::FormatBytes(it->size))); | 716 "usageString", ui::FormatBytes(it->size)); |
716 origin_entry->SetStringWithoutPathExpansion( | 717 origin_entry->SetStringWithoutPathExpansion( |
717 "readableName", GetReadableName(it->origin_url)); | 718 "readableName", GetReadableName(it->origin_url)); |
718 local_storage_map.SetWithoutPathExpansion(origin, origin_entry); | 719 local_storage_map.SetWithoutPathExpansion(origin, origin_entry.Pass()); |
719 } | 720 } |
720 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", | 721 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", |
721 local_storage_map); | 722 local_storage_map); |
722 } | 723 } |
723 | 724 |
724 void WebsiteSettingsHandler::UpdateBatteryUsage() { | 725 void WebsiteSettingsHandler::UpdateBatteryUsage() { |
725 base::DictionaryValue power_map; | 726 base::DictionaryValue power_map; |
726 OriginPowerMap* origins = | 727 OriginPowerMap* origins = |
727 OriginPowerMapFactory::GetForBrowserContext(GetProfile()); | 728 OriginPowerMapFactory::GetForBrowserContext(GetProfile()); |
728 OriginPowerMap::PercentOriginMap percent_map = origins->GetPercentOriginMap(); | 729 OriginPowerMap::PercentOriginMap percent_map = origins->GetPercentOriginMap(); |
729 for (std::map<GURL, int>::iterator it = percent_map.begin(); | 730 for (std::map<GURL, int>::iterator it = percent_map.begin(); |
730 it != percent_map.end(); | 731 it != percent_map.end(); |
731 ++it) { | 732 ++it) { |
732 std::string origin = it->first.spec(); | 733 std::string origin = it->first.spec(); |
733 | 734 |
734 if (origin.find(last_filter_) == base::string16::npos) | 735 if (origin.find(last_filter_) == base::string16::npos) |
735 continue; | 736 continue; |
736 | 737 |
737 base::DictionaryValue* origin_entry = new base::DictionaryValue(); | 738 scoped_ptr<base::DictionaryValue> origin_entry(new base::DictionaryValue()); |
738 origin_entry->SetInteger("usage", it->second); | 739 origin_entry->SetInteger("usage", it->second); |
739 if (it->second == 0) { | 740 if (it->second == 0) { |
740 origin_entry->SetString( | 741 origin_entry->SetString( |
741 "usageString", | 742 "usageString", |
742 l10n_util::GetStringUTF16(IDS_WEBSITE_SETTINGS_BATTERY_ZERO_PERCENT)); | 743 l10n_util::GetStringUTF16(IDS_WEBSITE_SETTINGS_BATTERY_ZERO_PERCENT)); |
743 } else { | 744 } else { |
744 origin_entry->SetString( | 745 origin_entry->SetString( |
745 "usageString", | 746 "usageString", |
746 l10n_util::GetStringFUTF16Int(IDS_WEBSITE_SETTINGS_BATTERY_PERCENT, | 747 l10n_util::GetStringFUTF16Int(IDS_WEBSITE_SETTINGS_BATTERY_PERCENT, |
747 it->second)); | 748 it->second)); |
748 } | 749 } |
749 origin_entry->SetStringWithoutPathExpansion("readableName", | 750 origin_entry->SetStringWithoutPathExpansion("readableName", |
750 GetReadableName(it->first)); | 751 GetReadableName(it->first)); |
751 power_map.SetWithoutPathExpansion(origin, origin_entry); | 752 power_map.SetWithoutPathExpansion(origin, origin_entry.Pass()); |
752 } | 753 } |
753 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", | 754 web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins", |
754 power_map); | 755 power_map); |
755 } | 756 } |
756 | 757 |
757 void WebsiteSettingsHandler::StopOrigin(const GURL& site_url) { | 758 void WebsiteSettingsHandler::StopOrigin(const GURL& site_url) { |
758 Profile* profile = GetProfile(); | 759 Profile* profile = GetProfile(); |
759 if (site_url.SchemeIs(extensions::kExtensionScheme)) { | 760 if (site_url.SchemeIs(extensions::kExtensionScheme)) { |
760 const extensions::Extension* extension = | 761 const extensions::Extension* extension = |
761 extensions::ExtensionRegistry::Get(profile) | 762 extensions::ExtensionRegistry::Get(profile) |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 #if defined(OS_CHROMEOS) | 824 #if defined(OS_CHROMEOS) |
824 // Chrome OS special case: in Guest mode settings are opened in Incognito | 825 // Chrome OS special case: in Guest mode settings are opened in Incognito |
825 // mode, so we need original profile to actually modify settings. | 826 // mode, so we need original profile to actually modify settings. |
826 if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) | 827 if (user_manager::UserManager::Get()->IsLoggedInAsGuest()) |
827 profile = profile->GetOriginalProfile(); | 828 profile = profile->GetOriginalProfile(); |
828 #endif | 829 #endif |
829 return profile; | 830 return profile; |
830 } | 831 } |
831 | 832 |
832 } // namespace options | 833 } // namespace options |
OLD | NEW |