Chromium Code Reviews| Index: components/power/origin_power_map.cc |
| diff --git a/components/power/origin_power_map.cc b/components/power/origin_power_map.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b5d59fdbf9747b72860953bd2f35c4944b2fad38 |
| --- /dev/null |
| +++ b/components/power/origin_power_map.cc |
| @@ -0,0 +1,53 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "components/power/origin_power_map.h" |
| + |
| +#include "base/logging.h" |
| +#include "content/public/common/url_constants.h" |
| +#include "url/gurl.h" |
| + |
| +namespace power { |
| + |
| +OriginPowerMap::OriginPowerMap() : total_consumed_(0.0) { |
| +} |
| + |
| +OriginPowerMap::~OriginPowerMap() { |
| +} |
| + |
| +int OriginPowerMap::GetPowerForOrigin(const GURL& url) { |
| + if (!total_consumed_) |
| + return 0; |
| + |
| + OriginMap::const_iterator it = origin_map_.find(url.GetOrigin()); |
| + return it == origin_map_.end() |
| + ? 0 |
|
Daniel Erat
2014/08/12 18:40:18
this should just be indented four spaces beyond th
Daniel Nishi
2014/08/12 19:57:34
Whoops. An errant git cl format knocked out the fo
|
| + : static_cast<int>(it->second * 100 / total_consumed_ + 0.5); |
| +} |
| + |
| +void OriginPowerMap::AddPowerForOrigin(const GURL& url, double power) { |
| + DCHECK_GE(power, 0); |
| + GURL origin = url.GetOrigin(); |
| + if (!origin.is_valid() || origin.SchemeIs(content::kChromeUIScheme)) |
| + return; |
| + |
| + origin_map_[origin] += power; |
| + total_consumed_ += power; |
| +} |
| + |
| +OriginPowerMap::PercentOriginMap OriginPowerMap::GetPercentOriginMap() { |
| + OriginPowerMap::PercentOriginMap percent_map; |
| + |
| + if (!total_consumed_) |
| + return percent_map; |
| + |
| + for (OriginMap::iterator it = origin_map_.begin(); it != origin_map_.end(); |
| + ++it) { |
| + percent_map[it->first] = |
| + static_cast<int>(it->second * 100 / total_consumed_ + 0.5); |
| + } |
| + return percent_map; |
| +} |
| + |
| +} // namespace power |