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

Unified Diff: content/browser/devtools/devtools_frontend_host.cc

Issue 106223002: chrome power profiler chrome side changes (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/devtools/devtools_frontend_host.cc
diff --git a/content/browser/devtools/devtools_frontend_host.cc b/content/browser/devtools/devtools_frontend_host.cc
index bfa623a140ea327a4f9ae13ff57bf31dd0d0b8f6..ca272efbcbf042513e73f9f04c177a2a8f80659f 100644
--- a/content/browser/devtools/devtools_frontend_host.cc
+++ b/content/browser/devtools/devtools_frontend_host.cc
@@ -4,10 +4,14 @@
#include "content/browser/devtools/devtools_frontend_host.h"
+#include "base/json/json_writer.h"
+#include "base/memory/weak_ptr.h"
#include "content/browser/devtools/devtools_manager_impl.h"
+#include "content/browser/power_profiler/power_profiler_service.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/common/devtools_messages.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_client_host.h"
#include "content/public/browser/devtools_frontend_host_delegate.h"
@@ -32,10 +36,15 @@ DevToolsFrontendHost::DevToolsFrontendHost(
WebContentsImpl* web_contents,
DevToolsFrontendHostDelegate* delegate)
: WebContentsObserver(web_contents),
- delegate_(delegate) {
+ delegate_(delegate),
+ weak_factory_(this),
+ power_profiler_host_(new DevToolsPowerProfilerHost(
+ weak_factory_.GetWeakPtr())) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
}
DevToolsFrontendHost::~DevToolsFrontendHost() {
+ power_profiler_host_->UnRegister();
DevToolsManager::GetInstance()->ClientHostClosing(this);
}
@@ -65,6 +74,12 @@ bool DevToolsFrontendHost::OnMessageReceived(
OnDispatchOnInspectorBackend)
IPC_MESSAGE_HANDLER(DevToolsHostMsg_DispatchOnEmbedder,
OnDispatchOnEmbedder)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_PowerProfileSupported,
+ OnPowerProfileStatus)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_StartPowerProfile, OnStartProfile)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_StopPowerProfile, OnStopProfile)
+ IPC_MESSAGE_HANDLER(DevToolsHostMsg_SetPowerProfileResolution,
+ OnSetResolution)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -93,4 +108,34 @@ void DevToolsFrontendHost::OnDispatchOnEmbedder(
delegate_->DispatchOnEmbedder(message);
}
+void DevToolsFrontendHost::OnPowerProfileStatus() {
+ bool is_supported = true;
+ if (!PowerProfilerService::Get() || PowerProfilerService::UNINITIALIZED ==
+ PowerProfilerService::Get()->status())
+ is_supported = false;
+ std::string json_string;
+ base::DictionaryValue message_object;
+ base::DictionaryValue* params = new base::DictionaryValue();
+ params->Set("isSupported", base::Value::CreateBooleanValue(is_supported));
+ message_object.Set("params", params);
+ message_object.SetString("method", "Power.powerProfileSupported");
+ base::JSONWriter::Write(&message_object, &json_string);
+ DispatchOnInspectorFrontend(json_string);
+}
+
+void DevToolsFrontendHost::OnStartProfile() {
+ power_profiler_host_->Register();
+}
+
+void DevToolsFrontendHost::OnStopProfile() {
+ power_profiler_host_->UnRegister();
+}
+
+void DevToolsFrontendHost::OnSetResolution(unsigned resolution) {
+ assert (resolution >= 0 &&
+ resolution < static_cast<unsigned>(PowerProfilerHost::TYPE_COUNT));
+ power_profiler_host_->SetResolution(
+ static_cast<PowerProfilerHost::Resolution>(resolution));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698