DevTools: allow tracing over the remote debugging pipe.
This includes transition from \n to \0 message separation.
Change-Id: I9bcd5690dc848a6d4206d051443be2082d747824
Reviewed-on: https://chromium-review.googlesource.com/1135939
Reviewed-by: Joel Einbinder <einbinder@chromium.org>
Commit-Queue: Pavel Feldman <pfeldman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574785}
diff --git a/content/browser/devtools/browser_devtools_agent_host.cc b/content/browser/devtools/browser_devtools_agent_host.cc
index d361bc1..5acd8da 100644
--- a/content/browser/devtools/browser_devtools_agent_host.cc
+++ b/content/browser/devtools/browser_devtools_agent_host.cc
@@ -71,8 +71,10 @@
session->AddHandler(std::make_unique<protocol::MemoryHandler>());
session->AddHandler(std::make_unique<protocol::SecurityHandler>());
session->AddHandler(std::make_unique<protocol::SystemInfoHandler>());
- session->AddHandler(std::make_unique<protocol::TetheringHandler>(
- socket_callback_, tethering_task_runner_));
+ if (tethering_task_runner_) {
+ session->AddHandler(std::make_unique<protocol::TetheringHandler>(
+ socket_callback_, tethering_task_runner_));
+ }
session->AddHandler(
std::make_unique<protocol::TracingHandler>(nullptr, GetIOContext()));
return true;
diff --git a/content/browser/devtools/devtools_pipe_handler.cc b/content/browser/devtools/devtools_pipe_handler.cc
index 4fbea24..dcdce1fe 100644
--- a/content/browser/devtools/devtools_pipe_handler.cc
+++ b/content/browser/devtools/devtools_pipe_handler.cc
@@ -66,9 +66,9 @@
}
#if defined(OS_WIN)
DWORD result = 0;
- WriteFile(handle, "\n", 1, &result, nullptr);
+ WriteFile(handle, "\0", 1, &result, nullptr);
#else
- int result = write(write_fd, "\n", 1);
+ int result = write(write_fd, "\0", 1);
#endif
if (!result) {
LOG(ERROR) << "Could not write into pipe";
@@ -145,11 +145,11 @@
read_buffer_->DidRead(result);
- // Go over the last read chunk, look for \n, extract messages.
+ // Go over the last read chunk, look for \0, extract messages.
int offset = 0;
for (int i = read_buffer_->GetSize() - result; i < read_buffer_->GetSize();
++i) {
- if (read_buffer_->StartOfBuffer()[i] == '\n') {
+ if (read_buffer_->StartOfBuffer()[i] == '\0') {
std::string str(read_buffer_->StartOfBuffer() + offset, i - offset);
BrowserThread::PostTask(
@@ -190,7 +190,8 @@
return;
}
- browser_target_ = DevToolsAgentHost::CreateForDiscovery();
+ browser_target_ = DevToolsAgentHost::CreateForBrowser(
+ nullptr, DevToolsAgentHost::CreateServerSocketCallback());
browser_target_->AttachClient(this);
pipe_reader_.reset(new PipeReader(weak_factory_.GetWeakPtr(), read_fd_));