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

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: 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
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 8999398729c5b6544fce9b9304da7b763dc23797..5fe1f952c2e9ccc3c7a199f4abadd812a5dc15e1 100644
--- a/chrome/browser/ui/webui/options/website_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/website_settings_handler.cc
@@ -11,6 +11,8 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_iterator.h"
#include "chrome/browser/ui/tabs/tab_strip_model.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"
@@ -23,6 +25,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;
@@ -57,6 +62,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},
{"websitesLocationDescription",
IDS_WEBSITE_SETTINGS_LOCATION_DESCRIPTION},
{"websitesMediastreamDescription",
@@ -64,6 +70,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));
@@ -94,6 +101,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)));
@@ -346,6 +358,33 @@ 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->SetWithoutPathExpansion(
Bernhard Bauer 2014/08/26 08:16:07 The ...WithoutPathExpansion variant isn't necessar
Daniel Nishi 2014/08/26 17:45:39 Done.
+ "usage", new base::FundamentalValue(it->second));
+ origin_entry->SetWithoutPathExpansion(
Bernhard Bauer 2014/08/26 08:16:07 SetString() here.
Daniel Nishi 2014/08/26 17:45:39 Done.
+ "usageString",
+ new base::StringValue(l10n_util::GetStringFUTF16Int(
+ IDS_WEBSITE_SETTINGS_BATTERY_PERCENT, it->second)));
+ 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());
@@ -372,6 +411,10 @@ void WebsiteSettingsHandler::GetInfoForOrigin(const GURL& site_url,
}
}
+ int battery = 0;
+ battery = OriginPowerMapFactory::GetForBrowserContext(
+ Profile::FromWebUI(web_ui()))->GetPowerForOrigin(site_url);
Bernhard Bauer 2014/08/26 08:16:08 Indent just four spaces w/r/t the preceding line.
Daniel Nishi 2014/08/26 17:45:39 Done.
+
base::DictionaryValue* permissions = new base::DictionaryValue;
for (size_t i = 0; i < arraysize(kValidTypes); ++i) {
ContentSettingsType permission_type = kValidTypes[i];
@@ -429,9 +472,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));
}

Powered by Google App Engine
This is Rietveld 408576698