Index: content/browser/devtools/protocol/tracing_handler.cc |
diff --git a/content/browser/devtools/protocol/tracing_handler.cc b/content/browser/devtools/protocol/tracing_handler.cc |
index 3db56293dda72f476847ff279f98a295a61eefa9..f4ce95b8ce3505d5806b4cf73e4efe05bca0e00d 100644 |
--- a/content/browser/devtools/protocol/tracing_handler.cc |
+++ b/content/browser/devtools/protocol/tracing_handler.cc |
@@ -3,15 +3,6 @@ |
// found in the LICENSE file. |
#include "content/browser/devtools/protocol/tracing_handler.h" |
- |
-#include <cmath> |
- |
-#include "base/bind.h" |
-#include "base/debug/trace_event_impl.h" |
-#include "base/strings/string_split.h" |
-#include "base/strings/stringprintf.h" |
-#include "base/time/time.h" |
-#include "base/timer/timer.h" |
namespace content { |
namespace devtools { |
@@ -19,40 +10,7 @@ |
typedef DevToolsProtocolClient::Response Response; |
-namespace { |
- |
-const char kRecordUntilFull[] = "record-until-full"; |
-const char kRecordContinuously[] = "record-continuously"; |
-const char kRecordAsMuchAsPossible[] = "record-as-much-as-possible"; |
-const char kEnableSampling[] = "enable-sampling"; |
-const double kMinimumReportingInterval = 250.0; |
- |
-class DevToolsTraceSinkProxy : public TracingController::TraceDataSink { |
- public: |
- explicit DevToolsTraceSinkProxy(base::WeakPtr<TracingHandler> handler) |
- : tracing_handler_(handler) {} |
- |
- virtual void AddTraceChunk(const std::string& chunk) override { |
- if (TracingHandler* h = tracing_handler_.get()) |
- h->OnTraceDataCollected(chunk); |
- } |
- virtual void Close() override { |
- if (TracingHandler* h = tracing_handler_.get()) |
- h->OnTraceComplete(); |
- } |
- |
- private: |
- virtual ~DevToolsTraceSinkProxy() {} |
- |
- base::WeakPtr<TracingHandler> tracing_handler_; |
-}; |
- |
-} // namespace |
- |
-TracingHandler::TracingHandler(TracingHandler::Target target) |
- : target_(target), |
- is_recording_(false), |
- weak_factory_(this) { |
+TracingHandler::TracingHandler() { |
} |
TracingHandler::~TracingHandler() { |
@@ -62,152 +20,30 @@ |
client_.swap(client); |
} |
-void TracingHandler::Detached() { |
- if (is_recording_) |
- DisableRecording(true); |
-} |
- |
-void TracingHandler::OnTraceDataCollected(const std::string& trace_fragment) { |
- // Hand-craft protocol notification message so we can substitute JSON |
- // that we already got as string as a bare object, not a quoted string. |
- std::string message( |
- "{ \"method\": \"Tracing.dataCollected\", \"params\": { \"value\": ["); |
- const size_t messageSuffixSize = 10; |
- message.reserve(message.size() + trace_fragment.size() + messageSuffixSize); |
- message += trace_fragment; |
- message += "] } }"; |
- client_->SendRawMessage(message); |
-} |
- |
-void TracingHandler::OnTraceComplete() { |
- TracingCompleteParams params; |
- client_->TracingComplete(params); |
+scoped_refptr<DevToolsProtocol::Response> TracingHandler::Start( |
+ const std::string& categories, |
+ const std::string& options, |
+ const double* buffer_usage_reporting_interval, |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ return NULL; |
} |
scoped_refptr<DevToolsProtocol::Response> TracingHandler::Start( |
const std::string* categories, |
- const std::string* options_str, |
+ const std::string* options, |
const double* buffer_usage_reporting_interval, |
scoped_refptr<DevToolsProtocol::Command> command) { |
- if (is_recording_) |
- return command->InternalErrorResponse("Tracing is already started"); |
- is_recording_ = true; |
- |
- base::debug::TraceOptions options = TraceOptionsFromString(options_str); |
- base::debug::CategoryFilter filter(categories ? *categories : std::string()); |
- if (buffer_usage_reporting_interval) |
- SetupTimer(*buffer_usage_reporting_interval); |
- |
- // If inspected target is a render process Tracing.start will be handled by |
- // tracing agent in the renderer. |
- if (target_ == Renderer) { |
- TracingController::GetInstance()->EnableRecording( |
- filter, |
- options, |
- TracingController::EnableRecordingDoneCallback()); |
- return nullptr; |
- } |
- |
- TracingController::GetInstance()->EnableRecording( |
- filter, |
- options, |
- base::Bind(&TracingHandler::OnRecordingEnabled, |
- weak_factory_.GetWeakPtr(), |
- command)); |
- return command->AsyncResponsePromise(); |
+ return NULL; |
} |
scoped_refptr<DevToolsProtocol::Response> TracingHandler::End( |
scoped_refptr<DevToolsProtocol::Command> command) { |
- if (!is_recording_) |
- return command->InternalErrorResponse("Tracing is not started"); |
- DisableRecording(false); |
- // If inspected target is a render process Tracing.end will be handled by |
- // tracing agent in the renderer. |
- if (target_ == Renderer) |
- return nullptr; |
- return command->SuccessResponse(nullptr); |
+ return NULL; |
} |
scoped_refptr<DevToolsProtocol::Response> TracingHandler::GetCategories( |
scoped_refptr<DevToolsProtocol::Command> command) { |
- TracingController::GetInstance()->GetCategories( |
- base::Bind(&TracingHandler::OnCategoriesReceived, |
- weak_factory_.GetWeakPtr(), |
- command)); |
- return command->AsyncResponsePromise(); |
-} |
- |
-void TracingHandler::OnRecordingEnabled( |
- scoped_refptr<DevToolsProtocol::Command> command) { |
- StartResponse response; |
- client_->SendStartResponse(command, response); |
-} |
- |
-void TracingHandler::OnBufferUsage(float usage) { |
- BufferUsageParams params; |
- params.set_value(usage); |
- client_->BufferUsage(params); |
-} |
- |
-void TracingHandler::OnCategoriesReceived( |
- scoped_refptr<DevToolsProtocol::Command> command, |
- const std::set<std::string>& category_set) { |
- std::vector<std::string> categories(category_set.begin(), category_set.end()); |
- GetCategoriesResponse response; |
- response.set_categories(categories); |
- client_->SendGetCategoriesResponse(command, response); |
-} |
- |
-base::debug::TraceOptions TracingHandler::TraceOptionsFromString( |
- const std::string* options) { |
- base::debug::TraceOptions ret; |
- if (!options) |
- return ret; |
- |
- std::vector<std::string> split; |
- std::vector<std::string>::iterator iter; |
- |
- base::SplitString(*options, ',', &split); |
- for (iter = split.begin(); iter != split.end(); ++iter) { |
- if (*iter == kRecordUntilFull) { |
- ret.record_mode = base::debug::RECORD_UNTIL_FULL; |
- } else if (*iter == kRecordContinuously) { |
- ret.record_mode = base::debug::RECORD_CONTINUOUSLY; |
- } else if (*iter == kRecordAsMuchAsPossible) { |
- ret.record_mode = base::debug::RECORD_AS_MUCH_AS_POSSIBLE; |
- } else if (*iter == kEnableSampling) { |
- ret.enable_sampling = true; |
- } |
- } |
- return ret; |
-} |
- |
-void TracingHandler::SetupTimer(double usage_reporting_interval) { |
- if (usage_reporting_interval == 0) return; |
- |
- if (usage_reporting_interval < kMinimumReportingInterval) |
- usage_reporting_interval = kMinimumReportingInterval; |
- |
- base::TimeDelta interval = base::TimeDelta::FromMilliseconds( |
- std::ceil(usage_reporting_interval)); |
- buffer_usage_poll_timer_.reset(new base::Timer( |
- FROM_HERE, |
- interval, |
- base::Bind( |
- base::IgnoreResult(&TracingController::GetTraceBufferPercentFull), |
- base::Unretained(TracingController::GetInstance()), |
- base::Bind(&TracingHandler::OnBufferUsage, |
- weak_factory_.GetWeakPtr())), |
- true)); |
- buffer_usage_poll_timer_->Reset(); |
-} |
- |
-void TracingHandler::DisableRecording(bool abort) { |
- is_recording_ = false; |
- buffer_usage_poll_timer_.reset(); |
- TracingController::GetInstance()->DisableRecording( |
- abort ? nullptr : new DevToolsTraceSinkProxy(weak_factory_.GetWeakPtr())); |
+ return NULL; |
} |
} // namespace tracing |