| Index: base/android/java/src/org/chromium/base/TraceEvent.java
|
| diff --git a/base/android/java/src/org/chromium/base/TraceEvent.java b/base/android/java/src/org/chromium/base/TraceEvent.java
|
| index 71bfac1ef9a345526d135caefdb03d84e8bc4a39..b2f978244b16f61083be1c6a5feecb9b5a71f502 100644
|
| --- a/base/android/java/src/org/chromium/base/TraceEvent.java
|
| +++ b/base/android/java/src/org/chromium/base/TraceEvent.java
|
| @@ -38,7 +38,14 @@ public class TraceEvent {
|
| }
|
|
|
| void beginHandling(final String line) {
|
| - if (sEnabled) nativeBeginToplevel();
|
| + if (sEnabled) {
|
| + // Android Looper formats |line| as ">>>>> Dispatching to (TARGET) [...]" since at
|
| + // least 2009 (Donut). Extracts the TARGET part of the message.
|
| + int start = line.indexOf('(', 21); // strlen(">>>>> Dispatching to ")
|
| + int end = start == -1 ? -1 : line.indexOf(')', start);
|
| + String target = end != -1 ? line.substring(start + 1, end) : "";
|
| + nativeBeginToplevel(target);
|
| + }
|
| }
|
|
|
| void endHandling(final String line) {
|
| @@ -307,7 +314,7 @@ public class TraceEvent {
|
| private static native void nativeInstant(String name, String arg);
|
| private static native void nativeBegin(String name, String arg);
|
| private static native void nativeEnd(String name, String arg);
|
| - private static native void nativeBeginToplevel();
|
| + private static native void nativeBeginToplevel(String target);
|
| private static native void nativeEndToplevel();
|
| private static native void nativeStartAsync(String name, long id);
|
| private static native void nativeFinishAsync(String name, long id);
|
|
|