Preloading support in browser

	   Apps like the QSB can request the browser to preload a
	   web page.
           - preloaded pages are not added to the browser history
	     if they'r not seen by the user
	   - when a request is received, a new tab is created for the
	     preloaded page, but not added to the tab list
 	   - upon receiving the view intent for the preloaded page
             the tab is added to the tab list, and shown
	   - if several pages are preloaded consecutively in the same tab,
             the back stack is cleared before it is displayed
           - preloaded pages use the main browser cookie jar, so pages that
             have never been viewed by the user can drop cookies

Change-Id: I9ed21f2c9560fda0ed042b460b73bb33988a2e8a
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e1fe0c5..9dbaea4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -645,6 +645,12 @@
     <!-- Summary for the fullscreen lab feature [CHAR LIMIT=120] -->
     <string name="pref_lab_fullscreen_summary">
       Use fullscreen mode to hide the status bar.</string>
+    <!-- Title for bandwidth management preference [CHAR LIMIT=25] -->
+    <string name="pref_data_title">Bandwidth Management</string>
+    <!-- Title for search preloading [CHAR LIMIT=40] -->
+    <string name="pref_data_preload_title">Search result preloading</string>
+    <!-- Summary for search preloading [CHAR LIMIT=80] -->
+    <string name="pref_data_preload_summary">Allow the browser to preload high confidence search results in the background</string>
     <!-- Title for a dialog displayed when the browser has a data connectivity
             problem -->
     <string name="browserFrameNetworkErrorLabel">Data connectivity problem</string>
@@ -995,4 +1001,6 @@
     <string name="ua_switcher_mobile">Mobile</string>
     <!-- Popup menu option that allows the user to select the desktop version of a webpage [CHAR LIMIT=50] -->
     <string name="ua_switcher_desktop">Desktop</string>
+    <!-- Preload permission label [CHAR LIMIT=40] -->
+    <string name="permission_preload_label">Preload results</string>
 </resources>
diff --git a/res/xml/bandwidth_preferences.xml b/res/xml/bandwidth_preferences.xml
new file mode 100644
index 0000000..0eb4c21
--- /dev/null
+++ b/res/xml/bandwidth_preferences.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <CheckBoxPreference
+        android:key="preload_enabled"
+        android:title="@string/pref_data_preload_title"
+        android:summary="@string/pref_data_preload_summary"
+        android:defaultValue="false" />
+
+</PreferenceScreen>
diff --git a/res/xml/preference_headers.xml b/res/xml/preference_headers.xml
index e58b90a..2c80835 100644
--- a/res/xml/preference_headers.xml
+++ b/res/xml/preference_headers.xml
@@ -32,6 +32,10 @@
         android:title="@string/pref_extras_title"
     />
 
+    <header android:fragment="com.android.browser.preferences.BandwidthPreferencesFragment"
+        android:title="@string/pref_data_title"
+    />
+
     <header android:fragment="com.android.browser.preferences.LabPreferencesFragment"
         android:title="@string/pref_lab_title"
     />