Add tracing to oknet

R=rafaelw@chromium.org

Review URL: https://codereview.chromium.org/1018393006
This commit is contained in:
Adam Barth 2015-03-23 13:22:13 -07:00
parent 1021146178
commit 27359c558f
2 changed files with 14 additions and 0 deletions

View File

@ -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",

View File

@ -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);
}
}
});