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 5package org.chromium.android_webview; 6 7import android.content.Context; 8import android.content.SharedPreferences; 9 10import org.chromium.content.browser.ContentViewStatics; 11import 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 */ 20public 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 = HttpAuthDatabase.newInstance(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} 85