| Index: content/browser/devtools/devtools_power_handler.cc
|
| diff --git a/content/browser/devtools/devtools_power_handler.cc b/content/browser/devtools/devtools_power_handler.cc
|
| index 43772b47607e2dddd54bd4cab003f3f8f5716e3d..1eb4edd0a8bec19d6ef2fb90cf5746158861ffaa 100644
|
| --- a/content/browser/devtools/devtools_power_handler.cc
|
| +++ b/content/browser/devtools/devtools_power_handler.cc
|
| @@ -8,10 +8,16 @@
|
| #include "base/values.h"
|
| #include "content/browser/devtools/devtools_protocol_constants.h"
|
| #include "content/browser/power_profiler/power_profiler_service.h"
|
| +#include "content/public/browser/devtools_manager.h"
|
|
|
| namespace content {
|
|
|
| -DevToolsPowerHandler::DevToolsPowerHandler() {
|
| +DevToolsPowerHandler::DevToolsPowerHandler(
|
| + DevToolsAgentHost* devtools_agent_host)
|
| + : devtools_agent_host_(devtools_agent_host),
|
| + devtools_callback_(
|
| + base::Bind(&DevToolsPowerHandler::OnDevToolsStateChanged,
|
| + base::Unretained(this))) {
|
| RegisterCommandHandler(devtools::Power::start::kName,
|
| base::Bind(&DevToolsPowerHandler::OnStart,
|
| base::Unretained(this)));
|
| @@ -21,10 +27,14 @@ DevToolsPowerHandler::DevToolsPowerHandler() {
|
| RegisterCommandHandler(devtools::Power::canProfilePower::kName,
|
| base::Bind(&DevToolsPowerHandler::OnCanProfilePower,
|
| base::Unretained(this)));
|
| + content::DevToolsManager::GetInstance()->AddAgentStateCallback(
|
| + devtools_callback_);
|
| }
|
|
|
| DevToolsPowerHandler::~DevToolsPowerHandler() {
|
| PowerProfilerService::GetInstance()->RemoveObserver(this);
|
| + content::DevToolsManager::GetInstance()->RemoveAgentStateCallback(
|
| + devtools_callback_);
|
| }
|
|
|
| void DevToolsPowerHandler::OnPowerEvent(const PowerEventVector& events) {
|
| @@ -80,4 +90,12 @@ DevToolsPowerHandler::OnCanProfilePower(
|
| return command->SuccessResponse(result);
|
| }
|
|
|
| +void DevToolsPowerHandler::OnDevToolsStateChanged(
|
| + content::DevToolsAgentHost* agent_host,
|
| + bool attached) {
|
| + if (!attached && agent_host == devtools_agent_host_) {
|
| + PowerProfilerService::GetInstance()->RemoveObserver(this);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|