Commit 5526e7cd authored by pan.deng@intel.com's avatar pan.deng@intel.com

[DevTools] Add canProfilePower command and plumb power handlers to RenderViewDevToolsAgentHost

BUG=337138

Review URL: https://codereview.chromium.org/190443002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255845 0039d316-1c4b-4281-b951-d872f2087c98
parent 8aad9f3c
......@@ -23,6 +23,9 @@ DevToolsPowerHandler::DevToolsPowerHandler() {
RegisterCommandHandler(devtools::Power::end::kName,
base::Bind(&DevToolsPowerHandler::OnEnd,
base::Unretained(this)));
RegisterCommandHandler(devtools::Power::canProfilePower::kName,
base::Bind(&DevToolsPowerHandler::OnCanProfilePower,
base::Unretained(this)));
}
DevToolsPowerHandler::~DevToolsPowerHandler() {
......@@ -69,4 +72,14 @@ DevToolsPowerHandler::OnEnd(scoped_refptr<DevToolsProtocol::Command> command) {
return command->InternalErrorResponse("Power profiler service unavailable");
}
scoped_refptr<DevToolsProtocol::Response>
DevToolsPowerHandler::OnCanProfilePower(
scoped_refptr<DevToolsProtocol::Command> command) {
base::DictionaryValue* result = new base::DictionaryValue();
result->SetBoolean(devtools::kResult,
PowerProfilerService::GetInstance()->IsAvailable());
return command->SuccessResponse(result);
}
} // namespace content
......@@ -27,6 +27,8 @@ class DevToolsPowerHandler
scoped_refptr<DevToolsProtocol::Command> command);
scoped_refptr<DevToolsProtocol::Response> OnEnd(
scoped_refptr<DevToolsProtocol::Command> command);
scoped_refptr<DevToolsProtocol::Response> OnCanProfilePower(
scoped_refptr<DevToolsProtocol::Command> command);
DISALLOW_COPY_AND_ASSIGN(DevToolsPowerHandler);
};
......
......@@ -8,6 +8,7 @@
#include "base/lazy_instance.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/browser/devtools/devtools_manager_impl.h"
#include "content/browser/devtools/devtools_power_handler.h"
#include "content/browser/devtools/devtools_protocol.h"
#include "content/browser/devtools/devtools_protocol_constants.h"
#include "content/browser/devtools/devtools_tracing_handler.h"
......@@ -139,7 +140,8 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(
RenderViewHost* rvh)
: render_view_host_(NULL),
overrides_handler_(new RendererOverridesHandler(this)),
tracing_handler_(new DevToolsTracingHandler())
tracing_handler_(new DevToolsTracingHandler()),
power_handler_(new DevToolsPowerHandler())
{
SetRenderViewHost(rvh);
DevToolsProtocol::Notifier notifier(base::Bind(
......@@ -147,6 +149,7 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(
base::Unretained(this)));
overrides_handler_->SetNotifier(notifier);
tracing_handler_->SetNotifier(notifier);
power_handler_->SetNotifier(notifier);
g_instances.Get().push_back(this);
AddRef(); // Balanced in RenderViewHostDestroyed.
}
......@@ -166,6 +169,8 @@ void RenderViewDevToolsAgentHost::DispatchOnInspectorBackend(
overrides_handler_->HandleCommand(command);
if (!overridden_response)
overridden_response = tracing_handler_->HandleCommand(command);
if (!overridden_response)
overridden_response = power_handler_->HandleCommand(command);
if (overridden_response) {
if (!overridden_response->is_async_promise())
OnDispatchOnInspectorFrontend(overridden_response->Serialize());
......
......@@ -22,6 +22,7 @@ class CompositorFrameMetadata;
namespace content {
class DevToolsPowerHandler;
class DevToolsTracingHandler;
class RendererOverridesHandler;
class RenderViewHost;
......@@ -95,6 +96,7 @@ class CONTENT_EXPORT RenderViewDevToolsAgentHost
RenderViewHost* render_view_host_;
scoped_ptr<RendererOverridesHandler> overrides_handler_;
scoped_ptr<DevToolsTracingHandler> tracing_handler_;
scoped_ptr<DevToolsPowerHandler> power_handler_;
#if defined(OS_ANDROID)
scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_;
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment