1d52ba8a638c231a767ca274ea83f4fab21a2384
[platform/framework/web/crosswalk.git] / src / android_webview / java / src / org / chromium / android_webview / AwContentsStatics.java
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.android_webview;
6
7 import org.chromium.base.CalledByNative;
8 import org.chromium.base.JNINamespace;
9 import org.chromium.base.ThreadUtils;
10
11 import java.lang.Runnable;
12
13 /**
14  * Implementations of various static methods, and also a home for static
15  * data structures that are meant to be shared between all webviews.
16  */
17 @JNINamespace("android_webview")
18 public class AwContentsStatics {
19
20     private static ClientCertLookupTable sClientCertLookupTable;
21
22     private static String sUnreachableWebDataUrl;
23
24     /**
25      * Return the client certificate lookup table.
26      */
27     public static ClientCertLookupTable getClientCertLookupTable() {
28         ThreadUtils.assertOnUiThread();
29         if (sClientCertLookupTable == null) {
30             sClientCertLookupTable = new ClientCertLookupTable();
31         }
32         return sClientCertLookupTable;
33     }
34
35     /**
36      * Clear client cert lookup table. Should only be called from UI thread.
37      */
38     public static void clearClientCertPreferences(Runnable callback) {
39         ThreadUtils.assertOnUiThread();
40         getClientCertLookupTable().clear();
41         nativeClearClientCertPreferences(callback);
42     }
43
44     @CalledByNative
45     private static void clientCertificatesCleared(Runnable callback) {
46         if (callback == null) return;
47         callback.run();
48     }
49
50     /**
51      * Set Data Reduction Proxy key for authentication.
52      */
53     public static void setDataReductionProxyKey(String key) {
54         ThreadUtils.assertOnUiThread();
55         nativeSetDataReductionProxyKey(key);
56     }
57
58     /*
59      * Enable or disable data reduction proxy.
60      */
61     public static void setDataReductionProxyEnabled(boolean enabled) {
62         ThreadUtils.assertOnUiThread();
63         nativeSetDataReductionProxyEnabled(enabled);
64     }
65
66     public static String getUnreachableWebDataUrl() {
67         if (sUnreachableWebDataUrl == null) {
68             sUnreachableWebDataUrl = nativeGetUnreachableWebDataUrl();
69         }
70         return sUnreachableWebDataUrl;
71     }
72
73     //--------------------------------------------------------------------------------------------
74     //  Native methods
75     //--------------------------------------------------------------------------------------------
76     private static native void nativeClearClientCertPreferences(Runnable callback);
77     private static native void nativeSetDataReductionProxyKey(String key);
78     private static native void nativeSetDataReductionProxyEnabled(boolean enabled);
79     private static native String nativeGetUnreachableWebDataUrl();
80 }