Commit 9f4c9f6d authored by Dmitry Gozman's avatar Dmitry Gozman Committed by Commit Bot

[DevTools] Do not plumb TraceLog::SetEnabled through content

Blink can now do it directly, which unblocks moving DevToolsAgent
to blink.

Bug: 776009
Change-Id: I4b1466005b10dd9969040803a9517e6dff18dc38
Reviewed-on: https://chromium-review.googlesource.com/827551Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Reviewed-by: default avatarPavel Feldman <pfeldman@chromium.org>
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524476}
parent 6b2dc6a3
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include "base/lazy_instance.h" #include "base/lazy_instance.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "content/child/child_process.h" #include "content/child/child_process.h"
#include "content/common/devtools_messages.h" #include "content/common/devtools_messages.h"
#include "content/common/frame_messages.h" #include "content/common/frame_messages.h"
...@@ -241,23 +240,6 @@ bool DevToolsAgent::RequestDevToolsForFrame(int session_id, ...@@ -241,23 +240,6 @@ bool DevToolsAgent::RequestDevToolsForFrame(int session_id,
return true; return true;
} }
void DevToolsAgent::EnableTracing(const WebString& category_filter) {
// Tracing is already started by DevTools TracingHandler::Start for the
// renderer target in the browser process. It will eventually start tracing in
// the renderer process via IPC. But we still need a redundant
// TraceLog::SetEnabled call here for
// InspectorTracingAgent::emitMetadataEvents(), at which point, we are not
// sure if tracing is already started in the renderer process.
TraceLog* trace_log = TraceLog::GetInstance();
trace_log->SetEnabled(
base::trace_event::TraceConfig(category_filter.Utf8(), ""),
TraceLog::RECORDING_MODE);
}
void DevToolsAgent::DisableTracing() {
TraceLog::GetInstance()->SetDisabled();
}
void DevToolsAgent::SetCPUThrottlingRate(double rate) { void DevToolsAgent::SetCPUThrottlingRate(double rate) {
DevToolsCPUThrottler::GetInstance()->SetThrottlingRate(rate); DevToolsCPUThrottler::GetInstance()->SetThrottlingRate(rate);
} }
......
...@@ -70,8 +70,6 @@ class CONTENT_EXPORT DevToolsAgent : public RenderFrameObserver, ...@@ -70,8 +70,6 @@ class CONTENT_EXPORT DevToolsAgent : public RenderFrameObserver,
void DidExitDebugLoop() override; void DidExitDebugLoop() override;
bool RequestDevToolsForFrame(int session_id, bool RequestDevToolsForFrame(int session_id,
blink::WebLocalFrame* frame) override; blink::WebLocalFrame* frame) override;
void EnableTracing(const blink::WebString& category_filter) override;
void DisableTracing() override;
void SetCPUThrottlingRate(double rate) override; void SetCPUThrottlingRate(double rate) override;
void DetachSession(int session_id); void DetachSession(int session_id);
......
...@@ -468,16 +468,6 @@ void WebDevToolsAgentImpl::LayerTreeViewChanged( ...@@ -468,16 +468,6 @@ void WebDevToolsAgentImpl::LayerTreeViewChanged(
it.value->SetLayerTreeId(layer_tree_id_); it.value->SetLayerTreeId(layer_tree_id_);
} }
void WebDevToolsAgentImpl::EnableTracing(const String& category_filter) {
if (client_)
client_->EnableTracing(category_filter);
}
void WebDevToolsAgentImpl::DisableTracing() {
if (client_)
client_->DisableTracing();
}
void WebDevToolsAgentImpl::ShowReloadingBlanket() { void WebDevToolsAgentImpl::ShowReloadingBlanket() {
for (auto& it : overlay_agents_) for (auto& it : overlay_agents_)
it.value->ShowReloadingBlanket(); it.value->ShowReloadingBlanket();
......
...@@ -108,8 +108,6 @@ class CORE_EXPORT WebDevToolsAgentImpl final ...@@ -108,8 +108,6 @@ class CORE_EXPORT WebDevToolsAgentImpl final
bool include_view_agents); bool include_view_agents);
// InspectorTracingAgent::Client implementation. // InspectorTracingAgent::Client implementation.
void EnableTracing(const WTF::String& category_filter) override;
void DisableTracing() override;
void ShowReloadingBlanket() override; void ShowReloadingBlanket() override;
void HideReloadingBlanket() override; void HideReloadingBlanket() override;
......
...@@ -75,13 +75,20 @@ void InspectorTracingAgent::start(Maybe<String> categories, ...@@ -75,13 +75,20 @@ void InspectorTracingAgent::start(Maybe<String> categories,
instrumenting_agents_->addInspectorTracingAgent(this); instrumenting_agents_->addInspectorTracingAgent(this);
state_->setString(TracingAgentState::kSessionId, state_->setString(TracingAgentState::kSessionId,
IdentifiersFactory::CreateIdentifier()); IdentifiersFactory::CreateIdentifier());
client_->EnableTracing(categories.fromMaybe(String()));
// Tracing is already started by DevTools TracingHandler::Start for the
// renderer target in the browser process. It will eventually start tracing
// in the renderer process via IPC. But we still need a redundant enable here
// for EmitMetadataEvents, at which point we are not sure if tracing
// is already started in the renderer process.
TraceEvent::EnableTracing(categories.fromMaybe(String()));
EmitMetadataEvents(); EmitMetadataEvents();
callback->sendSuccess(); callback->sendSuccess();
} }
void InspectorTracingAgent::end(std::unique_ptr<EndCallback> callback) { void InspectorTracingAgent::end(std::unique_ptr<EndCallback> callback) {
client_->DisableTracing(); TraceEvent::DisableTracing();
InnerDisable(); InnerDisable();
callback->sendSuccess(); callback->sendSuccess();
} }
......
...@@ -26,8 +26,6 @@ class CORE_EXPORT InspectorTracingAgent final ...@@ -26,8 +26,6 @@ class CORE_EXPORT InspectorTracingAgent final
public: public:
virtual ~Client() {} virtual ~Client() {}
virtual void EnableTracing(const String& category_filter) = 0;
virtual void DisableTracing() = 0;
virtual void ShowReloadingBlanket() = 0; virtual void ShowReloadingBlanket() = 0;
virtual void HideReloadingBlanket() = 0; virtual void HideReloadingBlanket() = 0;
}; };
......
...@@ -15,6 +15,7 @@ jumbo_source_set("instrumentation") { ...@@ -15,6 +15,7 @@ jumbo_source_set("instrumentation") {
"resource_coordinator/RendererResourceCoordinator.h", "resource_coordinator/RendererResourceCoordinator.h",
"tracing/MemoryCacheDumpProvider.cpp", "tracing/MemoryCacheDumpProvider.cpp",
"tracing/MemoryCacheDumpProvider.h", "tracing/MemoryCacheDumpProvider.h",
"tracing/TraceEvent.cpp",
"tracing/TraceEvent.h", "tracing/TraceEvent.h",
"tracing/TracedValue.cpp", "tracing/TracedValue.cpp",
"tracing/TracedValue.h", "tracing/TracedValue.h",
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "platform/instrumentation/tracing/TraceEvent.h"
#include "base/trace_event/trace_event.h"
namespace blink {
namespace TraceEvent {
void EnableTracing(const String& category_filter) {
base::trace_event::TraceLog::GetInstance()->SetEnabled(
base::trace_event::TraceConfig(category_filter.Utf8().data(), ""),
base::trace_event::TraceLog::RECORDING_MODE);
}
void DisableTracing() {
base::trace_event::TraceLog::GetInstance()->SetDisabled();
}
} // namespace TraceEvent
} // namespace blink
...@@ -7,7 +7,9 @@ ...@@ -7,7 +7,9 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "platform/PlatformExport.h"
#include "platform/wtf/text/CString.h" #include "platform/wtf/text/CString.h"
#include "platform/wtf/text/WTFString.h"
namespace WTF { namespace WTF {
...@@ -35,6 +37,9 @@ inline base::TimeTicks ToTraceTimestamp(double seconds) { ...@@ -35,6 +37,9 @@ inline base::TimeTicks ToTraceTimestamp(double seconds) {
// This is to avoid error of passing a chromium time internal value. // This is to avoid error of passing a chromium time internal value.
void ToTraceTimestamp(int64_t); void ToTraceTimestamp(int64_t);
PLATFORM_EXPORT void EnableTracing(const String& category_filter);
PLATFORM_EXPORT void DisableTracing();
} // namespace TraceEvent } // namespace TraceEvent
} // namespace blink } // namespace blink
......
...@@ -66,9 +66,6 @@ class WebDevToolsAgentClient { ...@@ -66,9 +66,6 @@ class WebDevToolsAgentClient {
return false; return false;
} }
virtual void EnableTracing(const WebString& category_filter) {}
virtual void DisableTracing() {}
virtual void SetCPUThrottlingRate(double rate) {} virtual void SetCPUThrottlingRate(double rate) {}
protected: protected:
......
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