Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java

Issue 425593002: Refactor trace_event_impl's SetEnabled to use TraceOptions. Propagate this through the whole stack. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pull enable_systrace to TraceOptions Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java b/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java
index 514ab6ae324d36872a47248a1e149b9712789aa7..1ee5c5ee7545088518cd237a434dd9fca86a6175 100644
--- a/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java
+++ b/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java
@@ -41,6 +41,35 @@ import java.util.TimeZone;
*/
@JNINamespace("content")
public class TracingControllerAndroid {
+ /**
nduca 2014/07/29 00:15:01 nooo, just pass the TraceOptions-as-a-string aroun
nednguyen 2014/07/29 19:33:21 Done. Hard code these string below. Will fix the i
+ * Options for tracing.
+ */
+ public enum TraceOptions {
+ /**
+ * Record traces until when the trace buffer is full, or stop tracing is called,
+ * whichever comes first. The buffer size is defined in base/debug/trace_event_impl.cc.
+ */
+ RECORD_UNTIL_FULL("record-until-full"),
+
+ /**
+ * Record traces continuously until stop tracing is called using a trace buffer ring
+ * buffer. When the ring buffer is full, oldest trace events are dropped so latest
+ * trace events can be added. The ring buffer size is defined in
+ * base/debug/trace_event_impl.cc.
+ */
+ RECORD_CONTINUOUSLY("record-continuously"),
+ ;
+
+ private final String mText;
+
+ private TraceOptions(String text) {
+ mText = text;
+ }
+
+ public String toString() {
+ return mText;
+ }
+ }
private static final String TAG = "TracingControllerAndroid";
@@ -143,11 +172,11 @@ public class TracingControllerAndroid {
/**
* Start profiling to a new file in the Downloads directory.
*
- * Calls #startTracing(String, boolean, String, boolean) with a new timestamped filename.
- * @see #startTracing(String, boolean, String, boolean)
+ * Calls #startTracing(String, boolean, String, TraceOptions) with a new timestamped filename.
+ * @see #startTracing(String, boolean, String, TraceOptions)
*/
public boolean startTracing(boolean showToasts, String categories,
- boolean recordContinuously) {
+ TraceOptions traceOptions) {
mShowToasts = showToasts;
String filePath = generateTracingFilePath();
@@ -155,7 +184,7 @@ public class TracingControllerAndroid {
logAndToastError(
mContext.getString(R.string.profiler_no_storage_toast));
}
- return startTracing(filePath, showToasts, categories, recordContinuously);
+ return startTracing(filePath, showToasts, categories, traceOptions);
}
private void initializeNativeControllerIfNeeded() {
@@ -177,11 +206,11 @@ public class TracingControllerAndroid {
* notifications about the profiling system.
* @param categories Which categories to trace. See TracingControllerAndroid::BeginTracing()
* (in content/public/browser/trace_controller.h) for the format.
- * @param recordContinuously Record until the user ends the trace. The trace buffer is fixed
+ * @param traceOptions Record until the user ends the trace. The trace buffer is fixed
* size and we use it as a ring buffer during recording.
*/
public boolean startTracing(String filename, boolean showToasts, String categories,
- boolean recordContinuously) {
+ TraceOptions traceOptions) {
mShowToasts = showToasts;
if (isTracing()) {
// Don't need a toast because this shouldn't happen via the UI.
@@ -191,7 +220,7 @@ public class TracingControllerAndroid {
// Lazy initialize the native side, to allow construction before the library is loaded.
initializeNativeControllerIfNeeded();
if (!nativeStartTracing(mNativeTracingControllerAndroid, categories,
- recordContinuously)) {
+ traceOptions.toString())) {
logAndToastError(mContext.getString(R.string.profiler_error_toast));
return false;
}
@@ -290,13 +319,14 @@ public class TracingControllerAndroid {
categories = categories.replaceFirst(
DEFAULT_CHROME_CATEGORIES_PLACE_HOLDER, nativeGetDefaultCategories());
}
- boolean recordContinuously =
- intent.getStringExtra(RECORD_CONTINUOUSLY_EXTRA) != null;
+ TraceOptions traceOptions =
+ intent.getStringExtra(RECORD_CONTINUOUSLY_EXTRA) == null ?
+ TraceOptions.RECORD_UNTIL_FULL : TraceOptions.RECORD_CONTINUOUSLY;
String filename = intent.getStringExtra(FILE_EXTRA);
if (filename != null) {
- startTracing(filename, true, categories, recordContinuously);
+ startTracing(filename, true, categories, traceOptions);
} else {
- startTracing(true, categories, recordContinuously);
+ startTracing(true, categories, traceOptions);
}
} else if (intent.getAction().endsWith(ACTION_STOP)) {
stopTracing();
@@ -312,7 +342,7 @@ public class TracingControllerAndroid {
private native long nativeInit();
private native void nativeDestroy(long nativeTracingControllerAndroid);
private native boolean nativeStartTracing(
- long nativeTracingControllerAndroid, String categories, boolean recordContinuously);
+ long nativeTracingControllerAndroid, String categories, String traceOptions);
private native void nativeStopTracing(long nativeTracingControllerAndroid, String filename);
private native boolean nativeGetKnownCategoryGroupsAsync(long nativeTracingControllerAndroid);
private native String nativeGetDefaultCategories();

Powered by Google App Engine
This is Rietveld 408576698