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() { ...@@ -23,6 +23,9 @@ DevToolsPowerHandler::DevToolsPowerHandler() {
RegisterCommandHandler(devtools::Power::end::kName, RegisterCommandHandler(devtools::Power::end::kName,
base::Bind(&DevToolsPowerHandler::OnEnd, base::Bind(&DevToolsPowerHandler::OnEnd,
base::Unretained(this))); base::Unretained(this)));
RegisterCommandHandler(devtools::Power::canProfilePower::kName,
base::Bind(&DevToolsPowerHandler::OnCanProfilePower,
base::Unretained(this)));
} }
DevToolsPowerHandler::~DevToolsPowerHandler() { DevToolsPowerHandler::~DevToolsPowerHandler() {
...@@ -69,4 +72,14 @@ DevToolsPowerHandler::OnEnd(scoped_refptr<DevToolsProtocol::Command> command) { ...@@ -69,4 +72,14 @@ DevToolsPowerHandler::OnEnd(scoped_refptr<DevToolsProtocol::Command> command) {
return command->InternalErrorResponse("Power profiler service unavailable"); 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 } // namespace content
...@@ -27,6 +27,8 @@ class DevToolsPowerHandler ...@@ -27,6 +27,8 @@ class DevToolsPowerHandler
scoped_refptr<DevToolsProtocol::Command> command); scoped_refptr<DevToolsProtocol::Command> command);
scoped_refptr<DevToolsProtocol::Response> OnEnd( scoped_refptr<DevToolsProtocol::Response> OnEnd(
scoped_refptr<DevToolsProtocol::Command> command); scoped_refptr<DevToolsProtocol::Command> command);
scoped_refptr<DevToolsProtocol::Response> OnCanProfilePower(
scoped_refptr<DevToolsProtocol::Command> command);
DISALLOW_COPY_AND_ASSIGN(DevToolsPowerHandler); DISALLOW_COPY_AND_ASSIGN(DevToolsPowerHandler);
}; };
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/lazy_instance.h" #include "base/lazy_instance.h"
#include "content/browser/child_process_security_policy_impl.h" #include "content/browser/child_process_security_policy_impl.h"
#include "content/browser/devtools/devtools_manager_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.h"
#include "content/browser/devtools/devtools_protocol_constants.h" #include "content/browser/devtools/devtools_protocol_constants.h"
#include "content/browser/devtools/devtools_tracing_handler.h" #include "content/browser/devtools/devtools_tracing_handler.h"
...@@ -139,7 +140,8 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost( ...@@ -139,7 +140,8 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(
RenderViewHost* rvh) RenderViewHost* rvh)
: render_view_host_(NULL), : render_view_host_(NULL),
overrides_handler_(new RendererOverridesHandler(this)), overrides_handler_(new RendererOverridesHandler(this)),
tracing_handler_(new DevToolsTracingHandler()) tracing_handler_(new DevToolsTracingHandler()),
power_handler_(new DevToolsPowerHandler())
{ {
SetRenderViewHost(rvh); SetRenderViewHost(rvh);
DevToolsProtocol::Notifier notifier(base::Bind( DevToolsProtocol::Notifier notifier(base::Bind(
...@@ -147,6 +149,7 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost( ...@@ -147,6 +149,7 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(
base::Unretained(this))); base::Unretained(this)));
overrides_handler_->SetNotifier(notifier); overrides_handler_->SetNotifier(notifier);
tracing_handler_->SetNotifier(notifier); tracing_handler_->SetNotifier(notifier);
power_handler_->SetNotifier(notifier);
g_instances.Get().push_back(this); g_instances.Get().push_back(this);
AddRef(); // Balanced in RenderViewHostDestroyed. AddRef(); // Balanced in RenderViewHostDestroyed.
} }
...@@ -166,6 +169,8 @@ void RenderViewDevToolsAgentHost::DispatchOnInspectorBackend( ...@@ -166,6 +169,8 @@ void RenderViewDevToolsAgentHost::DispatchOnInspectorBackend(
overrides_handler_->HandleCommand(command); overrides_handler_->HandleCommand(command);
if (!overridden_response) if (!overridden_response)
overridden_response = tracing_handler_->HandleCommand(command); overridden_response = tracing_handler_->HandleCommand(command);
if (!overridden_response)
overridden_response = power_handler_->HandleCommand(command);
if (overridden_response) { if (overridden_response) {
if (!overridden_response->is_async_promise()) if (!overridden_response->is_async_promise())
OnDispatchOnInspectorFrontend(overridden_response->Serialize()); OnDispatchOnInspectorFrontend(overridden_response->Serialize());
......
...@@ -22,6 +22,7 @@ class CompositorFrameMetadata; ...@@ -22,6 +22,7 @@ class CompositorFrameMetadata;
namespace content { namespace content {
class DevToolsPowerHandler;
class DevToolsTracingHandler; class DevToolsTracingHandler;
class RendererOverridesHandler; class RendererOverridesHandler;
class RenderViewHost; class RenderViewHost;
...@@ -95,6 +96,7 @@ class CONTENT_EXPORT RenderViewDevToolsAgentHost ...@@ -95,6 +96,7 @@ class CONTENT_EXPORT RenderViewDevToolsAgentHost
RenderViewHost* render_view_host_; RenderViewHost* render_view_host_;
scoped_ptr<RendererOverridesHandler> overrides_handler_; scoped_ptr<RendererOverridesHandler> overrides_handler_;
scoped_ptr<DevToolsTracingHandler> tracing_handler_; scoped_ptr<DevToolsTracingHandler> tracing_handler_;
scoped_ptr<DevToolsPowerHandler> power_handler_;
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_; scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_;
#endif #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