Commit 20accbe4 authored by yurys@chromium.org's avatar yurys@chromium.org

Make tracing based Timeline stop after reloading inspected page

This change fixes the following problem:
1. Run browser with remote debugging enabled (--remote-debugging-port=9222)
2. Open remote debugging front-end in the same browser (localhost:9222)
3. Inspect that front-end using built-in DevTools.
4. Go to Timeline and press Ctrl+R

Result:
Timeline recording starts automatically and never stops after reload.

With this patch:
It will stop recoding after reload.

BUG=None

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284706 0039d316-1c4b-4281-b951-d872f2087c98
parent cb0c67a8
...@@ -48,7 +48,7 @@ void ReadFile( ...@@ -48,7 +48,7 @@ void ReadFile(
DevToolsTracingHandler::DevToolsTracingHandler( DevToolsTracingHandler::DevToolsTracingHandler(
DevToolsTracingHandler::Target target) DevToolsTracingHandler::Target target)
: weak_factory_(this), target_(target) { : weak_factory_(this), target_(target), is_recording_(false) {
RegisterCommandHandler(devtools::Tracing::start::kName, RegisterCommandHandler(devtools::Tracing::start::kName,
base::Bind(&DevToolsTracingHandler::OnStart, base::Bind(&DevToolsTracingHandler::OnStart,
base::Unretained(this))); base::Unretained(this)));
...@@ -138,6 +138,7 @@ TracingController::Options DevToolsTracingHandler::TraceOptionsFromString( ...@@ -138,6 +138,7 @@ TracingController::Options DevToolsTracingHandler::TraceOptionsFromString(
scoped_refptr<DevToolsProtocol::Response> scoped_refptr<DevToolsProtocol::Response>
DevToolsTracingHandler::OnStart( DevToolsTracingHandler::OnStart(
scoped_refptr<DevToolsProtocol::Command> command) { scoped_refptr<DevToolsProtocol::Command> command) {
is_recording_ = true;
std::string categories; std::string categories;
base::DictionaryValue* params = command->params(); base::DictionaryValue* params = command->params();
if (params) if (params)
...@@ -211,12 +212,14 @@ DevToolsTracingHandler::OnEnd( ...@@ -211,12 +212,14 @@ DevToolsTracingHandler::OnEnd(
void DevToolsTracingHandler::DisableRecording( void DevToolsTracingHandler::DisableRecording(
const TracingController::TracingFileResultCallback& callback) { const TracingController::TracingFileResultCallback& callback) {
is_recording_ = false;
buffer_usage_poll_timer_.reset(); buffer_usage_poll_timer_.reset();
TracingController::GetInstance()->DisableRecording(base::FilePath(), TracingController::GetInstance()->DisableRecording(base::FilePath(),
callback); callback);
} }
void DevToolsTracingHandler::OnClientDetached() { void DevToolsTracingHandler::OnClientDetached() {
if (is_recording_)
DisableRecording(); DisableRecording();
} }
......
...@@ -55,6 +55,7 @@ class DevToolsTracingHandler : public DevToolsProtocol::Handler { ...@@ -55,6 +55,7 @@ class DevToolsTracingHandler : public DevToolsProtocol::Handler {
base::WeakPtrFactory<DevToolsTracingHandler> weak_factory_; base::WeakPtrFactory<DevToolsTracingHandler> weak_factory_;
scoped_ptr<base::Timer> buffer_usage_poll_timer_; scoped_ptr<base::Timer> buffer_usage_poll_timer_;
Target target_; Target target_;
bool is_recording_;
DISALLOW_COPY_AND_ASSIGN(DevToolsTracingHandler); DISALLOW_COPY_AND_ASSIGN(DevToolsTracingHandler);
}; };
......
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