Browser Fixes.

- Move the browser targeted verion to SDK 19.
- Remove hack to create dummy webview to call into
  singleton classes and use Engine class.
- Add missing methods to compile for API 19.

Change-Id: Ie765921f1227eb5de314ed29c5ce909bee6aea93
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7561146..b9b67d1 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -382,7 +382,7 @@
                  android:exported="false" />
     </application>
 
-    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" />
+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />
 
     <uses-feature android:name="android.hardware.location.gps" android:required="false" />
 
diff --git a/src/com/android/browser/Browser.java b/src/com/android/browser/Browser.java
index 5428494..01b9706 100644
--- a/src/com/android/browser/Browser.java
+++ b/src/com/android/browser/Browser.java
@@ -22,7 +22,7 @@
 import android.util.Log;
 import android.os.Process;
 
-import org.codeaurora.swe.CookieSyncManager;
+import org.codeaurora.swe.Engine;
 
 import com.android.browser.BrowserConfig;
 
@@ -45,16 +45,16 @@
 
         // SWE: Avoid initializing databases for sandboxed processes.
         // Must have INITIALIZE_DATABASE permission in AndroidManifest.xml only for browser process
-        final String INITIALIZE_DATABASE= BrowserConfig.AUTHORITY +
+        final String INITIALIZE_DATABASE = BrowserConfig.AUTHORITY +
                                             ".permission.INITIALIZE_DATABASE";
         final Context context = getApplicationContext();
-        if (context.checkPermission(INITIALIZE_DATABASE,
-              Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED) {
-
-                // create CookieSyncManager with current Context
-                CookieSyncManager.createInstance(this);
-                BrowserSettings.initialize(getApplicationContext());
-                Preloader.initialize(getApplicationContext());
+        boolean isActivityContext = (context.checkPermission(INITIALIZE_DATABASE,
+              Process.myPid(), Process.myUid()) == PackageManager.PERMISSION_GRANTED);
+        if (isActivityContext) {
+            // Initialize the SWE engine.
+            Engine.initialize(context);
+            BrowserSettings.initialize(context);
+            Preloader.initialize(context);
         }
     }
 }
diff --git a/src/com/android/browser/BrowserPreferencesPage.java b/src/com/android/browser/BrowserPreferencesPage.java
index ebc08a4..9e19d11 100644
--- a/src/com/android/browser/BrowserPreferencesPage.java
+++ b/src/com/android/browser/BrowserPreferencesPage.java
@@ -26,7 +26,10 @@
 import com.android.browser.preferences.BandwidthPreferencesFragment;
 import com.android.browser.preferences.DebugPreferencesFragment;
 
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 public class BrowserPreferencesPage extends PreferenceActivity {
 
@@ -99,4 +102,19 @@
         return intent;
     }
 
+    private static final Set<String> sKnownFragments = new HashSet<String>(Arrays.asList(
+        "com.android.browser.preferences.GeneralPreferencesFragment",
+        "com.android.browser.preferences.PrivacySecurityPreferencesFragment",
+        "com.android.browser.preferences.AccessibilityPreferencesFragment",
+        "com.android.browser.preferences.AdvancedPreferencesFragment",
+        "com.android.browser.preferences.BandwidthPreferencesFragment",
+        "com.android.browser.preferences.LabPreferencesFragment",
+        "com.android.browser.preferences.AboutPreferencesFragment"));
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        return sKnownFragments.contains(fragmentName);
+    }
+
+
 }
diff --git a/src/com/android/browser/Preloader.java b/src/com/android/browser/Preloader.java
index 99909b3..5f90487 100644
--- a/src/com/android/browser/Preloader.java
+++ b/src/com/android/browser/Preloader.java
@@ -53,11 +53,6 @@
         mHandler = new Handler(Looper.getMainLooper());
         mSession = null;
         mFactory = new BrowserWebViewFactory(context);
-
-        // Creating dummy Webview for browser to force loading of library;
-        // This will thereby prevent any singleton calls invoked directly
-        // even without the webview creation
-        (mFactory.instantiateWebView(null, android.R.attr.webViewStyle, false)).destroy();
     }
 
     private PreloaderSession getSession(String id) {
diff --git a/src_system/AndroidManifest.xml b/src_system/AndroidManifest.xml
index 63a0cd1..592a34f 100644
--- a/src_system/AndroidManifest.xml
+++ b/src_system/AndroidManifest.xml
@@ -384,7 +384,7 @@
                  android:exported="false" />
     </application>
 
-    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" />
+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />
 
     <uses-feature android:name="android.hardware.location.gps" android:required="false" />