summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordhnishi <dhnishi@chromium.org>2014-09-18 14:40:40 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-18 21:41:17 +0000
commite9c6f1e14435841021cce8f2aa3c201e64576fb6 (patch)
tree2d6fe626b281abb07355e4b93642d83b252ed41f
parent7b2042ea269f22b22b9ba180518314d621f8dc44 (diff)
downloadchromium_src-e9c6f1e14435841021cce8f2aa3c201e64576fb6.zip
chromium_src-e9c6f1e14435841021cce8f2aa3c201e64576fb6.tar.gz
chromium_src-e9c6f1e14435841021cce8f2aa3c201e64576fb6.tar.bz2
Clear power consumption auditing data when you clear history.
This prevents the power consumption data from accidentally leaking visited websites after clearing browser history. Review URL: https://codereview.chromium.org/514433002 Cr-Commit-Position: refs/heads/master@{#295558}
-rw-r--r--chrome/browser/browsing_data/browsing_data_remover.cc8
-rw-r--r--components/power/origin_power_map.cc5
-rw-r--r--components/power/origin_power_map.h3
3 files changed, 16 insertions, 0 deletions
diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc
index a38415b..2dc6559 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -51,6 +51,8 @@
#include "components/nacl/browser/nacl_browser.h"
#include "components/nacl/browser/pnacl_host.h"
#include "components/password_manager/core/browser/password_store.h"
+#include "components/power/origin_power_map.h"
+#include "components/power/origin_power_map_factory.h"
#include "components/search_engines/template_url_service.h"
#include "components/web_cache/browser/web_cache_manager.h"
#include "content/public/browser/browser_thread.h"
@@ -304,6 +306,12 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
#endif
}
+ // The power consumption history by origin contains details of websites
+ // that were visited.
+ power::OriginPowerMap* origin_power_map =
+ power::OriginPowerMapFactory::GetForBrowserContext(profile_);
+ origin_power_map->ClearOriginMap();
+
// Need to clear the host cache and accumulated speculative data, as it also
// reveals some history: we have no mechanism to track when these items were
// created, so we'll clear them all. Better safe than sorry.
diff --git a/components/power/origin_power_map.cc b/components/power/origin_power_map.cc
index 4ce32e2..69d9fbd 100644
--- a/components/power/origin_power_map.cc
+++ b/components/power/origin_power_map.cc
@@ -59,4 +59,9 @@ void OriginPowerMap::OnAllOriginsUpdated() {
callback_list_.Notify();
}
+void OriginPowerMap::ClearOriginMap() {
+ origin_map_.clear();
+ total_consumed_ = 0;
+}
+
} // namespace power
diff --git a/components/power/origin_power_map.h b/components/power/origin_power_map.h
index 36caa02..3d664da 100644
--- a/components/power/origin_power_map.h
+++ b/components/power/origin_power_map.h
@@ -43,6 +43,9 @@ class OriginPowerMap : public KeyedService {
// updating for all origins this cycle.
void OnAllOriginsUpdated();
+ // Clears all URLs out of the map.
+ void ClearOriginMap();
+
private:
// OriginMap maps a URL to the amount of power consumed by the URL using the
// same units as |total_consumed_|.