Index: chrome/browser/automation/automation_provider.cc |
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc |
index b2dc726bf7000eef4a5c0d853cfb2e1535242953..6905cf5beab0e7ebaa5f9cbe577012e576911be7 100644 |
--- a/chrome/browser/automation/automation_provider.cc |
+++ b/chrome/browser/automation/automation_provider.cc |
@@ -66,7 +66,7 @@ |
#include "content/public/browser/download_item.h" |
#include "content/public/browser/native_web_keyboard_event.h" |
#include "content/public/browser/render_view_host.h" |
-#include "content/public/browser/trace_controller.h" |
+#include "content/public/browser/tracing_controller.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_contents_view.h" |
#include "net/proxy/proxy_config_service_fixed.h" |
@@ -86,7 +86,7 @@ using content::BrowserThread; |
using content::DownloadItem; |
using content::NavigationController; |
using content::RenderViewHost; |
-using content::TraceController; |
+using content::TracingController; |
using content::WebContents; |
namespace { |
@@ -376,20 +376,6 @@ void AutomationProvider::OnChannelConnected(int pid) { |
SendInitialLoadMessage(); |
} |
-void AutomationProvider::OnEndTracingComplete() { |
- IPC::Message* reply_message = tracing_data_.reply_message.release(); |
- if (reply_message) { |
- AutomationMsg_EndTracing::WriteReplyParams( |
- reply_message, tracing_data_.trace_output.size(), true); |
- Send(reply_message); |
- } |
-} |
- |
-void AutomationProvider::OnTraceDataCollected( |
- const scoped_refptr<base::RefCountedString>& trace_fragment) { |
- tracing_data_.trace_output.push_back(trace_fragment->data()); |
-} |
- |
bool AutomationProvider::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
bool deserialize_success = true; |
@@ -412,7 +398,6 @@ bool AutomationProvider::OnMessageReceived(const IPC::Message& message) { |
JavaScriptStressTestControl) |
IPC_MESSAGE_HANDLER(AutomationMsg_BeginTracing, BeginTracing) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_EndTracing, EndTracing) |
- IPC_MESSAGE_HANDLER(AutomationMsg_GetTracingOutput, GetTracingOutput) |
#if defined(OS_WIN) |
// These are for use with external tabs. |
IPC_MESSAGE_HANDLER(AutomationMsg_CreateExternalTab, CreateExternalTab) |
@@ -722,39 +707,28 @@ void AutomationProvider::JavaScriptStressTestControl(int tab_handle, |
void AutomationProvider::BeginTracing(const std::string& category_patterns, |
bool* success) { |
- tracing_data_.trace_output.clear(); |
- *success = TraceController::GetInstance()->BeginTracing( |
- this, |
- category_patterns, |
- base::debug::TraceLog::RECORD_UNTIL_FULL); |
+ *success = TracingController::GetInstance()->EnableRecording( |
+ category_patterns, TracingController::DEFAULT_OPTIONS, |
+ TracingController::EnableRecordingDoneCallback()); |
} |
void AutomationProvider::EndTracing(IPC::Message* reply_message) { |
- bool success = false; |
- if (!tracing_data_.reply_message.get()) |
- success = TraceController::GetInstance()->EndTracingAsync(this); |
- if (success) { |
- // Defer EndTracing reply until TraceController calls us back with all the |
- // events. |
- tracing_data_.reply_message.reset(reply_message); |
- } else { |
+ base::FilePath path; |
+ if (!TracingController::GetInstance()->DisableRecording( |
+ path, base::Bind(&AutomationProvider::OnTraceDataCollected, this, |
+ reply_message))) { |
// If failed to call EndTracingAsync, need to reply with failure now. |
- AutomationMsg_EndTracing::WriteReplyParams(reply_message, size_t(0), false); |
+ AutomationMsg_EndTracing::WriteReplyParams(reply_message, path, false); |
Send(reply_message); |
} |
+ // Otherwise defer EndTracing reply until TraceController calls us back. |
} |
-void AutomationProvider::GetTracingOutput(std::string* chunk, |
- bool* success) { |
- // The JSON data is sent back to the test in chunks, because IPC sends will |
- // fail if they are too large. |
- if (tracing_data_.trace_output.empty()) { |
- *chunk = ""; |
- *success = false; |
- } else { |
- *chunk = tracing_data_.trace_output.front(); |
- tracing_data_.trace_output.pop_front(); |
- *success = true; |
+void AutomationProvider::OnTraceDataCollected(IPC::Message* reply_message, |
+ const base::FilePath& path) { |
+ if (reply_message) { |
+ AutomationMsg_EndTracing::WriteReplyParams(reply_message, path, true); |
+ Send(reply_message); |
} |
} |