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

Issue 472383002: Add ProcessPowerCollector to audit power information. (Closed)

Created:
6 years, 4 months ago by Daniel Nishi
Modified:
6 years, 3 months ago
CC:
chromium-reviews, tfarina, darin-cc_chromium.org, jam, chromium-apps-reviews_chromium.org, scheib, Siva Chandra, Daniel Erat
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Add ProcessPowerCollector to audit CPU and power information. This is part of the battery auditing feature, which will be surfaced in the Website Settings options page in the next patch. BUG=372598 Committed: https://crrev.com/3cf1d2aa622e9513c593fff948b6df149737e8d2 Cr-Commit-Position: refs/heads/master@{#291999}

Patch Set 1 : #

Patch Set 2 : Audit power in chrome_browser. #

Total comments: 26

Patch Set 3 : Comments and fixing some memory issues. #

Total comments: 32

Patch Set 4 : #

Total comments: 19

Patch Set 5 : Merge methods, hopefully fix Windows tests. #

Total comments: 20

Patch Set 6 : #

Total comments: 27

Patch Set 7 : Unittest clean-up. #

Total comments: 17

Patch Set 8 : Use PowerManagerClient. #

Total comments: 24

Patch Set 9 : #

Total comments: 2

Patch Set 10 : Shutdown() no longer exists -- now in d'tor. #

Total comments: 26

Patch Set 11 : Observer now balanced. #

Patch Set 12 : Missed one move. #

Total comments: 6

Patch Set 13 : Generalize CrOS values. #

Total comments: 16

Patch Set 14 : #

Total comments: 2

Patch Set 15 : #

Patch Set 16 : Fix a lifetime issue where DBusThreadManager could not exist when ProcessPowerCollector is destroye… #

Patch Set 17 : iOS doesn't actually run chrome_browser_main, so removed ifdefs related to ios. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+693 lines, --1 lines) Patch
M apps/app_window.h View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/browser/DEPS View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/chrome_browser_main.h View 1 2 2 chunks +6 lines, -0 lines 0 comments Download
M chrome/browser/chrome_browser_main.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +10 lines, -0 lines 0 comments Download
A + chrome/browser/power/OWNERS View 0 chunks +-1 lines, --1 lines 0 comments Download
A chrome/browser/power/process_power_collector.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +146 lines, -0 lines 0 comments Download
A chrome/browser/power/process_power_collector.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +201 lines, -0 lines 0 comments Download
A chrome/browser/power/process_power_collector_unittest.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +314 lines, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +3 lines, -0 lines 0 comments Download
M chrome/chrome_tests_unit.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -0 lines 0 comments Download
M content/public/test/mock_render_process_host.h View 1 2 3 2 chunks +5 lines, -0 lines 0 comments Download
M content/public/test/mock_render_process_host.cc View 1 2 3 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 44 (0 generated)
Daniel Nishi
asargent: PTAL at apps/app_window.h sky: PTAL at rest. +scheib, derat, sivachandra FYI
6 years, 4 months ago (2014-08-15 19:42:54 UTC) #1
asargent_no_longer_on_chrome
apps/ lgtm
6 years, 4 months ago (2014-08-15 19:48:01 UTC) #2
Daniel Erat
i didn't look at the tests yet https://codereview.chromium.org/472383002/diff/80001/apps/app_window.h File apps/app_window.h (right): https://codereview.chromium.org/472383002/diff/80001/apps/app_window.h#newcode350 apps/app_window.h:350: void SetAppWindowContentsForTesting(AppWindowContents* ...
6 years, 4 months ago (2014-08-15 20:22:13 UTC) #3
Daniel Nishi
https://codereview.chromium.org/472383002/diff/80001/apps/app_window.h File apps/app_window.h (right): https://codereview.chromium.org/472383002/diff/80001/apps/app_window.h#newcode350 apps/app_window.h:350: void SetAppWindowContentsForTesting(AppWindowContents* contents) { On 2014/08/15 20:22:12, Daniel Erat ...
6 years, 4 months ago (2014-08-18 17:38:48 UTC) #4
Daniel Erat
(still haven't looked at tests yet) https://codereview.chromium.org/472383002/diff/80001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/80001/chrome/browser/power/process_power_collector.cc#newcode133 chrome/browser/power/process_power_collector.cc:133: #endif On 2014/08/18 ...
6 years, 4 months ago (2014-08-18 20:43:05 UTC) #5
Daniel Nishi
https://codereview.chromium.org/472383002/diff/80001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/80001/chrome/browser/power/process_power_collector.cc#newcode133 chrome/browser/power/process_power_collector.cc:133: #endif On 2014/08/18 20:43:04, Daniel Erat wrote: > On ...
6 years, 4 months ago (2014-08-19 19:24:21 UTC) #6
Daniel Erat
some more high-level comments https://codereview.chromium.org/472383002/diff/180001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/180001/chrome/browser/power/process_power_collector.cc#newcode103 chrome/browser/power/process_power_collector.cc:103: if (it->second->last_cpu_used() < 0) { ...
6 years, 4 months ago (2014-08-20 00:10:42 UTC) #7
Daniel Nishi
https://codereview.chromium.org/472383002/diff/180001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/180001/chrome/browser/power/process_power_collector.cc#newcode103 chrome/browser/power/process_power_collector.cc:103: if (it->second->last_cpu_used() < 0) { On 2014/08/20 00:10:42, Daniel ...
6 years, 4 months ago (2014-08-20 17:16:46 UTC) #8
Daniel Erat
https://codereview.chromium.org/472383002/diff/280001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/280001/chrome/browser/power/process_power_collector.cc#newcode37 chrome/browser/power/process_power_collector.cc:37: metrics_ = metrics.Pass(); nit: can you just do: metrics_(metrics.Pass()) ...
6 years, 4 months ago (2014-08-20 17:47:59 UTC) #9
Daniel Nishi
https://codereview.chromium.org/472383002/diff/280001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/280001/chrome/browser/power/process_power_collector.cc#newcode37 chrome/browser/power/process_power_collector.cc:37: metrics_ = metrics.Pass(); On 2014/08/20 17:47:58, Daniel Erat wrote: ...
6 years, 4 months ago (2014-08-20 18:13:35 UTC) #10
Daniel Erat
cool, onward to the tests. steven and james, i'm cc-ing you for some questions in ...
6 years, 4 months ago (2014-08-20 19:55:08 UTC) #11
Daniel Nishi
https://codereview.chromium.org/472383002/diff/320001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/320001/chrome/browser/power/process_power_collector.cc#newcode104 chrome/browser/power/process_power_collector.cc:104: if (it->second->last_cpu_percent() < 0) { On 2014/08/20 19:55:07, Daniel ...
6 years, 4 months ago (2014-08-20 20:56:35 UTC) #12
Daniel Nishi
https://codereview.chromium.org/472383002/diff/320001/chrome/browser/power/process_power_collector_unittest.cc File chrome/browser/power/process_power_collector_unittest.cc (right): https://codereview.chromium.org/472383002/diff/320001/chrome/browser/power/process_power_collector_unittest.cc#newcode334 chrome/browser/power/process_power_collector_unittest.cc:334: // dependencies. On 2014/08/20 20:56:35, Daniel Nishi wrote: > ...
6 years, 4 months ago (2014-08-20 20:57:40 UTC) #13
Daniel Erat
https://codereview.chromium.org/472383002/diff/360001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/360001/chrome/browser/power/process_power_collector.cc#newcode132 chrome/browser/power/process_power_collector.cc:132: if (sample.battery_percent > -1 && total_cpu_percent > 0) { ...
6 years, 4 months ago (2014-08-20 21:53:15 UTC) #14
Daniel Nishi
https://codereview.chromium.org/472383002/diff/360001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/360001/chrome/browser/power/process_power_collector.cc#newcode132 chrome/browser/power/process_power_collector.cc:132: if (sample.battery_percent > -1 && total_cpu_percent > 0) { ...
6 years, 4 months ago (2014-08-21 17:53:56 UTC) #15
Daniel Erat
https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.cc#newcode23 chrome/browser/power/process_power_collector.cc:23: #include "chromeos/dbus/power_manager/power_supply_properties.pb.h" nit: don't need this and power_manager_client.h here; ...
6 years, 4 months ago (2014-08-21 23:51:21 UTC) #16
Daniel Nishi
https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.cc#newcode23 chrome/browser/power/process_power_collector.cc:23: #include "chromeos/dbus/power_manager/power_supply_properties.pb.h" On 2014/08/21 23:51:20, Daniel Erat wrote: > ...
6 years, 4 months ago (2014-08-22 01:06:20 UTC) #17
Daniel Erat
https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.h File chrome/browser/power/process_power_collector.h (right): https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.h#newcode93 chrome/browser/power/process_power_collector.h:93: void Shutdown(); On 2014/08/22 01:06:19, Daniel Nishi wrote: > ...
6 years, 4 months ago (2014-08-22 03:13:50 UTC) #18
Daniel Nishi
https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.h File chrome/browser/power/process_power_collector.h (right): https://codereview.chromium.org/472383002/diff/380001/chrome/browser/power/process_power_collector.h#newcode93 chrome/browser/power/process_power_collector.h:93: void Shutdown(); On 2014/08/22 03:13:49, Daniel Erat wrote: > ...
6 years, 4 months ago (2014-08-22 17:23:13 UTC) #19
Daniel Erat
https://codereview.chromium.org/472383002/diff/460001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/460001/chrome/browser/power/process_power_collector.cc#newcode59 chrome/browser/power/process_power_collector.cc:59: dbus_manager->GetPowerManagerClient()->RemoveObserver(this); you have an unbalanced Remove call here if ...
6 years, 4 months ago (2014-08-22 22:41:39 UTC) #20
Daniel Nishi
https://codereview.chromium.org/472383002/diff/460001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/460001/chrome/browser/power/process_power_collector.cc#newcode59 chrome/browser/power/process_power_collector.cc:59: dbus_manager->GetPowerManagerClient()->RemoveObserver(this); On 2014/08/22 22:41:38, Daniel Erat wrote: > you ...
6 years, 4 months ago (2014-08-22 23:21:32 UTC) #21
Daniel Erat
lgtm
6 years, 4 months ago (2014-08-23 02:12:14 UTC) #22
Daniel Nishi
sky@: PTAL and stamp?
6 years, 3 months ago (2014-08-25 14:35:26 UTC) #23
sky
https://codereview.chromium.org/472383002/diff/540001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/540001/chrome/browser/power/process_power_collector.cc#newcode41 chrome/browser/power/process_power_collector.cc:41: ProcessPowerCollector::PerProcessData::PerProcessData() { Initially all pod types here, eg profile_, ...
6 years, 3 months ago (2014-08-25 15:59:31 UTC) #24
Daniel Nishi
https://codereview.chromium.org/472383002/diff/540001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/540001/chrome/browser/power/process_power_collector.cc#newcode41 chrome/browser/power/process_power_collector.cc:41: ProcessPowerCollector::PerProcessData::PerProcessData() { On 2014/08/25 15:59:31, sky wrote: > Initially ...
6 years, 3 months ago (2014-08-25 17:06:50 UTC) #25
sky
https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc#newcode73 chrome/browser/power/process_power_collector.cc:73: Initialize(); Init/Initialize methods are generally one shot functions the ...
6 years, 3 months ago (2014-08-25 19:38:40 UTC) #26
Daniel Nishi
https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc#newcode73 chrome/browser/power/process_power_collector.cc:73: Initialize(); On 2014/08/25 19:38:39, sky wrote: > Init/Initialize methods ...
6 years, 3 months ago (2014-08-25 20:19:24 UTC) #27
sky
https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc#newcode4 chrome/browser/power/process_power_collector.cc:4: #include "chrome/browser/power/process_power_collector.h" nit: newline between 3/4. https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc#newcode73 chrome/browser/power/process_power_collector.cc:73: Initialize(); ...
6 years, 3 months ago (2014-08-25 20:43:44 UTC) #28
Daniel Nishi
https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc File chrome/browser/power/process_power_collector.cc (right): https://codereview.chromium.org/472383002/diff/560001/chrome/browser/power/process_power_collector.cc#newcode4 chrome/browser/power/process_power_collector.cc:4: #include "chrome/browser/power/process_power_collector.h" On 2014/08/25 20:43:43, sky wrote: > nit: ...
6 years, 3 months ago (2014-08-25 21:08:33 UTC) #29
sky
LGTM
6 years, 3 months ago (2014-08-25 22:46:47 UTC) #30
Daniel Nishi
The CQ bit was checked by dhnishi@chromium.org
6 years, 3 months ago (2014-08-25 22:51:59 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dhnishi@chromium.org/472383002/600001
6 years, 3 months ago (2014-08-25 22:54:00 UTC) #32
Daniel Nishi
The CQ bit was checked by dhnishi@chromium.org
6 years, 3 months ago (2014-08-26 16:56:42 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dhnishi@chromium.org/472383002/620001
6 years, 3 months ago (2014-08-26 16:57:09 UTC) #34
Daniel Nishi
The CQ bit was unchecked by dhnishi@chromium.org
6 years, 3 months ago (2014-08-26 17:03:16 UTC) #35
Daniel Nishi
The CQ bit was checked by dhnishi@chromium.org
6 years, 3 months ago (2014-08-26 17:52:04 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dhnishi@chromium.org/472383002/640001
6 years, 3 months ago (2014-08-26 17:52:22 UTC) #37
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_chromium_rel_swarming on tryserver.chromium.win ...
6 years, 3 months ago (2014-08-26 18:41:59 UTC) #38
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 3 months ago (2014-08-26 19:54:54 UTC) #39
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_swarming/builds/5841)
6 years, 3 months ago (2014-08-26 19:54:56 UTC) #40
Daniel Nishi
The CQ bit was checked by dhnishi@chromium.org
6 years, 3 months ago (2014-08-26 21:50:15 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dhnishi@chromium.org/472383002/640001
6 years, 3 months ago (2014-08-26 21:53:53 UTC) #42
commit-bot: I haz the power
Committed patchset #17 (640001) as 1a9eda4d8289e13b43efd2b35ee032e016479caa
6 years, 3 months ago (2014-08-26 22:25:22 UTC) #43
commit-bot: I haz the power
6 years, 3 months ago (2014-09-10 02:46:19 UTC) #44
Message was sent while issue was closed.
Patchset 17 (id:??) landed as
https://crrev.com/3cf1d2aa622e9513c593fff948b6df149737e8d2
Cr-Commit-Position: refs/heads/master@{#291999}

Powered by Google App Engine
This is Rietveld 408576698