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

Unified Diff: chrome/browser/ui/webui/options/website_settings_handler.cc

Issue 501063002: Surface battery auditing information on the website settings option page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@origin-power-map
Patch Set: Rebase. Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/options/website_settings_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/options/website_settings_handler.cc
diff --git a/chrome/browser/ui/webui/options/website_settings_handler.cc b/chrome/browser/ui/webui/options/website_settings_handler.cc
index ab41a8a6c33e44c5babc52e5a6fe9d2f0a227d39..2208435fcca672f751886b71a0253f4df89ac080 100644
--- a/chrome/browser/ui/webui/options/website_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/website_settings_handler.cc
@@ -13,6 +13,8 @@
#include "chrome/browser/ui/browser_iterator.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/grit/generated_resources.h"
+#include "components/power/origin_power_map.h"
+#include "components/power/origin_power_map_factory.h"
#include "content/public/browser/dom_storage_context.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
@@ -25,6 +27,9 @@
#include "ui/base/l10n/time_format.h"
#include "ui/base/text/bytes_formatting.h"
+using power::OriginPowerMap;
+using power::OriginPowerMapFactory;
+
namespace {
const int kHttpPort = 80;
@@ -61,6 +66,7 @@ void WebsiteSettingsHandler::GetLocalizedValues(
{"websitesLabelMediaStream", IDS_WEBSITE_SETTINGS_TYPE_MEDIASTREAM},
{"websitesLabelNotifications", IDS_WEBSITE_SETTINGS_TYPE_NOTIFICATIONS},
{"websitesLabelStorage", IDS_WEBSITE_SETTINGS_TYPE_STORAGE},
+ {"websitesLabelBattery", IDS_WEBSITE_SETTINGS_TYPE_BATTERY},
{"websitesCookiesDescription", IDS_WEBSITE_SETTINGS_COOKIES_DESCRIPTION},
{"websitesLocationDescription",
IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION},
@@ -69,6 +75,7 @@ void WebsiteSettingsHandler::GetLocalizedValues(
{"websitesNotificationsDescription",
IDS_WEBSITE_SETTINGS_NOTIFICATIONS_DESCRIPTION},
{"websitesButtonClear", IDS_WEBSITE_SETTINGS_STORAGE_CLEAR_BUTTON},
+ {"websitesButtonStop", IDS_WEBSITE_SETTINGS_BATTERY_STOP_BUTTON},
};
RegisterStrings(localized_strings, resources, arraysize(resources));
@@ -99,6 +106,11 @@ void WebsiteSettingsHandler::RegisterMessages() {
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
+ "updateBatteryUsage",
+ base::Bind(&WebsiteSettingsHandler::HandleUpdateBatteryUsage,
+ base::Unretained(this)));
+
+ web_ui()->RegisterMessageCallback(
"getOriginInfo",
base::Bind(&WebsiteSettingsHandler::HandleGetOriginInfo,
base::Unretained(this)));
@@ -364,6 +376,34 @@ void WebsiteSettingsHandler::HandleSetOriginPermission(
info);
}
+void WebsiteSettingsHandler::HandleUpdateBatteryUsage(
+ const base::ListValue* args) {
+ base::DictionaryValue power_map;
+ OriginPowerMap* origins =
+ OriginPowerMapFactory::GetForBrowserContext(Profile::FromWebUI(web_ui()));
+ OriginPowerMap::PercentOriginMap percent_map = origins->GetPercentOriginMap();
+ for (std::map<GURL, int>::iterator it = percent_map.begin();
+ it != percent_map.end();
+ ++it) {
+ std::string origin = it->first.spec();
+
+ if (origin.find(last_filter_) == base::string16::npos)
+ continue;
+
+ base::DictionaryValue* origin_entry = new base::DictionaryValue();
+ origin_entry->SetInteger("usage", it->second);
+ origin_entry->SetString(
+ "usageString",
+ l10n_util::GetStringFUTF16Int(IDS_WEBSITE_SETTINGS_BATTERY_PERCENT,
+ it->second));
+ origin_entry->SetStringWithoutPathExpansion(
+ "readableName", GetReadableName(it->first));
+ power_map.SetWithoutPathExpansion(origin, origin_entry);
+ }
+ web_ui()->CallJavascriptFunction("WebsiteSettingsManager.populateOrigins",
+ power_map);
+}
+
void WebsiteSettingsHandler::HandleDeleteLocalStorage(
const base::ListValue* args) {
DCHECK(!last_site_.is_empty());
@@ -390,6 +430,10 @@ void WebsiteSettingsHandler::GetInfoForOrigin(const GURL& site_url,
}
}
+ int battery = 0;
+ battery = OriginPowerMapFactory::GetForBrowserContext(
+ Profile::FromWebUI(web_ui()))->GetPowerForOrigin(site_url);
+
base::DictionaryValue* permissions = new base::DictionaryValue;
for (size_t i = 0; i < arraysize(kValidTypes); ++i) {
ContentSettingsType permission_type = kValidTypes[i];
@@ -451,9 +495,13 @@ void WebsiteSettingsHandler::GetInfoForOrigin(const GURL& site_url,
base::Value* storage_used = new base::StringValue(l10n_util::GetStringFUTF16(
IDS_WEBSITE_SETTINGS_STORAGE_USED, ui::FormatBytes(storage)));
+ base::Value* battery_used =
+ new base::StringValue(l10n_util::GetStringFUTF16Int(
+ IDS_WEBSITE_SETTINGS_BATTERY_USED, battery));
web_ui()->CallJavascriptFunction("WebsiteSettingsEditor.populateOrigin",
*storage_used,
+ *battery_used,
*permissions,
base::FundamentalValue(show_page));
}
« no previous file with comments | « chrome/browser/ui/webui/options/website_settings_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698