Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / android_webview / java / src / org / chromium / android_webview / AwBrowserContext.java
1 // Copyright 2013 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 android.content.Context;
8 import android.content.SharedPreferences;
9
10 import org.chromium.content.browser.ContentViewStatics;
11 import org.chromium.net.DefaultAndroidKeyStore;
12
13 /**
14  * Java side of the Browser Context: contains all the java side objects needed to host one
15  * browing session (i.e. profile).
16  * Note that due to running in single process mode, and limitations on renderer process only
17  * being able to use a single browser context, currently there can only be one AwBrowserContext
18  * instance, so at this point the class mostly exists for conceptual clarity.
19  */
20 public class AwBrowserContext {
21
22     private static final String HTTP_AUTH_DATABASE_FILE = "http_auth.db";
23
24     private SharedPreferences mSharedPreferences;
25
26     private AwGeolocationPermissions mGeolocationPermissions;
27     private AwCookieManager mCookieManager;
28     private AwFormDatabase mFormDatabase;
29     private HttpAuthDatabase mHttpAuthDatabase;
30     private DefaultAndroidKeyStore mLocalKeyStore;
31
32     public AwBrowserContext(SharedPreferences sharedPreferences) {
33         mSharedPreferences = sharedPreferences;
34     }
35
36     public AwGeolocationPermissions getGeolocationPermissions() {
37         if (mGeolocationPermissions == null) {
38             mGeolocationPermissions = new AwGeolocationPermissions(mSharedPreferences);
39         }
40         return mGeolocationPermissions;
41     }
42
43     public AwCookieManager getCookieManager() {
44         if (mCookieManager == null) {
45             mCookieManager = new AwCookieManager();
46         }
47         return mCookieManager;
48     }
49
50     public AwFormDatabase getFormDatabase() {
51         if (mFormDatabase == null) {
52             mFormDatabase = new AwFormDatabase();
53         }
54         return mFormDatabase;
55     }
56
57     public HttpAuthDatabase getHttpAuthDatabase(Context context) {
58         if (mHttpAuthDatabase == null) {
59             mHttpAuthDatabase = new HttpAuthDatabase(context, HTTP_AUTH_DATABASE_FILE);
60         }
61         return mHttpAuthDatabase;
62     }
63
64     public DefaultAndroidKeyStore getKeyStore() {
65         if (mLocalKeyStore == null) {
66             mLocalKeyStore = new DefaultAndroidKeyStore();
67         }
68         return mLocalKeyStore;
69     }
70
71     /**
72      * @see android.webkit.WebView#pauseTimers()
73      */
74     public void pauseTimers() {
75         ContentViewStatics.setWebKitSharedTimersSuspended(true);
76     }
77
78     /**
79      * @see android.webkit.WebView#resumeTimers()
80      */
81     public void resumeTimers() {
82         ContentViewStatics.setWebKitSharedTimersSuspended(false);
83     }
84 }