/** * Create a new BrowserFrame to be used in an application. * * @param context An application context to use when retrieving assets. * @param w A WebViewCore used as the view for this frame. * @param proxy A CallbackProxy for posting messages to the UI thread and querying a client for * information. * @param settings A WebSettings object that holds all settings. XXX: Called by WebCore thread. */ public BrowserFrame(Context context, WebViewCore w, CallbackProxy proxy, WebSettings settings) { // Create a global JWebCoreJavaBridge to handle timers and // cookies in the WebCore thread. if (sJavaBridge == null) { sJavaBridge = new JWebCoreJavaBridge(); // set WebCore native cache size sJavaBridge.setCacheSize(4 * 1024 * 1024); // initialize CacheManager CacheManager.init(context); // create CookieSyncManager with current Context CookieSyncManager.createInstance(context); } AssetManager am = context.getAssets(); nativeCreateFrame(w, am, proxy.getBackForwardList()); mSettings = settings; mContext = context; mCallbackProxy = proxy; mDatabase = WebViewDatabase.getInstance(context); mWebViewCore = w; if (WebView.LOGV_ENABLED) { Log.v(LOGTAG, "BrowserFrame constructor: this=" + this); } }
/** * Create a new BrowserFrame to be used in an application. * * @param context An application context to use when retrieving assets. * @param w A WebViewCore used as the view for this frame. * @param proxy A CallbackProxy for posting messages to the UI thread and querying a client for * information. * @param settings A WebSettings object that holds all settings. XXX: Called by WebCore thread. */ public BrowserFrame( Context context, WebViewCore w, CallbackProxy proxy, WebSettings settings, Map<String, Object> javascriptInterfaces) { Context appContext = context.getApplicationContext(); // Create a global JWebCoreJavaBridge to handle timers and // cookies in the WebCore thread. if (sJavaBridge == null) { sJavaBridge = new JWebCoreJavaBridge(); // set WebCore native cache size ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); if (am.getMemoryClass() > 16) { sJavaBridge.setCacheSize(8 * 1024 * 1024); } else { sJavaBridge.setCacheSize(4 * 1024 * 1024); } // initialize CacheManager CacheManager.init(appContext); // create CookieSyncManager with current Context CookieSyncManager.createInstance(appContext); // create PluginManager with current Context PluginManager.getInstance(appContext); } if (sConfigCallback == null) { sConfigCallback = new ConfigCallback((WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE)); ViewRootImpl.addConfigCallback(sConfigCallback); } sConfigCallback.addHandler(this); mJavaScriptObjects = javascriptInterfaces; if (mJavaScriptObjects == null) { mJavaScriptObjects = new HashMap<String, Object>(); } mRemovedJavaScriptObjects = new HashSet<Object>(); mSettings = settings; mContext = context; mCallbackProxy = proxy; mDatabase = WebViewDatabase.getInstance(appContext); mWebViewCore = w; mSearchBox = new SearchBoxImpl(mWebViewCore, mCallbackProxy); mJavaScriptObjects.put(SearchBoxImpl.JS_INTERFACE_NAME, mSearchBox); AssetManager am = context.getAssets(); nativeCreateFrame(w, am, proxy.getBackForwardList()); if (DebugFlags.BROWSER_FRAME) { Log.v(LOGTAG, "BrowserFrame constructor: this=" + this); } }