From 27359c558ff729b99f7afbce9a3af66b6de7aed9 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Mon, 23 Mar 2015 13:22:13 -0700 Subject: [PATCH] Add tracing to oknet R=rafaelw@chromium.org Review URL: https://codereview.chromium.org/1018393006 --- services/oknet/BUILD.gn | 1 + .../oknet/src/org/domokit/oknet/UrlLoaderImpl.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/services/oknet/BUILD.gn b/services/oknet/BUILD.gn index 2ef356d08da..ded244e55ee 100644 --- a/services/oknet/BUILD.gn +++ b/services/oknet/BUILD.gn @@ -12,6 +12,7 @@ android_library("oknet") { ] deps = [ + "//base:base_java", "//mojo/public/java:bindings", "//mojo/public/java:system", "//mojo/services/network/public/interfaces:interfaces_java", diff --git a/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java b/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java index 7fc249fab28..c2fdd01b1cb 100644 --- a/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java +++ b/services/oknet/src/org/domokit/oknet/UrlLoaderImpl.java @@ -15,6 +15,7 @@ import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import com.squareup.okhttp.ResponseBody; +import org.chromium.base.TraceEvent; import org.chromium.mojo.system.AsyncWaiter; import org.chromium.mojo.system.Core; import org.chromium.mojo.system.DataPipe; @@ -43,6 +44,8 @@ public class UrlLoaderImpl implements UrlLoader { private OkHttpClient mClient; private boolean mIsLoading; private NetworkError mError; + private static long sNextTracingId = 1; + private final long mTracingId; class CopyToPipeJob { private BufferedSource mSource; @@ -54,6 +57,7 @@ public class UrlLoaderImpl implements UrlLoader { } public void copy() throws IOException { + TraceEvent.begin("UrlLoaderImpl::CopyToPipeJob::copy"); int result = 0; do { try { @@ -66,12 +70,15 @@ public class UrlLoaderImpl implements UrlLoader { } catch (MojoException e) { if (e.getMojoResult() != MojoResult.SHOULD_WAIT) throw e; copyMoreAsync(); + TraceEvent.end("UrlLoaderImpl::CopyToPipeJob::copy"); return; } } while (result != -1); mIsLoading = false; mProducer.close(); + TraceEvent.finishAsync("UrlLoaderImpl", mTracingId); + TraceEvent.end("UrlLoaderImpl::CopyToPipeJob::copy"); } private void copyMoreAsync() { @@ -85,12 +92,14 @@ public class UrlLoaderImpl implements UrlLoader { } catch (IOException e) { mIsLoading = false; mProducer.close(); + TraceEvent.finishAsync("UrlLoaderImpl", mTracingId); } } @Override public void onError(MojoException exception) { mIsLoading = false; mProducer.close(); + TraceEvent.finishAsync("UrlLoaderImpl", mTracingId); } }); } @@ -102,6 +111,7 @@ public class UrlLoaderImpl implements UrlLoader { mClient = client; mIsLoading = false; mError = null; + mTracingId = sNextTracingId++; } @Override @@ -112,6 +122,7 @@ public class UrlLoaderImpl implements UrlLoader { @Override public void start(UrlRequest request, StartResponse callback) { + TraceEvent.startAsync("UrlLoaderImpl", mTracingId); mIsLoading = true; mError = null; @@ -143,6 +154,7 @@ public class UrlLoaderImpl implements UrlLoader { responseCallback.call(urlResponse); mIsLoading = false; + TraceEvent.finishAsync("UrlLoaderImpl", mTracingId); } @Override @@ -186,6 +198,7 @@ public class UrlLoaderImpl implements UrlLoader { } catch (IOException e) { mIsLoading = false; producerHandle.close(); + TraceEvent.finishAsync("UrlLoaderImpl", mTracingId); } } });