OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.android_webview; | 5 package org.chromium.android_webview; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.content.SharedPreferences; | 8 import android.content.SharedPreferences; |
9 | 9 |
10 import org.chromium.content.browser.AppWebMessagePortService; | 10 import org.chromium.content.browser.AppWebMessagePortService; |
11 import org.chromium.content.browser.ContentViewStatics; | 11 import org.chromium.content.browser.ContentViewStatics; |
12 | 12 |
13 /** | 13 /** |
14 * Java side of the Browser Context: contains all the java side objects needed t
o host one | 14 * Java side of the Browser Context: contains all the java side objects needed t
o host one |
15 * browing session (i.e. profile). | 15 * browing session (i.e. profile). |
16 * | 16 * |
17 * Note that historically WebView was running in single process mode, and limita
tions on renderer | 17 * Note that historically WebView was running in single process mode, and limita
tions on renderer |
18 * process only being able to use a single browser context, currently there can
only be one | 18 * process only being able to use a single browser context, currently there can
only be one |
19 * AwBrowserContext instance, so at this point the class mostly exists for conce
ptual clarity. | 19 * AwBrowserContext instance, so at this point the class mostly exists for conce
ptual clarity. |
20 */ | 20 */ |
21 public class AwBrowserContext { | 21 public class AwBrowserContext { |
22 private final SharedPreferences mSharedPreferences; | 22 private final SharedPreferences mSharedPreferences; |
23 | 23 |
24 private AwGeolocationPermissions mGeolocationPermissions; | 24 private AwGeolocationPermissions mGeolocationPermissions; |
25 private AwFormDatabase mFormDatabase; | 25 private AwFormDatabase mFormDatabase; |
26 private AppWebMessagePortService mMessagePortService; | 26 private AppWebMessagePortService mMessagePortService; |
27 private AwMetricsServiceClient mMetricsServiceClient; | |
28 private AwServiceWorkerController mServiceWorkerController; | 27 private AwServiceWorkerController mServiceWorkerController; |
29 private Context mApplicationContext; | 28 private Context mApplicationContext; |
30 | 29 |
31 public AwBrowserContext(SharedPreferences sharedPreferences, Context applica
tionContext) { | 30 public AwBrowserContext(SharedPreferences sharedPreferences, Context applica
tionContext) { |
32 mSharedPreferences = sharedPreferences; | 31 mSharedPreferences = sharedPreferences; |
33 mMetricsServiceClient = new AwMetricsServiceClient(applicationContext); | |
34 mApplicationContext = applicationContext; | 32 mApplicationContext = applicationContext; |
35 } | 33 } |
36 | 34 |
37 public AwGeolocationPermissions getGeolocationPermissions() { | 35 public AwGeolocationPermissions getGeolocationPermissions() { |
38 if (mGeolocationPermissions == null) { | 36 if (mGeolocationPermissions == null) { |
39 mGeolocationPermissions = new AwGeolocationPermissions(mSharedPrefer
ences); | 37 mGeolocationPermissions = new AwGeolocationPermissions(mSharedPrefer
ences); |
40 } | 38 } |
41 return mGeolocationPermissions; | 39 return mGeolocationPermissions; |
42 } | 40 } |
43 | 41 |
44 public AwFormDatabase getFormDatabase() { | 42 public AwFormDatabase getFormDatabase() { |
45 if (mFormDatabase == null) { | 43 if (mFormDatabase == null) { |
46 mFormDatabase = new AwFormDatabase(); | 44 mFormDatabase = new AwFormDatabase(); |
47 } | 45 } |
48 return mFormDatabase; | 46 return mFormDatabase; |
49 } | 47 } |
50 | 48 |
51 public AppWebMessagePortService getMessagePortService() { | 49 public AppWebMessagePortService getMessagePortService() { |
52 if (mMessagePortService == null) { | 50 if (mMessagePortService == null) { |
53 mMessagePortService = new AppWebMessagePortService(); | 51 mMessagePortService = new AppWebMessagePortService(); |
54 } | 52 } |
55 return mMessagePortService; | 53 return mMessagePortService; |
56 } | 54 } |
57 | 55 |
58 public AwMetricsServiceClient getMetricsServiceClient() { | |
59 return mMetricsServiceClient; | |
60 } | |
61 | |
62 public AwServiceWorkerController getServiceWorkerController() { | 56 public AwServiceWorkerController getServiceWorkerController() { |
63 if (mServiceWorkerController == null) { | 57 if (mServiceWorkerController == null) { |
64 mServiceWorkerController = new AwServiceWorkerController(mApplicatio
nContext, this); | 58 mServiceWorkerController = new AwServiceWorkerController(mApplicatio
nContext, this); |
65 } | 59 } |
66 return mServiceWorkerController; | 60 return mServiceWorkerController; |
67 } | 61 } |
68 | 62 |
69 /** | 63 /** |
70 * @see android.webkit.WebView#pauseTimers() | 64 * @see android.webkit.WebView#pauseTimers() |
71 */ | 65 */ |
72 public void pauseTimers() { | 66 public void pauseTimers() { |
73 ContentViewStatics.setWebKitSharedTimersSuspended(true); | 67 ContentViewStatics.setWebKitSharedTimersSuspended(true); |
74 } | 68 } |
75 | 69 |
76 /** | 70 /** |
77 * @see android.webkit.WebView#resumeTimers() | 71 * @see android.webkit.WebView#resumeTimers() |
78 */ | 72 */ |
79 public void resumeTimers() { | 73 public void resumeTimers() { |
80 ContentViewStatics.setWebKitSharedTimersSuspended(false); | 74 ContentViewStatics.setWebKitSharedTimersSuspended(false); |
81 } | 75 } |
82 } | 76 } |
OLD | NEW |