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

Unified Diff: sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java

Issue 1006143003: Add an HTTP cache to SkyShell (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java
diff --git a/sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java b/sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java
index 7aed761b62e50708f24638706c08b71c0c358859..57946573b54bc6041fa6819cf3e7b263ddbb721f 100644
--- a/sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java
+++ b/sky/services/oknet/src/org/domokit/oknet/NetworkServiceImpl.java
@@ -5,7 +5,9 @@
package org.domokit.oknet;
import android.content.Context;
+import android.util.Log;
+import com.squareup.okhttp.Cache;
import com.squareup.okhttp.OkHttpClient;
import org.chromium.mojo.bindings.InterfaceRequest;
@@ -22,17 +24,33 @@ import org.chromium.mojom.mojo.UdpSocket;
import org.chromium.mojom.mojo.UrlLoader;
import org.chromium.mojom.mojo.WebSocket;
+import java.io.File;
+import java.io.IOException;
+
/**
* OkHttp implementation of NetworkService.
*/
public class NetworkServiceImpl implements NetworkService {
- private OkHttpClient mClient;
+ private static final String TAG = "NetworkServiceImpl";
+ private static OkHttpClient sClient;
private Core mCore;
public NetworkServiceImpl(Context context, Core core, MessagePipeHandle pipe) {
assert core != null;
mCore = core;
- mClient = new OkHttpClient();
+
+ if (sClient == null) {
+ sClient = new OkHttpClient();
+
+ try {
+ int cacheSize = 10 * 1024 * 1024; // 10 MiB
+ File cacheDirectory = new File(context.getCacheDir(), "ok_http_cache");
+ Cache cache = new Cache(cacheDirectory, cacheSize);
+ sClient.setCache(cache);
+ } catch (IOException e) {
+ Log.e(TAG, "Unable to create HTTP cache", e);
+ }
+ }
NetworkService.MANAGER.bind(this, pipe);
}
@@ -45,7 +63,7 @@ public class NetworkServiceImpl implements NetworkService {
@Override
public void createUrlLoader(InterfaceRequest<UrlLoader> loader) {
- UrlLoader.MANAGER.bind(new UrlLoaderImpl(mCore, mClient), loader);
+ UrlLoader.MANAGER.bind(new UrlLoaderImpl(mCore, sClient), loader);
}
@Override
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698