diff --git a/assets/plugins/gears-0.5.2.0/dummy b/assets/plugins/gears-0.5.7.0/dummy
similarity index 100%
rename from assets/plugins/gears-0.5.2.0/dummy
rename to assets/plugins/gears-0.5.7.0/dummy
diff --git a/assets/plugins/gears.so b/assets/plugins/gears.so
index 4a1aff2..9ae2a87 100644
--- a/assets/plugins/gears.so
+++ b/assets/plugins/gears.so
Binary files differ
diff --git a/res/drawable/ic_dialog_alert.png b/res/drawable/ic_dialog_alert.png
deleted file mode 100755
index 0a7de04..0000000
--- a/res/drawable/ic_dialog_alert.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_dialog_info.png b/res/drawable/ic_dialog_info.png
deleted file mode 100755
index e8b0229..0000000
--- a/res/drawable/ic_dialog_info.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_menu_recent_history.png b/res/drawable/ic_menu_recent_history.png
deleted file mode 100644
index 4ccae5d..0000000
--- a/res/drawable/ic_menu_recent_history.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_menu_refresh.png b/res/drawable/ic_menu_refresh.png
deleted file mode 100644
index 77d70dd..0000000
--- a/res/drawable/ic_menu_refresh.png
+++ /dev/null
Binary files differ
diff --git a/res/layout-land/gears_dialog.xml b/res/layout-land/gears_dialog.xml
index f5cf969..5536fed 100644
--- a/res/layout-land/gears_dialog.xml
+++ b/res/layout-land/gears_dialog.xml
@@ -96,32 +96,63 @@
     android:background="@color/white"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
-    android:paddingTop="10dip">
+    android:paddingTop="2dip">
 
-    <Button
-      android:id="@+id/button_alwaysdeny"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_alignParentLeft="true"
-      style="@style/gears_button"
-      android:textSize="13dip"/>
-
-    <LinearLayout
-      android:layout_width="wrap_content"
-      android:layout_alignParentRight="true"
+    <LinearLayout 
+      android:orientation="vertical"
+      android:layout_width="fill_parent"
       android:layout_height="wrap_content">
 
-      <Button
-        android:id="@+id/button_allow"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="13dip"/>
+       <TextView
+         android:id="@+id/selection"
+         android:layout_width="fill_parent"
+         android:layout_height="wrap_content"
+         android:textSize="13dip"
+         android:gravity="right"
+         android:textColor="@color/black"/>
 
-      <Button
-        android:id="@+id/button_deny"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="13dip"/>
+       <RelativeLayout
+         android:background="@color/white"
+         android:layout_width="fill_parent"
+         android:layout_height="wrap_content"
+         android:paddingTop="2dip">
+
+         <LinearLayout
+           android:orientation="horizontal"
+           android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:background="@color/white">
+
+           <Button
+             android:id="@+id/button_alwaysdeny"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:layout_alignParentLeft="true"
+             style="@style/gears_button"
+             android:textSize="13dip"/>
+
+         </LinearLayout>
+
+         <LinearLayout
+           android:layout_width="wrap_content"
+           android:layout_alignParentRight="true"
+           android:layout_height="wrap_content">
+
+           <Button
+             android:id="@+id/button_allow"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:textSize="13dip"/>
+
+           <Button
+             android:id="@+id/button_deny"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:textSize="13dip"/>
+
+         </LinearLayout>
+
+       </RelativeLayout>
 
     </LinearLayout>
 
diff --git a/res/layout/gears_dialog.xml b/res/layout/gears_dialog.xml
index b1a43cd..0d834f3 100644
--- a/res/layout/gears_dialog.xml
+++ b/res/layout/gears_dialog.xml
@@ -94,32 +94,63 @@
     android:background="@color/white"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
-    android:paddingTop="10dip">
+    android:paddingTop="2dip">
 
-    <Button
-      android:id="@+id/button_alwaysdeny"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      android:layout_alignParentLeft="true"
-      style="@style/gears_button"
-      android:textSize="13dip"/>
-
-    <LinearLayout
-      android:layout_width="wrap_content"
-      android:layout_alignParentRight="true"
+    <LinearLayout 
+      android:orientation="vertical"
+      android:layout_width="fill_parent"
       android:layout_height="wrap_content">
 
-      <Button
-        android:id="@+id/button_allow"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="13dip"/>
+       <TextView
+         android:id="@+id/selection"
+         android:layout_width="fill_parent"
+         android:layout_height="wrap_content"
+         android:textSize="13dip"
+         android:gravity="right"
+         android:textColor="@color/black"/>
 
-      <Button
-        android:id="@+id/button_deny"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="13dip"/>
+       <RelativeLayout
+         android:background="@color/white"
+         android:layout_width="fill_parent"
+         android:layout_height="wrap_content"
+         android:paddingTop="2dip">
+
+         <LinearLayout
+           android:orientation="horizontal"
+           android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:background="@color/white">
+ 
+           <Button
+             android:id="@+id/button_alwaysdeny"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:layout_alignParentLeft="true"
+             style="@style/gears_button"
+             android:textSize="13dip"/>
+
+         </LinearLayout>
+
+         <LinearLayout
+           android:layout_width="wrap_content"
+           android:layout_alignParentRight="true"
+           android:layout_height="wrap_content">
+
+           <Button
+             android:id="@+id/button_allow"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:textSize="13dip"/>
+
+           <Button
+             android:id="@+id/button_deny"
+             android:layout_width="wrap_content"
+             android:layout_height="48px"
+             android:textSize="13dip"/>
+
+         </LinearLayout>
+
+       </RelativeLayout>
 
     </LinearLayout>
 
diff --git a/res/layout/gears_dialog_filepicker.xml b/res/layout/gears_dialog_filepicker.xml
index 5f1c653..b1c1646 100644
--- a/res/layout/gears_dialog_filepicker.xml
+++ b/res/layout/gears_dialog_filepicker.xml
@@ -19,30 +19,92 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
-  android:layout_width="wrap_content"
+  android:layout_width="fill_parent"
   android:layout_height="wrap_content">
 
   <LinearLayout
     android:orientation="vertical"
-    android:layout_width="wrap_content"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white" >
+
+    <GridView android:id="@+id/paths_list"
+      android:padding="4dip"
+      android:layout_width="fill_parent"
+      android:layout_height="wrap_content" />
+  </LinearLayout>
+
+  <LinearLayout
+    android:orientation="horizontal"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white">
+
+    <TextView
+      android:id="@+id/path_name"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:textSize="13dip"
+      android:textColor="@color/dark_gray"/>
+ 
+    <TextView
+      android:id="@+id/current_path"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:textSize="13dip"
+      android:textColor="@color/black"/>
+
+  </LinearLayout>
+
+  <LinearLayout
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@color/gray"
     android:padding="1px">
 
     <LinearLayout
       android:orientation="vertical"
-      android:layout_width="wrap_content"
+      android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="@color/white">
 
-      <GridView android:id="@+id/files_list"
-        android:padding="4px"
+      <LinearLayout
+        android:orientation="horizontal"
         android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
-        android:horizontalSpacing="2px"
-        android:verticalSpacing="2px"
-        android:numColumns="3"
-        style="@android:style/Widget.ListView.White" />
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:background="@color/white">
+
+        <ImageView
+          android:id="@+id/image"
+          android:padding="10dip"
+          android:layout_centerHorizontal="true"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:adjustViewBounds="true"
+          android:visibility="gone"
+          android:gravity="center"
+          android:src="@drawable/gears"/>
+
+        <LinearLayout
+          android:orientation="vertical"
+          android:layout_width="fill_parent"
+          android:layout_height="wrap_content"
+          android:background="@color/white">
+ 
+          <GridView android:id="@+id/files_list"
+            android:padding="4px"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:horizontalSpacing="2px"
+            android:verticalSpacing="2px"
+            android:numColumns="3"
+            style="@android:style/Widget.ListView.White" />
+
+        </LinearLayout>
+
+      </LinearLayout>
 
     </LinearLayout>
 
diff --git a/res/layout/gears_dialog_filepicker_cell.xml b/res/layout/gears_dialog_filepicker_cell.xml
index 1db167f..0440e1f 100644
--- a/res/layout/gears_dialog_filepicker_cell.xml
+++ b/res/layout/gears_dialog_filepicker_cell.xml
@@ -22,7 +22,7 @@
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="center_horizontal"
-  android:padding="2px" >
+  android:padding="4px" >
 
   <ImageView
     android:id="@+id/icon"
@@ -32,8 +32,10 @@
 
   <TextView
     android:id="@+id/name"
-    android:textAppearance="?android:attr/textAppearanceSmall"
     android:textColor="@color/black"
+    android:textSize="13dip"
+    android:shadowColor="@color/white"
+    android:shadowRadius="2.0"
     android:singleLine="true"
     android:ellipsize="middle"
     android:layout_width="wrap_content"
diff --git a/res/layout/gears_dialog_settings.xml b/res/layout/gears_dialog_settings.xml
index a9026db..07b08ab 100644
--- a/res/layout/gears_dialog_settings.xml
+++ b/res/layout/gears_dialog_settings.xml
@@ -36,7 +36,7 @@
       android:background="@color/white">
 
       <ListView android:id="@+id/sites_list"
-        android:padding="4dip"
+        android:padding="2dip"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         style="@android:style/Widget.ListView.White" />
diff --git a/res/layout/gears_dialog_settings_row.xml b/res/layout/gears_dialog_settings_row.xml
index 8a2cadf..11d757a 100644
--- a/res/layout/gears_dialog_settings_row.xml
+++ b/res/layout/gears_dialog_settings_row.xml
@@ -50,7 +50,9 @@
 
   <TableLayout
     android:layout_width="fill_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:stretchColumns="0"
+    android:shrinkColumns="0">
 
     <TableRow
       android:id="@+id/local_storage_choice"
@@ -63,7 +65,10 @@
         android:gravity="center_vertical"
         android:text="@string/local_storage"/>
 
-      <RadioGroup android:orientation="horizontal">
+      <RadioGroup
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="fill_parent">
         <RadioButton
           android:id="@+id/local_storage_allowed"
           android:layout_width="wrap_content"
@@ -91,10 +96,13 @@
         android:layout_width="wrap_content"
         android:layout_height="fill_parent"
         android:textColor="@color/black"
-        android:gravity="center_vertical"
+        android:layout_gravity="center_vertical"
         android:text="@string/location"/>
 
-      <RadioGroup android:orientation="horizontal">
+      <RadioGroup
+        android:orientation="horizontal"
+        android:layout_width="wrap_content"
+        android:layout_height="fill_parent">
         <RadioButton
           android:id="@+id/location_data_allowed"
           android:layout_width="wrap_content"
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 5f5b3ca..f19b27c 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -50,7 +50,7 @@
             android:alphabeticShortcut="&#32;" 
             android:icon="@drawable/ic_menu_home" />
         <item android:id="@+id/classic_history_menu_id"
-            android:icon="@drawable/ic_menu_recent_history" 
+            android:icon="@android:drawable/ic_menu_recent_history" 
             android:alphabeticShortcut="h" 
             android:title="@string/history" />
         <item android:id="@+id/view_downloads_menu_id"
@@ -106,7 +106,7 @@
         <item android:id="@+id/history_tab_menu_id"
             android:title="@string/history"
             android:alphabeticShortcut="h" 
-            android:icon="@drawable/ic_menu_recent_history" />
+            android:icon="@android:drawable/ic_menu_recent_history" />
     </group>
     <!-- these items are toggled in and out of @+id/stop_reload_menu_id -->
     <item android:id="@+id/stop_menu_id"
@@ -115,7 +115,7 @@
         android:visible="false" />
     <item android:id="@+id/reload_menu_id"
         android:title="@string/reload" 
-        android:icon="@drawable/ic_menu_refresh" 
+        android:icon="@android:drawable/ic_menu_refresh" 
         android:visible="false" />
 </menu>
  
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
new file mode 100644
index 0000000..774a4c4
--- /dev/null
+++ b/res/values-fr/strings.xml
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sign_in_to">"Connectez-vous à <xliff:g id="HOSTNAME">%s1</xliff:g> \"<xliff:g id="REALM">%s2</xliff:g>\""</string>
+    <string name="username">"Nom"</string>
+    <string name="password">"Mot de passe"</string>
+    <string name="action">"Se connecter"</string>
+    <string name="cancel">"Annuler"</string>
+    <string name="ok">"OK"</string>
+    <!-- no translation found for matches_found (4019114285322631887) -->
+    <skip />
+    <!-- no translation found for zero (5187607177868389265) -->
+    <skip />
+    <string name="page_info">"Infos sur la page"</string>
+    <string name="page_info_view">"Afficher les infos sur la page"</string>
+    <string name="page_info_address">"Adresse :"</string>
+    <string name="ssl_warnings_header">"Le certificat de sécurité pour ce site présente des problèmes."</string>
+    <string name="ssl_continue">"Continuer"</string>
+    <string name="security_warning">"Avertissement de sécurité"</string>
+    <string name="view_certificate">"Afficher le certificat"</string>
+    <string name="ssl_untrusted">"Ce certificat provient d\'une autorité non approuvée."</string>
+    <string name="ssl_mismatch">"Le nom du site ne correspond pas au nom indiqué dans le certificat."</string>
+    <string name="ssl_expired">"Le certificat a expiré."</string>
+    <string name="ssl_not_yet_valid">"Ce certificat n\'est pas encore valide."</string>
+    <string name="ssl_certificate">"Certificat de sécurité"</string>
+    <string name="ssl_certificate_is_valid">"Ce certificat est valide."</string>
+    <string name="issued_to">"Émis à :"</string>
+    <string name="common_name">"Nom commun :"</string>
+    <string name="org_name">"Organisation :"</string>
+    <string name="org_unit">"Unité d\'organisation :"</string>
+    <string name="issued_by">"Émis par :"</string>
+    <string name="validity_period">"Validité :"</string>
+    <string name="issued_on">"Émis le :"</string>
+    <string name="expires_on">"Expire le :"</string>
+    <string name="retrieving_creds_dlg_msg">"Récupération des données de connexion..."</string>
+    <string name="close">"Fermer"</string>
+    <string name="close_window">"La fenêtre sera fermée."</string>
+    <string name="stopping">"Arrêt..."</string>
+    <string name="stop">"Interrompre"</string>
+    <string name="reload">"Actualiser"</string>
+    <string name="back">"Précédent"</string>
+    <string name="forward">"Suivant"</string>
+    <string name="save">"OK"</string>
+    <string name="do_not_save">"Annuler"</string>
+    <string name="location">"Emplacement"</string>
+    <string name="name">"Nom"</string>
+    <string name="http">"http://"</string>
+    <!-- no translation found for save_to_bookmarks (4680844117598293907) -->
+    <skip />
+    <string name="edit_bookmark">"Modifier le favori"</string>
+    <!-- no translation found for create_shortcut_bookmark (9202323987633899835) -->
+    <skip />
+    <string name="open_bookmark">"Ouverture"</string>
+    <string name="remove_bookmark">"Supprimer le favori"</string>
+    <string name="remove_history_item">"Supprimer de l\'historique"</string>
+    <string name="bookmark_saved">"Enregistré dans les favoris"</string>
+    <string name="bookmark_needs_title">"Vous devez attribuer un nom à votre favori."</string>
+    <string name="bookmark_needs_url">"Le favori doit disposer d\'un emplacement."</string>
+    <string name="empty_bookmark">"Impossible de créer un favori vide."</string>
+    <string name="bookmark_url_not_valid">"L\'URL est incorrecte."</string>
+    <string name="delete_bookmark">"Supprimer"</string>
+    <string name="bookmark_page">"Dernière page de favori consultée"</string>
+    <string name="current_page">"Page actuelle :"</string>
+    <string name="delete_bookmark_warning">"Le favori \"<xliff:g id="BOOKMARK">%s</xliff:g>\" sera supprimé."</string>
+    <string name="open_in_new_window">"Ouvrir dans une nouvelle fenêtre"</string>
+    <string name="new_window">"Nouvelle fenêtre"</string>
+    <string name="goto_dot">"Accéder à l\'URL"</string>
+    <string name="find_dot">"Rechercher sur la page"</string>
+    <string name="homepage">"Page d\'accueil"</string>
+    <string name="view_tabs">"Vue d\'ensemble des fenêtres"</string>
+    <!-- no translation found for view_tabs_condensed (5803955493821945369) -->
+    <skip />
+    <string name="tab_picker_title">"Fenêtres actuelles"</string>
+    <string name="tab_picker_view_tab">"Afficher"</string>
+    <string name="tab_picker_new_tab">"Nouvelle fenêtre"</string>
+    <string name="tab_picker_remove_tab">"Fermer"</string>
+    <string name="tab_picker_bookmark">"Favori"</string>
+    <string name="tab_picker_send_url">"Partager le lien"</string>
+    <string name="bookmarks">"Favoris"</string>
+    <string name="shortcut_bookmark">"Favori"</string>
+    <string name="history">"Historique"</string>
+    <string name="menu_view_download">"Téléchargements"</string>
+    <string name="menu_bookmark_page">"Page de favori"</string>
+    <string name="share_page">"Partager la page"</string>
+    <string name="menu_zoom">"Zoom"</string>
+    <string name="menu_flip_orientation">"Changer l\'orientation"</string>
+    <string name="contextmenu_openlink">"Ouvrir"</string>
+    <string name="contextmenu_openlink_newwindow">"Ouvrir une nouvelle fenêtre"</string>
+    <string name="contextmenu_bookmark_thislink">"Lien du favori"</string>
+    <string name="contextmenu_savelink">"Enregistrer le lien"</string>
+    <string name="contextmenu_sharelink">"Partager le lien"</string>
+    <string name="contextmenu_copy">"Copier"</string>
+    <string name="contextmenu_copylink">"Copier l\'URL du lien"</string>
+    <string name="contextmenu_download_image">"Enregistrer l\'image"</string>
+    <string name="contextmenu_view_image">"Afficher l\'image"</string>
+    <string name="contextmenu_dial_dot">"Composer..."</string>
+    <string name="contextmenu_add_contact">"Ajouter un contact"</string>
+    <string name="contextmenu_send_mail">"Envoyer un e-mail"</string>
+    <string name="contextmenu_map">"Plan"</string>
+    <string name="clear">"Effacer"</string>
+    <string name="replace">"Remplacer"</string>
+    <string name="browser_bookmarks_page_bookmarks_text">"Favoris"</string>
+    <string name="menu_preferences">"Paramètres"</string>
+    <string name="pref_content_title">"Paramètres du contenu de la page"</string>
+    <string name="pref_content_load_images">"Charger les images"</string>
+    <string name="pref_content_load_images_summary">"Afficher les images des pages Web"</string>
+    <string name="pref_content_block_popups">"Bloquer les fenêtres contextuelles"</string>
+    <string name="pref_content_javascript">"Activer JavaScript"</string>
+    <string name="pref_content_open_in_background">"Ouvrir à l\'arrière-plan"</string>
+    <string name="pref_content_open_in_background_summary">"Les nouvelles fenêtres s\'ouvrent derrière la fenêtre actuelle"</string>
+    <string name="pref_content_homepage">"Configurer la page d\'accueil"</string>
+    <string name="pref_content_autofit">"Ajustement automatique des pages"</string>
+    <string name="pref_content_autofit_summary">"Configurer les pages Web pour qu\'elles s\'ajustent à l\'écran"</string>
+    <string name="pref_privacy_title">"Paramètres de confidentialité"</string>
+    <string name="pref_privacy_clear_cache">"Effacer le cache"</string>
+    <string name="pref_privacy_clear_cache_summary">"Supprimer tout le contenu de la page en cache"</string>
+    <string name="pref_privacy_clear_cache_dlg">"Le cache sera effacé."</string>
+    <string name="pref_privacy_clear_cookies">"Effacer toutes les données de cookies"</string>
+    <string name="pref_privacy_clear_cookies_summary">"Effacer tous les cookies du navigateur"</string>
+    <string name="pref_privacy_clear_cookies_dlg">"Tous les cookies seront effacés."</string>
+    <string name="pref_privacy_clear_history">"Effacer l\'historique"</string>
+    <string name="pref_privacy_clear_history_summary">"Effacer l\'historique du navigateur"</string>
+    <string name="pref_privacy_clear_history_dlg">"L\'historique du navigateur sera effacé."</string>
+    <string name="pref_privacy_clear_form_data">"Effacer les données du formulaire"</string>
+    <string name="pref_privacy_clear_form_data_summary">"Effacer toutes les données de formulaire enregistrées"</string>
+    <string name="pref_privacy_clear_form_data_dlg">"Toutes les données de formulaire enregistrées seront effacées."</string>
+    <string name="pref_privacy_clear_passwords">"Effacer les mots de passe"</string>
+    <string name="pref_privacy_clear_passwords_summary">"Effacer tous les mots de passe enregistrés"</string>
+    <string name="pref_privacy_clear_passwords_dlg">"Tous les mots de passe enregistrés seront effacés."</string>
+    <string name="pref_security_title">"Paramètres de sécurité"</string>
+    <string name="pref_security_remember_passwords">"Mémoriser les mots de passe"</string>
+    <string name="pref_security_remember_passwords_summary">"Enregistrer les noms d\'utilisateur et les mots de passe pour les sites Web"</string>
+    <string name="pref_security_save_form_data">"Mémoriser les données de formulaire"</string>
+    <string name="pref_security_save_form_data_summary">"Mémoriser les données saisies dans les formulaires pour les utiliser ultérieurement"</string>
+    <string name="pref_security_show_security_warning">"Afficher les avertissements de sécurité"</string>
+    <string name="pref_security_show_security_warning_summary">"Afficher un avertissement lorsqu\'un site présente des problèmes de sécurité"</string>
+    <string name="pref_security_accept_cookies">"Accepter les cookies"</string>
+    <string name="pref_security_accept_cookies_summary">"Autoriser les sites à enregistrer et lire les données \"cookie\""</string>
+    <!-- no translation found for pref_text_size (3765589440020504007) -->
+    <skip />
+  <string-array name="pref_text_size_choices">
+    <item>"Très petite"</item>
+    <item>"Petite"</item>
+    <item>"Normale"</item>
+    <item>"Grande"</item>
+    <item>"Très grande"</item>
+  </string-array>
+    <string name="pref_text_size_dialogtitle">"Taille de la police"</string>
+    <string name="pref_extras_title">"Paramètres avancés"</string>
+    <string name="pref_extras_gears_enable">"Activer Gears"</string>
+    <string name="pref_extras_gears_enable_summary">"Applications étendant les fonctionnalités du navigateur"</string>
+    <string name="pref_extras_gears_settings">"Paramètres Gears"</string>
+    <!-- no translation found for pref_plugin_installed (6387683936112106178) -->
+    <skip />
+    <string name="pref_plugin_installed_empty_list">"Aucun plug-in installé."</string>
+    <string name="pref_extras_gears_settings_summary">"Applications étendant les fonctionnalités du navigateur"</string>
+    <string name="pref_extras_reset_default">"Rétablir les valeurs par défaut"</string>
+    <string name="pref_extras_reset_default_summary">"Effacer toutes les données du navigateur et rétablir les paramètres par défaut"</string>
+    <string name="pref_extras_reset_default_dlg">"Toutes les données du navigateur seront effacées et les paramètres par défaut rétablis."</string>
+    <string name="pref_extras_reset_default_dlg_title">"Rétablir les valeurs par défaut"</string>
+    <string name="pref_development_title">"Débogage"</string>
+    <string name="pref_development_viewport">"Use wide viewport"</string>
+    <string name="pref_development_single_column_rendering">"Single column rendering"</string>
+    <string name="pref_development_normal_rendering">"Normal rendering"</string>
+    <string name="pref_development_trace">"Activer le suivi"</string>
+    <string name="pref_development_nav_dump">"Enable nav cache dump"</string>
+    <!-- no translation found for pref_development_search_url (7979283099657732298) -->
+    <skip />
+    <string name="pref_development_uastring">"UAString"</string>
+  <string-array name="pref_development_ua_choices">
+    <item>"Android"</item>
+    <item>"Desktop"</item>
+    <item>"iPhone"</item>
+  </string-array>
+  <string-array name="pref_development_ua_values">
+    <item>"0"</item>
+    <item>"1"</item>
+    <item>"2"</item>
+  </string-array>
+    <!-- no translation found for pref_default_text_encoding (2689164865300623884) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_choices:0 (7275223955790513818) -->
+    <!-- no translation found for pref_default_text_encoding_choices:1 (2456597866837587140) -->
+    <!-- no translation found for pref_default_text_encoding_choices:2 (7143715548814380950) -->
+    <!-- no translation found for pref_default_text_encoding_choices:3 (5111312120564516587) -->
+    <!-- no translation found for pref_default_text_encoding_choices:4 (6545734186479713946) -->
+    <!-- no translation found for pref_default_text_encoding_dialogtitle (5508255018084978547) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_default (5272126711231936722) -->
+    <skip />
+    <string name="browserFrameRedirect">"Rediriger"</string>
+    <string name="browserFrame307Post">"Cette page Web est en cours de redirection. Voulez-vous renvoyer les données de formulaire saisies vers le nouvel emplacement ?"</string>
+    <string name="browserFrameNetworkErrorLabel">"Problème de connectivité des données"</string>
+    <string name="browserFrameFileErrorLabel">"Problème de fichier"</string>
+    <string name="browserFrameFormResubmitLabel">"Confirmer"</string>
+    <string name="browserFrameFormResubmitMessage">"La page que vous tentez d\'afficher contient des données qui ont déjà été envoyées (\"POSTDATA\"). Si vous renvoyez les données, toute action effectuée par le formulaire sur la page exécutée (notamment les lancements de recherche ou les achats en ligne) seront répétés."</string>
+    <string name="loadSuspendedTitle">"Aucune connexion réseau"</string>
+    <string name="loadSuspended">"Une fois la connexion rétablie, le chargement de la page reprendra."</string>
+    <string name="clear_history">"Effacer l\'historique"</string>
+    <string name="browser_history">"Dernières pages consultées"</string>
+    <string name="empty_history">"L\'historique du navigateur est vide."</string>
+    <string name="add_new_bookmark">"Nouveau favori"</string>
+    <string name="no_database">"Aucune base de données !"</string>
+    <string name="search_hint">"Saisir l\'adresse Web"</string>
+    <string name="search">"Rechercher"</string>
+    <string name="search_button_text">"Aller"</string>
+    <string name="js_dialog_title_prefix">"La page à l\'adresse"</string>
+    <string name="js_dialog_title_suffix">"indique que :"</string>
+    <string name="js_dialog_title_default">"JavaScript"</string>
+    <string name="js_dialog_before_unload">"Vous souhaitez quitter cette page ?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Sélectionnez OK pour continuer ou Annuler pour rester sur la page actuelle."</string>
+    <string name="attention">"Attention"</string>
+    <string name="popup_window_attempt">"Le site tente d\'ouvrir une fenêtre contextuelle."</string>
+    <string name="allow">"Autoriser"</string>
+    <string name="block">"Bloquer"</string>
+    <string name="too_many_windows_dialog_title">"Limite de fenêtres atteinte"</string>
+    <string name="too_many_windows_dialog_message">"Impossible d\'ouvrir une nouvelle fenêtre, car vous avez déjà ouvert le nombre maximum de fenêtres."</string>
+    <string name="too_many_subwindows_dialog_title">"Fenêtre contextuelle déjà ouverte"</string>
+    <string name="too_many_subwindows_dialog_message">"Impossible d\'ouvrir une nouvelle fenêtre. Une seule fenêtre peut être ouverte à la fois."</string>
+    <string name="download_title">"Historique de téléchargement"</string>
+    <string name="download_unknown_filename">"&lt;Inconnu&gt;"</string>
+    <string name="download_menu_open">"Ouvrir"</string>
+    <string name="download_menu_clear">"Effacer de la liste"</string>
+    <string name="download_menu_cancel">"Annuler le téléchargement"</string>
+    <string name="download_menu_cancel_all">"Annuler tous les téléchargements"</string>
+    <string name="download_menu_clear_all">"Effacer la liste"</string>
+    <string name="download_clear_dlg_title">"Effacer"</string>
+    <string name="download_clear_dlg_msg">"Tous les éléments seront effacés de la liste et supprimés du cache du navigateur."</string>
+    <string name="download_cancel_dlg_title">"Annuler les téléchargements"</string>
+    <string name="download_cancel_dlg_msg">"Les <xliff:g id="DOWNLOAD_COUNT">%d</xliff:g> téléchargements seront annulés et effacés de l\'historique des téléchargements."</string>
+    <string name="download_file_error_dlg_title">"Espace insuffisant"</string>
+    <string name="download_file_error_dlg_msg">"Impossible de télécharger <xliff:g id="FILENAME">%s</xliff:g>."\n"Libérez de l\'espace sur votre téléphone, puis réessayez."</string>
+    <string name="download_failed_generic_dlg_title">"Échec de téléchargement"</string>
+    <string name="download_no_sdcard_dlg_title">"Aucune carte SD"</string>
+    <string name="download_no_sdcard_dlg_msg">"Le téléchargement de <xliff:g id="FILENAME">%s</xliff:g> requiert une carte SD."</string>
+    <!-- no translation found for download_sdcard_busy_dlg_title (6877712666046917741) -->
+    <skip />
+    <!-- no translation found for download_sdcard_busy_dlg_msg (4579003999083645700) -->
+    <skip />
+    <string name="download_no_application">"Impossible de trouver une application permettant d\'ouvrir ce fichier."</string>
+    <string name="retry">"Réessayer"</string>
+    <string name="no_downloads">"L\'historique de téléchargement est vide."</string>
+    <string name="download_error">"Échec du téléchargement"</string>
+    <string name="download_success">"Téléchargement de <xliff:g id="FILE">%s</xliff:g> terminé."</string>
+    <string name="download_running">"Téléchargement en cours..."</string>
+    <string name="download_pending">"Début du téléchargement..."</string>
+    <string name="download_pending_network">"En attente d\'une connexion de données..."</string>
+    <string name="download_running_paused">"En attente d\'une connexion de données..."</string>
+    <string name="download_canceled">"Téléchargement annulé"</string>
+    <!-- no translation found for download_not_acceptable (282108828207321357) -->
+    <skip />
+    <string name="download_file_error">"Téléchargement interrompu. Espace insuffisant."</string>
+    <string name="download_length_required">"Téléchargement impossible. La taille de l\'élément n\'a pas pu être déterminée."</string>
+    <string name="download_precondition_failed">"Téléchargement interrompu. Impossible de reprendre le téléchargement."</string>
+    <!-- no translation found for activity_instrumentation_test_runner (8215091309334005029) -->
+    <skip />
+  <string-array name="bookmarks">
+    <item>"Google"</item>
+    <item>"http://www.google.com/"</item>
+    <item>"Yahoo!"</item>
+    <item>"http://www.yahoo.com/"</item>
+    <item>"MSN"</item>
+    <item>"http://www.msn.com/"</item>
+    <item>"MySpace"</item>
+    <item>"http://www.myspace.com/"</item>
+    <item>"Facebook"</item>
+    <item>"http://www.facebook.com/"</item>
+    <item>"Wikipédia"</item>
+    <item>"http://www.wikipedia.org/"</item>
+    <item>"eBay"</item>
+    <item>"http://www.ebay.com/"</item>
+    <item>"CNN"</item>
+    <item>"http://www.cnn.com/"</item>
+    <item>"New York Times"</item>
+    <item>"http://www.nytimes.com/"</item>
+    <item>"ESPN"</item>
+    <item>"http://espn.go.com/"</item>
+    <item>"Amazon"</item>
+    <item>"http://www.amazon.com/"</item>
+    <item>"Météo"</item>
+    <item>"http://www.weather.com/"</item>
+    <item>"BBC"</item>
+    <item>"http://www.bbc.co.uk/"</item>
+  </string-array>
+    <!-- no translation found for permlab_readHistoryBookmarks (2090878935052508686) -->
+    <skip />
+    <!-- no translation found for permdesc_readHistoryBookmarks (3198464990003094365) -->
+    <skip />
+    <!-- no translation found for permlab_writeHistoryBookmarks (3617974487656041765) -->
+    <skip />
+    <!-- no translation found for permdesc_writeHistoryBookmarks (2408364750616892343) -->
+    <skip />
+    <!-- no translation found for query_data_message (2662165772252682312) -->
+    <skip />
+    <!-- no translation found for location_message (3273812190303763599) -->
+    <skip />
+    <!-- no translation found for shortcut_message (8474516749978531587) -->
+    <skip />
+    <!-- no translation found for settings_message (6171686603006325199) -->
+    <skip />
+    <!-- no translation found for filepicker_message (3954806995548322454) -->
+    <skip />
+    <!-- no translation found for image_message (4416921522797991131) -->
+    <skip />
+    <!-- no translation found for settings_title (3579144910187265022) -->
+    <skip />
+    <!-- no translation found for privacy_policy (864201179110197308) -->
+    <skip />
+    <!-- no translation found for permission_button_alwaysdeny (3997759797081359571) -->
+    <skip />
+    <!-- no translation found for permission_button_allow (8433538747157349096) -->
+    <skip />
+    <!-- no translation found for permission_button_deny (8238202164838263939) -->
+    <skip />
+    <!-- no translation found for shortcut_button_alwaysdeny (8677418058335584182) -->
+    <skip />
+    <!-- no translation found for shortcut_button_allow (3106634184087569293) -->
+    <skip />
+    <!-- no translation found for shortcut_button_deny (6054910540900054553) -->
+    <skip />
+    <!-- no translation found for settings_button_allow (447817497759509841) -->
+    <skip />
+    <!-- no translation found for settings_button_deny (602496920123085858) -->
+    <skip />
+    <!-- no translation found for filepicker_button_allow (2849120125810490391) -->
+    <skip />
+    <!-- no translation found for filepicker_button_deny (1302975999145835953) -->
+    <skip />
+    <!-- no translation found for filepicker_path (4680729728498981925) -->
+    <skip />
+    <!-- no translation found for filepicker_no_files_selected (7859426670184432998) -->
+    <skip />
+    <!-- no translation found for filepicker_one_file_selected (1451259953191434851) -->
+    <skip />
+    <!-- no translation found for filepicker_some_files_selected (3859384664191734493) -->
+    <skip />
+    <!-- no translation found for remove (7820112494467011374) -->
+    <skip />
+    <!-- no translation found for local_storage (6703332885937279085) -->
+    <skip />
+    <!-- no translation found for allowed (1599514934221911624) -->
+    <skip />
+    <!-- no translation found for denied (7470209521858372968) -->
+    <skip />
+    <!-- no translation found for unrecognized_dialog_message (687399590684283989) -->
+    <skip />
+    <!-- no translation found for default_button (3901922329454578908) -->
+    <skip />
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
new file mode 100644
index 0000000..b20fef6
--- /dev/null
+++ b/res/values-it/strings.xml
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sign_in_to">"Accedi a <xliff:g id="HOSTNAME">%s1</xliff:g> \"<xliff:g id="REALM">%s2</xliff:g>\""</string>
+    <string name="username">"Nome"</string>
+    <string name="password">"Password"</string>
+    <string name="action">"Accedi"</string>
+    <string name="cancel">"Annulla"</string>
+    <string name="ok">"OK"</string>
+    <!-- no translation found for matches_found (4019114285322631887) -->
+    <skip />
+    <!-- no translation found for zero (5187607177868389265) -->
+    <skip />
+    <string name="page_info">"Info pagina"</string>
+    <string name="page_info_view">"Visualizza info pagina"</string>
+    <string name="page_info_address">"Indirizzo:"</string>
+    <string name="ssl_warnings_header">"Problemi con il certificato di protezione del sito."</string>
+    <string name="ssl_continue">"Continua"</string>
+    <string name="security_warning">"Avviso di protezione"</string>
+    <string name="view_certificate">"Visualizza certificato"</string>
+    <string name="ssl_untrusted">"Questo certificato non proviene da un\'autorità attendibile."</string>
+    <string name="ssl_mismatch">"Il nome del sito non corrisponde al nome nel certificato."</string>
+    <string name="ssl_expired">"Il certificato è scaduto."</string>
+    <string name="ssl_not_yet_valid">"Questo certificato non è ancora valido."</string>
+    <string name="ssl_certificate">"Certificato di protezione"</string>
+    <string name="ssl_certificate_is_valid">"Questo certificato è valido."</string>
+    <string name="issued_to">"Rilasciato a:"</string>
+    <string name="common_name">"Nome comune:"</string>
+    <string name="org_name">"Organizzazione:"</string>
+    <string name="org_unit">"Unità organizzativa:"</string>
+    <string name="issued_by">"Rilasciato da:"</string>
+    <string name="validity_period">"Validità:"</string>
+    <string name="issued_on">"Rilasciato il:"</string>
+    <string name="expires_on">"Scade il:"</string>
+    <string name="retrieving_creds_dlg_msg">"Recupero dettagli di accesso..."</string>
+    <string name="close">"Chiudi"</string>
+    <string name="close_window">"Questa finestra verrà chiusa."</string>
+    <string name="stopping">"Interruzione..."</string>
+    <string name="stop">"Interrompi"</string>
+    <string name="reload">"Aggiorna"</string>
+    <string name="back">"Indietro"</string>
+    <string name="forward">"Avanti"</string>
+    <string name="save">"OK"</string>
+    <string name="do_not_save">"Annulla"</string>
+    <string name="location">"Posizione"</string>
+    <string name="name">"Nome"</string>
+    <string name="http">"http://"</string>
+    <!-- no translation found for save_to_bookmarks (4680844117598293907) -->
+    <skip />
+    <string name="edit_bookmark">"Modifica segnalibro"</string>
+    <!-- no translation found for create_shortcut_bookmark (9202323987633899835) -->
+    <skip />
+    <string name="open_bookmark">"Apri"</string>
+    <string name="remove_bookmark">"Elimina segnalibro"</string>
+    <string name="remove_history_item">"Rimuovi da cronologia"</string>
+    <string name="bookmark_saved">"Salvato nei segnalibri."</string>
+    <string name="bookmark_needs_title">"Inserisci un nome per il segnalibro."</string>
+    <string name="bookmark_needs_url">"Inserisci una posizione per il segnalibro."</string>
+    <string name="empty_bookmark">"Impossibile creare un segnalibro vuoto."</string>
+    <string name="bookmark_url_not_valid">"URL non valido."</string>
+    <string name="delete_bookmark">"Elimina"</string>
+    <string name="bookmark_page">"Aggiungi ultima pagina visualizzata in segnalibri"</string>
+    <string name="current_page">"Pagina corrente:"</string>
+    <string name="delete_bookmark_warning">"Il segnalibro \"<xliff:g id="BOOKMARK">%s</xliff:g>\" verrà eliminato."</string>
+    <string name="open_in_new_window">"Apri in nuova finestra"</string>
+    <string name="new_window">"Nuova finestra"</string>
+    <string name="goto_dot">"Vai a URL"</string>
+    <string name="find_dot">"Trova nella pagina"</string>
+    <string name="homepage">"Home page"</string>
+    <string name="view_tabs">"Anteprima finestre"</string>
+    <!-- no translation found for view_tabs_condensed (5803955493821945369) -->
+    <skip />
+    <string name="tab_picker_title">"Finestre correnti"</string>
+    <string name="tab_picker_view_tab">"Visualizza"</string>
+    <string name="tab_picker_new_tab">"Nuova finestra"</string>
+    <string name="tab_picker_remove_tab">"Chiudi"</string>
+    <string name="tab_picker_bookmark">"Segnalibro"</string>
+    <string name="tab_picker_send_url">"Condividi link"</string>
+    <string name="bookmarks">"Segnalibri"</string>
+    <string name="shortcut_bookmark">"Segnalibro"</string>
+    <string name="history">"Cronologia"</string>
+    <string name="menu_view_download">"Download"</string>
+    <string name="menu_bookmark_page">"Pagina segnalibri"</string>
+    <string name="share_page">"Condividi pagina"</string>
+    <string name="menu_zoom">"Zoom"</string>
+    <string name="menu_flip_orientation">"Capovolgi orientamento"</string>
+    <string name="contextmenu_openlink">"Apri"</string>
+    <string name="contextmenu_openlink_newwindow">"Apri in nuova finestra"</string>
+    <string name="contextmenu_bookmark_thislink">"Aggiungi link in segnalibri"</string>
+    <string name="contextmenu_savelink">"Salva link"</string>
+    <string name="contextmenu_sharelink">"Condividi link"</string>
+    <string name="contextmenu_copy">"Copia"</string>
+    <string name="contextmenu_copylink">"Copia URL link"</string>
+    <string name="contextmenu_download_image">"Salva immagine"</string>
+    <string name="contextmenu_view_image">"Visualizza immagine"</string>
+    <string name="contextmenu_dial_dot">"Componi..."</string>
+    <string name="contextmenu_add_contact">"Aggiungi contatto"</string>
+    <string name="contextmenu_send_mail">"Invia email"</string>
+    <string name="contextmenu_map">"Mappa"</string>
+    <string name="clear">"Cancella"</string>
+    <string name="replace">"Sostituisci"</string>
+    <string name="browser_bookmarks_page_bookmarks_text">"Segnalibri"</string>
+    <string name="menu_preferences">"Impostazioni"</string>
+    <string name="pref_content_title">"Impostazioni contenuti pagina"</string>
+    <string name="pref_content_load_images">"Carica immagini"</string>
+    <string name="pref_content_load_images_summary">"Visualizza immagini in pagine web"</string>
+    <string name="pref_content_block_popups">"Blocca finestre pop-up"</string>
+    <string name="pref_content_javascript">"Attiva JavaScript"</string>
+    <string name="pref_content_open_in_background">"Apri in secondo piano"</string>
+    <string name="pref_content_open_in_background_summary">"Le nuove finestre vengono aperte dietro la finestra corrente"</string>
+    <string name="pref_content_homepage">"Imposta home page"</string>
+    <string name="pref_content_autofit">"Adatta autom. pagine"</string>
+    <string name="pref_content_autofit_summary">"Adatta le pagine web allo schermo"</string>
+    <string name="pref_privacy_title">"Impostazioni privacy"</string>
+    <string name="pref_privacy_clear_cache">"Cancella cache"</string>
+    <string name="pref_privacy_clear_cache_summary">"Elimina tutti i contenuti delle pagine nella cache"</string>
+    <string name="pref_privacy_clear_cache_dlg">"La cache verrà cancellata."</string>
+    <string name="pref_privacy_clear_cookies">"Cancella tutti i dati dei cookie"</string>
+    <string name="pref_privacy_clear_cookies_summary">"Cancella tutti i cookie del browser"</string>
+    <string name="pref_privacy_clear_cookies_dlg">"Verranno cancellati tutti i cookie."</string>
+    <string name="pref_privacy_clear_history">"Cancella cronologia"</string>
+    <string name="pref_privacy_clear_history_summary">"Cancella la cronologia di esplorazione del browser"</string>
+    <string name="pref_privacy_clear_history_dlg">"La cronologia di esplorazione del browser verrà cancellata."</string>
+    <string name="pref_privacy_clear_form_data">"Cancella dati moduli"</string>
+    <string name="pref_privacy_clear_form_data_summary">"Cancella tutti i dati dei moduli salvati"</string>
+    <string name="pref_privacy_clear_form_data_dlg">"Tutti i dati dei moduli salvati saranno cancellati."</string>
+    <string name="pref_privacy_clear_passwords">"Cancella password"</string>
+    <string name="pref_privacy_clear_passwords_summary">"Cancella tutte le password salvate"</string>
+    <string name="pref_privacy_clear_passwords_dlg">"Tutte le password salvate saranno cancellate."</string>
+    <string name="pref_security_title">"Impostazioni di protezione"</string>
+    <string name="pref_security_remember_passwords">"Memorizza le password"</string>
+    <string name="pref_security_remember_passwords_summary">"Salva nomi utente e password per i siti web"</string>
+    <string name="pref_security_save_form_data">"Memorizza dati moduli"</string>
+    <string name="pref_security_save_form_data_summary">"Memorizza i dati che digito nei moduli per usi futuri"</string>
+    <string name="pref_security_show_security_warning">"Mostra avvisi di protezione"</string>
+    <string name="pref_security_show_security_warning_summary">"Mostra un avviso se esiste un problema di sicurezza con un sito"</string>
+    <string name="pref_security_accept_cookies">"Accetta cookie"</string>
+    <string name="pref_security_accept_cookies_summary">"Consenti ai siti di salvare e leggere i dati \"cookie\""</string>
+    <!-- no translation found for pref_text_size (3765589440020504007) -->
+    <skip />
+  <string-array name="pref_text_size_choices">
+    <item>"Molto piccolo"</item>
+    <item>"Piccolo"</item>
+    <item>"Normale"</item>
+    <item>"Grande"</item>
+    <item>"Molto grande"</item>
+  </string-array>
+    <string name="pref_text_size_dialogtitle">"Dimensioni testo"</string>
+    <string name="pref_extras_title">"Impostazioni avanzate"</string>
+    <string name="pref_extras_gears_enable">"Attiva Gears"</string>
+    <string name="pref_extras_gears_enable_summary">"Applicazioni che estendono le funzionalità del browser"</string>
+    <string name="pref_extras_gears_settings">"Impostazioni Gears"</string>
+    <!-- no translation found for pref_plugin_installed (6387683936112106178) -->
+    <skip />
+    <string name="pref_plugin_installed_empty_list">"No installed plugins."</string>
+    <string name="pref_extras_gears_settings_summary">"Applicazioni che estendono le funzionalità del browser"</string>
+    <string name="pref_extras_reset_default">"Ripristina valori predefiniti"</string>
+    <string name="pref_extras_reset_default_summary">"Cancella tutti i dati del browser e ripristina tutte le impostazioni predefinite"</string>
+    <string name="pref_extras_reset_default_dlg">"Verranno cancellati tutti i dati del browser e ripristinate le impostazioni predefinite."</string>
+    <string name="pref_extras_reset_default_dlg_title">"Ripristina valori predefiniti"</string>
+    <string name="pref_development_title">"Debug"</string>
+    <string name="pref_development_viewport">"Use wide viewport"</string>
+    <string name="pref_development_single_column_rendering">"Single column rendering"</string>
+    <string name="pref_development_normal_rendering">"Normal rendering"</string>
+    <string name="pref_development_trace">"Enable tracing"</string>
+    <string name="pref_development_nav_dump">"Enable nav cache dump"</string>
+    <!-- no translation found for pref_development_search_url (7979283099657732298) -->
+    <skip />
+    <string name="pref_development_uastring">"UAString"</string>
+  <string-array name="pref_development_ua_choices">
+    <item>"Android"</item>
+    <item>"Desktop"</item>
+    <item>"iPhone"</item>
+  </string-array>
+  <string-array name="pref_development_ua_values">
+    <item>"0"</item>
+    <item>"1"</item>
+    <item>"2"</item>
+  </string-array>
+    <!-- no translation found for pref_default_text_encoding (2689164865300623884) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_choices:0 (7275223955790513818) -->
+    <!-- no translation found for pref_default_text_encoding_choices:1 (2456597866837587140) -->
+    <!-- no translation found for pref_default_text_encoding_choices:2 (7143715548814380950) -->
+    <!-- no translation found for pref_default_text_encoding_choices:3 (5111312120564516587) -->
+    <!-- no translation found for pref_default_text_encoding_choices:4 (6545734186479713946) -->
+    <!-- no translation found for pref_default_text_encoding_dialogtitle (5508255018084978547) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_default (5272126711231936722) -->
+    <skip />
+    <string name="browserFrameRedirect">"Reindirizza"</string>
+    <string name="browserFrame307Post">"La pagina web è in fase di reindizzamento. Inviare di nuovo i dati del modulo alla nuova posizione?"</string>
+    <string name="browserFrameNetworkErrorLabel">"Problema di connettività dati"</string>
+    <string name="browserFrameFileErrorLabel">"Problemi con il file"</string>
+    <string name="browserFrameFormResubmitLabel">"Conferma"</string>
+    <string name="browserFrameFormResubmitMessage">"La pagina che stai tentando di visualizzare contiene dati già inviati (\"POSTDATA\"). Se invii di nuovo i dati, ogni azione effettuata dal modulo nella pagina (come una ricerca o un acquisto online) verrà ripetuta."</string>
+    <string name="loadSuspendedTitle">"Nessuna connessione di rete"</string>
+    <string name="loadSuspended">"Il caricamento della pagina continuerà una volta ripristinata la connessione."</string>
+    <string name="clear_history">"Cancella cronologia"</string>
+    <string name="browser_history">"Pagine visitate di recente"</string>
+    <string name="empty_history">"La cronologia del browser è vuota."</string>
+    <string name="add_new_bookmark">"Nuovo segnalibro"</string>
+    <string name="no_database">"Nessun database"</string>
+    <string name="search_hint">"Digita l\'indirizzo web"</string>
+    <string name="search">"Cerca"</string>
+    <string name="search_button_text">"Vai"</string>
+    <string name="js_dialog_title_prefix">"La pagina all\'indirizzo"</string>
+    <string name="js_dialog_title_suffix">"invia il messaggio:"</string>
+    <string name="js_dialog_title_default">"JavaScript"</string>
+    <string name="js_dialog_before_unload">"Uscire da questa pagina?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Seleziona OK per continuare o Annulla per rimanere nella pagina corrente."</string>
+    <string name="attention">"Attenzione"</string>
+    <string name="popup_window_attempt">"Il sito sta tentando di aprire una finestra pop-up."</string>
+    <string name="allow">"Consenti"</string>
+    <string name="block">"Blocca"</string>
+    <string name="too_many_windows_dialog_title">"Numero limite di finestre raggiunto"</string>
+    <string name="too_many_windows_dialog_message">"Impossibile aprire una nuova finestra. Numero massimo di finestre aperte già raggiunto."</string>
+    <string name="too_many_subwindows_dialog_title">"Finestra pop-up già aperta"</string>
+    <string name="too_many_subwindows_dialog_message">"Impossibile aprire una nuova finestra pop-up. È possibile aprirne soltanto una alla volta."</string>
+    <string name="download_title">"Cronologia download"</string>
+    <string name="download_unknown_filename">"&lt;Sconosciuto&gt;"</string>
+    <string name="download_menu_open">"Apri"</string>
+    <string name="download_menu_clear">"Cancella da elenco"</string>
+    <string name="download_menu_cancel">"Cancella download"</string>
+    <string name="download_menu_cancel_all">"Annulla tutti i download"</string>
+    <string name="download_menu_clear_all">"Cancella elenco"</string>
+    <string name="download_clear_dlg_title">"Cancella"</string>
+    <string name="download_clear_dlg_msg">"Tutti gli elementi verranno cancellati dall\'elenco e rimossi dalla cache del browser."</string>
+    <string name="download_cancel_dlg_title">"Annulla download"</string>
+    <string name="download_cancel_dlg_msg">"Tutti i <xliff:g id="DOWNLOAD_COUNT">%d</xliff:g> download verranno cancellati dalla cronologia download."</string>
+    <string name="download_file_error_dlg_title">"Spazio esaurito"</string>
+    <string name="download_file_error_dlg_msg">"Impossibile scaricare <xliff:g id="FILENAME">%s</xliff:g>."\n"Liberare spazio sul telefono e riprovare."</string>
+    <string name="download_failed_generic_dlg_title">"Download non riuscito"</string>
+    <string name="download_no_sdcard_dlg_title">"Nessuna scheda SD"</string>
+    <string name="download_no_sdcard_dlg_msg">"Per scaricare <xliff:g id="FILENAME">%s</xliff:g> occorre una scheda SD."</string>
+    <!-- no translation found for download_sdcard_busy_dlg_title (6877712666046917741) -->
+    <skip />
+    <!-- no translation found for download_sdcard_busy_dlg_msg (4579003999083645700) -->
+    <skip />
+    <string name="download_no_application">"Impossibile trovare un\'applicazione in cui aprire questo file."</string>
+    <string name="retry">"Riprova"</string>
+    <string name="no_downloads">"La cronologia download è vuota."</string>
+    <string name="download_error">"Download non riuscito."</string>
+    <string name="download_success">"Download di <xliff:g id="FILE">%s</xliff:g> completo."</string>
+    <string name="download_running">"Download..."</string>
+    <string name="download_pending">"Avvio download..."</string>
+    <string name="download_pending_network">"In attesa di connessione dati..."</string>
+    <string name="download_running_paused">"In attesa di connessione dati..."</string>
+    <string name="download_canceled">"Download annullato."</string>
+    <!-- no translation found for download_not_acceptable (282108828207321357) -->
+    <skip />
+    <string name="download_file_error">"Impossibile terminare il download. Spazio insufficiente."</string>
+    <string name="download_length_required">"Impossibile effettuare il download. Impossibile determinare le dimensioni dell\'elemento."</string>
+    <string name="download_precondition_failed">"Download interrotto. Impossibile ripristinarlo."</string>
+    <!-- no translation found for activity_instrumentation_test_runner (8215091309334005029) -->
+    <skip />
+  <string-array name="bookmarks">
+    <item>"Google"</item>
+    <item>"http://www.google.com/"</item>
+    <item>"Yahoo!"</item>
+    <item>"http://www.yahoo.com/"</item>
+    <item>"MSN"</item>
+    <item>"http://www.msn.com/"</item>
+    <item>"MySpace"</item>
+    <item>"http://www.myspace.com/"</item>
+    <item>"Facebook"</item>
+    <item>"http://www.facebook.com/"</item>
+    <item>"Wikipedia"</item>
+    <item>"http://www.wikipedia.org/"</item>
+    <item>"eBay"</item>
+    <item>"http://www.ebay.com/"</item>
+    <item>"CNN"</item>
+    <item>"http://www.cnn.com/"</item>
+    <item>"New York Times"</item>
+    <item>"http://www.nytimes.com/"</item>
+    <item>"ESPN"</item>
+    <item>"http://espn.go.com/"</item>
+    <item>"Amazon"</item>
+    <item>"http://www.amazon.com/"</item>
+    <item>"Weather Channel"</item>
+    <item>"http://www.weather.com/"</item>
+    <item>"BBC"</item>
+    <item>"http://www.bbc.co.uk/"</item>
+  </string-array>
+    <!-- no translation found for permlab_readHistoryBookmarks (2090878935052508686) -->
+    <skip />
+    <!-- no translation found for permdesc_readHistoryBookmarks (3198464990003094365) -->
+    <skip />
+    <!-- no translation found for permlab_writeHistoryBookmarks (3617974487656041765) -->
+    <skip />
+    <!-- no translation found for permdesc_writeHistoryBookmarks (2408364750616892343) -->
+    <skip />
+    <!-- no translation found for query_data_message (2662165772252682312) -->
+    <skip />
+    <!-- no translation found for location_message (3273812190303763599) -->
+    <skip />
+    <!-- no translation found for shortcut_message (8474516749978531587) -->
+    <skip />
+    <!-- no translation found for settings_message (6171686603006325199) -->
+    <skip />
+    <!-- no translation found for filepicker_message (3954806995548322454) -->
+    <skip />
+    <!-- no translation found for image_message (4416921522797991131) -->
+    <skip />
+    <!-- no translation found for settings_title (3579144910187265022) -->
+    <skip />
+    <!-- no translation found for privacy_policy (864201179110197308) -->
+    <skip />
+    <!-- no translation found for permission_button_alwaysdeny (3997759797081359571) -->
+    <skip />
+    <!-- no translation found for permission_button_allow (8433538747157349096) -->
+    <skip />
+    <!-- no translation found for permission_button_deny (8238202164838263939) -->
+    <skip />
+    <!-- no translation found for shortcut_button_alwaysdeny (8677418058335584182) -->
+    <skip />
+    <!-- no translation found for shortcut_button_allow (3106634184087569293) -->
+    <skip />
+    <!-- no translation found for shortcut_button_deny (6054910540900054553) -->
+    <skip />
+    <!-- no translation found for settings_button_allow (447817497759509841) -->
+    <skip />
+    <!-- no translation found for settings_button_deny (602496920123085858) -->
+    <skip />
+    <!-- no translation found for filepicker_button_allow (2849120125810490391) -->
+    <skip />
+    <!-- no translation found for filepicker_button_deny (1302975999145835953) -->
+    <skip />
+    <!-- no translation found for filepicker_path (4680729728498981925) -->
+    <skip />
+    <!-- no translation found for filepicker_no_files_selected (7859426670184432998) -->
+    <skip />
+    <!-- no translation found for filepicker_one_file_selected (1451259953191434851) -->
+    <skip />
+    <!-- no translation found for filepicker_some_files_selected (3859384664191734493) -->
+    <skip />
+    <!-- no translation found for remove (7820112494467011374) -->
+    <skip />
+    <!-- no translation found for local_storage (6703332885937279085) -->
+    <skip />
+    <!-- no translation found for allowed (1599514934221911624) -->
+    <skip />
+    <!-- no translation found for denied (7470209521858372968) -->
+    <skip />
+    <!-- no translation found for unrecognized_dialog_message (687399590684283989) -->
+    <skip />
+    <!-- no translation found for default_button (3901922329454578908) -->
+    <skip />
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..b37ede3
--- /dev/null
+++ b/res/values-zh-rCN/strings.xml
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="sign_in_to">"登录至 <xliff:g id="HOSTNAME">%s1</xliff:g>“<xliff:g id="REALM">%s2</xliff:g>”"</string>
+    <string name="username">"名称"</string>
+    <string name="password">"密码"</string>
+    <string name="action">"登录"</string>
+    <string name="cancel">"取消"</string>
+    <string name="ok">"确定"</string>
+    <!-- no translation found for matches_found (4019114285322631887) -->
+    <skip />
+    <!-- no translation found for zero (5187607177868389265) -->
+    <skip />
+    <string name="page_info">"页面信息"</string>
+    <string name="page_info_view">"查看页面信息"</string>
+    <string name="page_info_address">"地址："</string>
+    <string name="ssl_warnings_header">"该网站的安全证书有问题。"</string>
+    <string name="ssl_continue">"继续"</string>
+    <string name="security_warning">"安全警告"</string>
+    <string name="view_certificate">"查看证书"</string>
+    <string name="ssl_untrusted">"该证书并非来自可信的授权机构。"</string>
+    <string name="ssl_mismatch">"网站的名称与证书上的名称不一致。"</string>
+    <string name="ssl_expired">"该证书已过期。"</string>
+    <string name="ssl_not_yet_valid">"该证书尚未生效。"</string>
+    <string name="ssl_certificate">"安全证书"</string>
+    <string name="ssl_certificate_is_valid">"该证书有效。"</string>
+    <string name="issued_to">"发布位置："</string>
+    <string name="common_name">"常用名称："</string>
+    <string name="org_name">"组织："</string>
+    <string name="org_unit">"组织单位："</string>
+    <string name="issued_by">"发布者："</string>
+    <string name="validity_period">"有效性："</string>
+    <string name="issued_on">"发布时间："</string>
+    <string name="expires_on">"有效期至："</string>
+    <string name="retrieving_creds_dlg_msg">"正在检索登录详细信息..."</string>
+    <string name="close">"关闭"</string>
+    <string name="close_window">"该窗口会关闭。"</string>
+    <string name="stopping">"正在停止..."</string>
+    <string name="stop">"停止"</string>
+    <string name="reload">"刷新"</string>
+    <string name="back">"返回"</string>
+    <string name="forward">"前进"</string>
+    <string name="save">"确定"</string>
+    <string name="do_not_save">"取消"</string>
+    <string name="location">"位置"</string>
+    <string name="name">"名称"</string>
+    <string name="http">"http://"</string>
+    <!-- no translation found for save_to_bookmarks (4680844117598293907) -->
+    <skip />
+    <string name="edit_bookmark">"编辑书签"</string>
+    <!-- no translation found for create_shortcut_bookmark (9202323987633899835) -->
+    <skip />
+    <string name="open_bookmark">"打开"</string>
+    <string name="remove_bookmark">"删除书签"</string>
+    <string name="remove_history_item">"从历史记录中删除"</string>
+    <string name="bookmark_saved">"保存至书签。"</string>
+    <string name="bookmark_needs_title">"书签必须具有名称。"</string>
+    <string name="bookmark_needs_url">"书签必须具有位置。"</string>
+    <string name="empty_bookmark">"无法创建空书签。"</string>
+    <string name="bookmark_url_not_valid">"网址无效。"</string>
+    <string name="delete_bookmark">"删除"</string>
+    <string name="bookmark_page">"将上次查看过的页面加为书签"</string>
+    <string name="current_page">"当前页面："</string>
+    <string name="delete_bookmark_warning">"会删除书签“<xliff:g id="BOOKMARK">%s</xliff:g>”。"</string>
+    <string name="open_in_new_window">"在新窗口中打开"</string>
+    <string name="new_window">"新窗口"</string>
+    <string name="goto_dot">"转至网址"</string>
+    <string name="find_dot">"在页面上查找"</string>
+    <string name="homepage">"主页"</string>
+    <string name="view_tabs">"窗口概述"</string>
+    <!-- no translation found for view_tabs_condensed (5803955493821945369) -->
+    <skip />
+    <string name="tab_picker_title">"当前窗口"</string>
+    <string name="tab_picker_view_tab">"查看"</string>
+    <string name="tab_picker_new_tab">"新窗口"</string>
+    <string name="tab_picker_remove_tab">"关闭"</string>
+    <string name="tab_picker_bookmark">"书签"</string>
+    <string name="tab_picker_send_url">"共享链接"</string>
+    <string name="bookmarks">"书签"</string>
+    <string name="shortcut_bookmark">"书签"</string>
+    <string name="history">"历史记录"</string>
+    <string name="menu_view_download">"下载"</string>
+    <string name="menu_bookmark_page">"书签页面"</string>
+    <string name="share_page">"共享页面"</string>
+    <string name="menu_zoom">"缩放"</string>
+    <string name="menu_flip_orientation">"反转方向"</string>
+    <string name="contextmenu_openlink">"打开"</string>
+    <string name="contextmenu_openlink_newwindow">"在新窗口中打开"</string>
+    <string name="contextmenu_bookmark_thislink">"书签链接"</string>
+    <string name="contextmenu_savelink">"保存链接"</string>
+    <string name="contextmenu_sharelink">"共享链接"</string>
+    <string name="contextmenu_copy">"复制"</string>
+    <string name="contextmenu_copylink">"复制链接网址"</string>
+    <string name="contextmenu_download_image">"保存图片"</string>
+    <string name="contextmenu_view_image">"查看图片"</string>
+    <string name="contextmenu_dial_dot">"拔号..."</string>
+    <string name="contextmenu_add_contact">"添加联系人"</string>
+    <string name="contextmenu_send_mail">"发送电子邮件"</string>
+    <string name="contextmenu_map">"地图"</string>
+    <string name="clear">"清除"</string>
+    <string name="replace">"替换"</string>
+    <string name="browser_bookmarks_page_bookmarks_text">"书签"</string>
+    <string name="menu_preferences">"设置"</string>
+    <string name="pref_content_title">"页面内容设置"</string>
+    <string name="pref_content_load_images">"载入图片"</string>
+    <string name="pref_content_load_images_summary">"在网页上显示图片"</string>
+    <string name="pref_content_block_popups">"阻止弹出窗口"</string>
+    <string name="pref_content_javascript">"启用 JavaScript"</string>
+    <string name="pref_content_open_in_background">"在后台打开"</string>
+    <string name="pref_content_open_in_background_summary">"新窗口会在当前窗口后方打开"</string>
+    <string name="pref_content_homepage">"设置主页"</string>
+    <string name="pref_content_autofit">"自动适应页面"</string>
+    <string name="pref_content_autofit_summary">"调整网页格式以适合屏幕大小"</string>
+    <string name="pref_privacy_title">"隐私设置"</string>
+    <string name="pref_privacy_clear_cache">"清除缓存"</string>
+    <string name="pref_privacy_clear_cache_summary">"删除所有缓存的页面内容"</string>
+    <string name="pref_privacy_clear_cache_dlg">"会清除缓存。"</string>
+    <string name="pref_privacy_clear_cookies">"清除所有 Cookie 数据"</string>
+    <string name="pref_privacy_clear_cookies_summary">"清除所有浏览器 Cookie"</string>
+    <string name="pref_privacy_clear_cookies_dlg">"会清除所有 Cookie。"</string>
+    <string name="pref_privacy_clear_history">"清除历史记录"</string>
+    <string name="pref_privacy_clear_history_summary">"清除浏览器导航历史记录"</string>
+    <string name="pref_privacy_clear_history_dlg">"会清除浏览器导航历史记录。"</string>
+    <string name="pref_privacy_clear_form_data">"清除表单数据"</string>
+    <string name="pref_privacy_clear_form_data_summary">"清除所有已保存的表单数据"</string>
+    <string name="pref_privacy_clear_form_data_dlg">"会清除所有保存的表单数据。"</string>
+    <string name="pref_privacy_clear_passwords">"清除密码"</string>
+    <string name="pref_privacy_clear_passwords_summary">"清除所有保存的密码"</string>
+    <string name="pref_privacy_clear_passwords_dlg">"会清除所有保存的密码。"</string>
+    <string name="pref_security_title">"安全设置"</string>
+    <string name="pref_security_remember_passwords">"记住密码"</string>
+    <string name="pref_security_remember_passwords_summary">"保存用于网站的用户名和密码"</string>
+    <string name="pref_security_save_form_data">"记住表单数据"</string>
+    <string name="pref_security_save_form_data_summary">"记住我在表单中键入的数据以供以后使用"</string>
+    <string name="pref_security_show_security_warning">"显示安全警告"</string>
+    <string name="pref_security_show_security_warning_summary">"当网站的安全有问题时显示警告"</string>
+    <string name="pref_security_accept_cookies">"接受 Cookie"</string>
+    <string name="pref_security_accept_cookies_summary">"允许网站保存并读取“Cookie”数据"</string>
+    <!-- no translation found for pref_text_size (3765589440020504007) -->
+    <skip />
+  <string-array name="pref_text_size_choices">
+    <item>"极小"</item>
+    <item>"小"</item>
+    <item>"正常"</item>
+    <item>"大"</item>
+    <item>"极大"</item>
+  </string-array>
+    <string name="pref_text_size_dialogtitle">"文字大小"</string>
+    <string name="pref_extras_title">"高级设置"</string>
+    <string name="pref_extras_gears_enable">"启用 Gears"</string>
+    <string name="pref_extras_gears_enable_summary">"扩展浏览器功能的应用程序"</string>
+    <string name="pref_extras_gears_settings">"Gears 设置"</string>
+    <!-- no translation found for pref_plugin_installed (6387683936112106178) -->
+    <skip />
+    <string name="pref_plugin_installed_empty_list">"没有已安装的插件。"</string>
+    <string name="pref_extras_gears_settings_summary">"扩展浏览器功能的应用程序"</string>
+    <string name="pref_extras_reset_default">"重置为默认值"</string>
+    <string name="pref_extras_reset_default_summary">"清除所有浏览器数据并将所有设置重置为默认值"</string>
+    <string name="pref_extras_reset_default_dlg">"会清除所有浏览器数据并且设置会恢复为默认值。"</string>
+    <string name="pref_extras_reset_default_dlg_title">"重置为默认值"</string>
+    <string name="pref_development_title">"调试"</string>
+    <string name="pref_development_viewport">"使用宽视口"</string>
+    <string name="pref_development_single_column_rendering">"单列呈现"</string>
+    <string name="pref_development_normal_rendering">"正常呈现"</string>
+    <string name="pref_development_trace">"启用跟踪"</string>
+    <string name="pref_development_nav_dump">"启用导航缓存转储"</string>
+    <!-- no translation found for pref_development_search_url (7979283099657732298) -->
+    <skip />
+    <string name="pref_development_uastring">"UAString"</string>
+  <string-array name="pref_development_ua_choices">
+    <item>"Android"</item>
+    <item>"桌面"</item>
+    <item>"iPhone"</item>
+  </string-array>
+  <string-array name="pref_development_ua_values">
+    <item>"0"</item>
+    <item>"1"</item>
+    <item>"2"</item>
+  </string-array>
+    <!-- no translation found for pref_default_text_encoding (2689164865300623884) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_choices:0 (7275223955790513818) -->
+    <!-- no translation found for pref_default_text_encoding_choices:1 (2456597866837587140) -->
+    <!-- no translation found for pref_default_text_encoding_choices:2 (7143715548814380950) -->
+    <!-- no translation found for pref_default_text_encoding_choices:3 (5111312120564516587) -->
+    <!-- no translation found for pref_default_text_encoding_choices:4 (6545734186479713946) -->
+    <!-- no translation found for pref_default_text_encoding_dialogtitle (5508255018084978547) -->
+    <skip />
+    <!-- no translation found for pref_default_text_encoding_default (5272126711231936722) -->
+    <skip />
+    <string name="browserFrameRedirect">"重定向"</string>
+    <string name="browserFrame307Post">"该网页正被重定向。是否将您键入的表单数据重新发送到新位置？"</string>
+    <string name="browserFrameNetworkErrorLabel">"数据连接性问题"</string>
+    <string name="browserFrameFileErrorLabel">"文件有问题"</string>
+    <string name="browserFrameFormResubmitLabel">"确认"</string>
+    <string name="browserFrameFormResubmitMessage">"您尝试查看的页面中包含已经提交的数据（“POSTDATA”）。如果重新发送数据，系统会重复该页面上的表单所执行过的一切操作（如搜索或在线购买）。"</string>
+    <string name="loadSuspendedTitle">"没有网络连接"</string>
+    <string name="loadSuspended">"连接恢复后页面会继续载入。"</string>
+    <string name="clear_history">"清除历史记录"</string>
+    <string name="browser_history">"最近访问过的页面"</string>
+    <string name="empty_history">"浏览器历史记录为空。"</string>
+    <string name="add_new_bookmark">"新建书签"</string>
+    <string name="no_database">"没有数据库！"</string>
+    <string name="search_hint">"键入网址"</string>
+    <string name="search">"搜索"</string>
+    <string name="search_button_text">"转至"</string>
+    <string name="js_dialog_title_prefix">"该页面位于"</string>
+    <string name="js_dialog_title_suffix">"显示："</string>
+    <string name="js_dialog_title_default">"JavaScript"</string>
+    <string name="js_dialog_before_unload">"是否从该页面导航至它处？"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"选择“确定”继续，或选择“取消”留在当前页面。"</string>
+    <string name="attention">"注意"</string>
+    <string name="popup_window_attempt">"该网站正试图打开一个弹出窗口。"</string>
+    <string name="allow">"允许"</string>
+    <string name="block">"阻止"</string>
+    <string name="too_many_windows_dialog_title">"已达到窗口限制"</string>
+    <string name="too_many_windows_dialog_message">"无法打开新窗口，因为您打开的窗口数已达到允许的最高数目。"</string>
+    <string name="too_many_subwindows_dialog_title">"弹出窗口已经打开"</string>
+    <string name="too_many_subwindows_dialog_message">"无法打开新的弹出窗口，因为不管何时一次都只能打开一个。"</string>
+    <string name="download_title">"下载历史记录"</string>
+    <string name="download_unknown_filename">"&lt;未知&gt;"</string>
+    <string name="download_menu_open">"打开"</string>
+    <string name="download_menu_clear">"从列表中清除"</string>
+    <string name="download_menu_cancel">"取消下载"</string>
+    <string name="download_menu_cancel_all">"取消所有下载"</string>
+    <string name="download_menu_clear_all">"清除列表"</string>
+    <string name="download_clear_dlg_title">"清除"</string>
+    <string name="download_clear_dlg_msg">"所有条目都会从列表中清除并会从浏览器缓存中删除。"</string>
+    <string name="download_cancel_dlg_title">"取消下载"</string>
+    <string name="download_cancel_dlg_msg">"所有 <xliff:g id="DOWNLOAD_COUNT">%d</xliff:g> 个下载都会取消并从下载历史记录中清除。"</string>
+    <string name="download_file_error_dlg_title">"空间不足"</string>
+    <string name="download_file_error_dlg_msg">"无法下载<xliff:g id="FILENAME">%s</xliff:g>。"\n"请释放手机中的一些空间并重试。"</string>
+    <string name="download_failed_generic_dlg_title">"下载不成功"</string>
+    <string name="download_no_sdcard_dlg_title">"无 SD 卡"</string>
+    <string name="download_no_sdcard_dlg_msg">"需要 SD 卡才能下载 <xliff:g id="FILENAME">%s</xliff:g>。"</string>
+    <!-- no translation found for download_sdcard_busy_dlg_title (6877712666046917741) -->
+    <skip />
+    <!-- no translation found for download_sdcard_busy_dlg_msg (4579003999083645700) -->
+    <skip />
+    <string name="download_no_application">"无法找到可打开此文件的应用程序。"</string>
+    <string name="retry">"重试"</string>
+    <string name="no_downloads">"下载历史记录为空。"</string>
+    <string name="download_error">"下载不成功。"</string>
+    <string name="download_success">"<xliff:g id="FILE">%s</xliff:g>下载完成。"</string>
+    <string name="download_running">"正在下载..."</string>
+    <string name="download_pending">"正在开始下载..."</string>
+    <string name="download_pending_network">"正在等待数据连接..."</string>
+    <string name="download_running_paused">"正在等待数据连接..."</string>
+    <string name="download_canceled">"下载已取消。"</string>
+    <!-- no translation found for download_not_acceptable (282108828207321357) -->
+    <skip />
+    <string name="download_file_error">"无法完成下载。存储空间不足。"</string>
+    <string name="download_length_required">"无法下载。无法确定该项的大小。"</string>
+    <string name="download_precondition_failed">"下载中断，无法重新开始。"</string>
+    <!-- no translation found for activity_instrumentation_test_runner (8215091309334005029) -->
+    <skip />
+  <string-array name="bookmarks">
+    <item>"Google"</item>
+    <item>"http://www.google.cn/"</item>
+    <item>"Yahoo!"</item>
+    <item>"http://www.yahoo.com/"</item>
+    <item>"MSN"</item>
+    <item>"http://www.msn.com/"</item>
+    <item>"MySpace"</item>
+    <item>"http://www.myspace.com/"</item>
+    <item>"Facebook"</item>
+    <item>"http://www.facebook.com/"</item>
+    <item>"Wikipedia"</item>
+    <item>"http://www.wikipedia.org/"</item>
+    <item>"易趣"</item>
+    <item>"http://www.ebay.com/"</item>
+    <item>"CNN"</item>
+    <item>"http://www.cnn.com/"</item>
+    <item>"纽约时报"</item>
+    <item>"http://www.nytimes.com/"</item>
+    <item>"ESPN"</item>
+    <item>"http://espn.go.com/"</item>
+    <item>"卓越亚马逊"</item>
+    <item>"http://www.amazon.com/"</item>
+    <item>"Weather Channel"</item>
+    <item>"http://www.weather.com/"</item>
+    <item>"BBC"</item>
+    <item>"http://www.bbc.co.uk/"</item>
+  </string-array>
+    <!-- no translation found for permlab_readHistoryBookmarks (2090878935052508686) -->
+    <skip />
+    <!-- no translation found for permdesc_readHistoryBookmarks (3198464990003094365) -->
+    <skip />
+    <!-- no translation found for permlab_writeHistoryBookmarks (3617974487656041765) -->
+    <skip />
+    <!-- no translation found for permdesc_writeHistoryBookmarks (2408364750616892343) -->
+    <skip />
+    <!-- no translation found for query_data_message (2662165772252682312) -->
+    <skip />
+    <!-- no translation found for location_message (3273812190303763599) -->
+    <skip />
+    <!-- no translation found for shortcut_message (8474516749978531587) -->
+    <skip />
+    <!-- no translation found for settings_message (6171686603006325199) -->
+    <skip />
+    <!-- no translation found for filepicker_message (3954806995548322454) -->
+    <skip />
+    <!-- no translation found for image_message (4416921522797991131) -->
+    <skip />
+    <!-- no translation found for settings_title (3579144910187265022) -->
+    <skip />
+    <!-- no translation found for privacy_policy (864201179110197308) -->
+    <skip />
+    <!-- no translation found for permission_button_alwaysdeny (3997759797081359571) -->
+    <skip />
+    <!-- no translation found for permission_button_allow (8433538747157349096) -->
+    <skip />
+    <!-- no translation found for permission_button_deny (8238202164838263939) -->
+    <skip />
+    <!-- no translation found for shortcut_button_alwaysdeny (8677418058335584182) -->
+    <skip />
+    <!-- no translation found for shortcut_button_allow (3106634184087569293) -->
+    <skip />
+    <!-- no translation found for shortcut_button_deny (6054910540900054553) -->
+    <skip />
+    <!-- no translation found for settings_button_allow (447817497759509841) -->
+    <skip />
+    <!-- no translation found for settings_button_deny (602496920123085858) -->
+    <skip />
+    <!-- no translation found for filepicker_button_allow (2849120125810490391) -->
+    <skip />
+    <!-- no translation found for filepicker_button_deny (1302975999145835953) -->
+    <skip />
+    <!-- no translation found for filepicker_path (4680729728498981925) -->
+    <skip />
+    <!-- no translation found for filepicker_no_files_selected (7859426670184432998) -->
+    <skip />
+    <!-- no translation found for filepicker_one_file_selected (1451259953191434851) -->
+    <skip />
+    <!-- no translation found for filepicker_some_files_selected (3859384664191734493) -->
+    <skip />
+    <!-- no translation found for remove (7820112494467011374) -->
+    <skip />
+    <!-- no translation found for local_storage (6703332885937279085) -->
+    <skip />
+    <!-- no translation found for allowed (1599514934221911624) -->
+    <skip />
+    <!-- no translation found for denied (7470209521858372968) -->
+    <skip />
+    <!-- no translation found for unrecognized_dialog_message (687399590684283989) -->
+    <skip />
+    <!-- no translation found for default_button (3901922329454578908) -->
+    <skip />
+</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0c22bc8..8d02fe1 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -32,13 +32,17 @@
     <color name="white">#ffffffff</color>
     <color name="black">#ff000000</color>
     <color name="gray">#ffbbbbbb</color>
+    <color name="dark_gray">#ff777777</color>
+    <color name="blue">#ff0000ff</color>
     
     <color name="translucent_white">#11ffffff</color>
 
-    <!-- Gears Dialog -->
+    <!-- Gears Dialogs -->
     <color name="permission_border">#f1cc1d</color>
     <color name="permission_background">#faefb8</color>
     <color name="shortcut_border">#e8e8e8</color>
     <color name="shortcut_background">#f8f8f8</color>
+    <color name="icon_selection">#ff7a00</color>
+    <color name="dialog_link">#ff0000ff</color>
 </resources>
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7212135..d4bae20 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -649,12 +649,13 @@
         Browser\'s history or bookmarks stored on your phone. Malicious applications 
         can use this to erase or modify your Browser\'s data.</string>
 
-    <!-- Gears Dialog -->
+    <!-- Gears Dialogs -->
     <string name="query_data_message">The Web site below wants to store information on your computer using Gears.</string>
     <string name="location_message">The Web site below wants to access information about your location using Gears.</string>
     <string name="shortcut_message">This Web site wants to create a shortcut on your computer. Do you want to allow this?</string>
     <string name="settings_message">The table below shows the permissions you have granted to each site that has attempted to use Gears.</string>
     <string name="filepicker_message">Gears File Picker</string>
+    <string name="image_message">Selected image</string>
 
     <string name="settings_title">Gears settings</string>
     <string name="privacy_policy">Read the site\'s privacy policy to see how your location will be used.</string>
@@ -672,6 +673,10 @@
 
     <string name="filepicker_button_allow">OK</string>
     <string name="filepicker_button_deny">Cancel</string>
+    <string name="filepicker_path">path:</string>
+    <string name="filepicker_no_files_selected">No files selected</string>
+    <string name="filepicker_one_file_selected">One file selected</string>
+    <string name="filepicker_some_files_selected">files selected</string>
 
     <string name="remove">Remove</string>
     <string name="local_storage">Local storage</string>
diff --git a/res/xml/searchable.xml b/res/xml/searchable.xml
index 2c159df..c94f0f3 100644
--- a/res/xml/searchable.xml
+++ b/res/xml/searchable.xml
@@ -14,12 +14,16 @@
      limitations under the License.
 -->
 
+<!-- Note:  This defines the UI for the "Go To" UI, which uses the search manager UI, but
+     is actually used to enter Uri's to load and display. -->
+     
 <searchable xmlns:android="http://schemas.android.com/apk/res/android"
     android:icon="@drawable/ic_search_category_browser"
     android:label="@string/search_label"
     android:hint="@string/search_hint"
     android:searchButtonText="@string/search_button_text"
     android:searchMode="queryRewriteFromData"
+    android:inputType="textUri"
     
     android:searchSuggestAuthority="browser"
     android:searchSuggestSelection="url LIKE ?"
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index fe27f8d..7c6fa04 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -579,8 +579,9 @@
                 copyBuildInfos();
 
                 // Refresh the plugin list.
-                if (mWebView != null)
-                    mWebView.refreshPlugins(false);
+                if (mTabControl.getCurrentWebView() != null) {
+                    mTabControl.getCurrentWebView().refreshPlugins(false);
+                }
             } catch (IOException e) {
                 Log.e(TAG, "IO Exception: " + e);
             }
@@ -701,11 +702,11 @@
             // This is one of the only places we call attachTabToContentView
             // without animating from the tab picker.
             attachTabToContentView(t);
-            mWebView = t.getWebView();
+            WebView webView = t.getWebView();
             if (extra != null) {
                 int scale = extra.getInt(Browser.INITIAL_ZOOM_LEVEL, 0);
                 if (scale > 0 && scale <= 1000) {
-                    mWebView.setInitialScale(scale);
+                    webView.setInitialScale(scale);
                 }
             }
             // If we are not restoring from an icicle, then there is a high
@@ -721,19 +722,18 @@
             String url = getUrlFromIntent(intent);
             if (url == null || url.length() == 0) {
                 if (mSettings.isLoginInitialized()) {
-                    mWebView.loadUrl(mSettings.getHomePage());
+                    webView.loadUrl(mSettings.getHomePage());
                 } else {
                     waitForCredentials();
                 }
             } else {
-                mWebView.loadUrl(url);
+                webView.loadUrl(url);
             }
         } else {
             // TabControl.restoreState() will create a new tab even if
             // restoring the state fails. Attach it to the view here since we
             // are not animating from the tab picker.
             attachTabToContentView(mTabControl.getCurrentTab());
-            mWebView = mTabControl.getCurrentWebView();
         }
 
         /* enables registration for changes in network status from
@@ -757,17 +757,19 @@
 
     @Override
     protected void onNewIntent(Intent intent) {
+        TabControl.Tab current = mTabControl.getCurrentTab();
         // When a tab is closed on exit, the current tab index is set to -1.
         // Reset before proceed as Browser requires the current tab to be set.
-        if (mTabControl.getCurrentIndex() == -1) {
-            TabControl.Tab current = mTabControl.getTab(0);
+        if (current == null) {
+            // Try to reset the tab in case the index was incorrect.
+            current = mTabControl.getTab(0);
+            if (current == null) {
+                // No tabs at all so just ignore this intent.
+                return;
+            }
             mTabControl.setCurrentTab(current);
             attachTabToContentView(current);
-            mWebView = current.getWebView();
-            resetTitleAndIcon(mWebView);
-        }
-        if (mWebView == null) {
-            return;
+            resetTitleAndIcon(current.getWebView());
         }
         final String action = intent.getAction();
         final int flags = intent.getFlags();
@@ -796,16 +798,15 @@
                     mSettings.toggleDebugSettings();
                     return;
                 }
-                final TabControl.Tab currentTab = mTabControl.getCurrentTab();
                 // If the Window overview is up and we are not in the midst of
                 // an animation, animate away from the Window overview.
                 if (mTabOverview != null && mAnimationCount == 0) {
-                    sendAnimateFromOverview(currentTab, false, url,
+                    sendAnimateFromOverview(current, false, url,
                             TAB_OVERVIEW_DELAY, null);
                 } else {
                     // Get rid of the subwindow if it exists
-                    dismissSubWindow(currentTab);
-                    mWebView.loadUrl(url);
+                    dismissSubWindow(current);
+                    current.getWebView().loadUrl(url);
                 }
             }
         }
@@ -938,16 +939,18 @@
                 boolean gestZ = az > 3.5f && arz > 1.0f && az > arz;
 
                 if ((gestY || gestZ) && !(gestY && gestZ)) {
-                    WebView view = mWebView;
+                    WebView view = mTabControl.getCurrentWebView();
 
-                    if (gestZ) {
-                        if (z < 0) {
-                            view.zoomOut();
+                    if (view != null) {
+                        if (gestZ) {
+                            if (z < 0) {
+                                view.zoomOut();
+                            } else {
+                                view.zoomIn();
+                            }
                         } else {
-                            view.zoomIn();
+                            view.flingScroll(0, Math.round(y * 100));
                         }
-                    } else {
-                        view.flingScroll(0, Math.round(y * 100));
                     }
                     mLastGestureTime = now;
                 }
@@ -1132,7 +1135,10 @@
         if ((!mActivityInPause && !mPageStarted) || 
                 (mActivityInPause && mPageStarted)) {
             CookieSyncManager.getInstance().startSync();
-            mWebView.resumeTimers();
+            WebView w = mTabControl.getCurrentWebView();
+            if (w != null) {
+                w.resumeTimers();
+            }
             return true;
         } else {
             return false;
@@ -1142,7 +1148,10 @@
     private boolean pauseWebView() {
         if (mActivityInPause && !mPageStarted) {
             CookieSyncManager.getInstance().stopSync();
-            mWebView.pauseTimers();
+            WebView w = mTabControl.getCurrentWebView();
+            if (w != null) {
+                w.pauseTimers();
+            }
             return true;
         } else {
             return false;
@@ -1188,7 +1197,10 @@
         mHandler.removeMessages(CANCEL_CREDS_REQUEST);
 
         // Load the page
-        mWebView.loadUrl(mSettings.getHomePage());
+        WebView w = mTabControl.getCurrentWebView();
+        if (w != null) {
+            w.loadUrl(mSettings.getHomePage());
+        }
 
         // Update the settings, need to do this last as it can take a moment
         // to persist the settings. In the mean time we could be loading
@@ -1380,8 +1392,11 @@
                 break;
 
             case R.id.homepage_menu_id:
-                dismissSubWindow(mTabControl.getCurrentTab());
-                mWebView.loadUrl(mSettings.getHomePage());
+                TabControl.Tab current = mTabControl.getCurrentTab();
+                if (current != null) {
+                    dismissSubWindow(current);
+                    current.getWebView().loadUrl(mSettings.getHomePage());
+                }
                 break;
 
             case R.id.preferences_menu_id:
@@ -1441,8 +1456,8 @@
             case R.id.flip_orientation_menu_id:
                 if (mSettings.getOrientation() != 
                         ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
-                mSettings.setOrientation(this, 
-                        ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+                    mSettings.setOrientation(this, 
+                            ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                 } else {
                     mSettings.setOrientation(this,
                             ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
@@ -1815,10 +1830,8 @@
         mTabControl.setCurrentTab(tab);
         // Attach the WebView so it will layout.
         attachTabToContentView(tab);
-        // Reset the current WebView.
-        mWebView = tab.getWebView();
         // Set the view to invisibile for now.
-        mWebView.setVisibility(View.INVISIBLE);
+        tab.getWebView().setVisibility(View.INVISIBLE);
         // If there is a sub window, make it invisible too.
         if (tab.getSubWebView() != null) {
             tab.getSubWebViewContainer().setVisibility(View.INVISIBLE);
@@ -1890,14 +1903,14 @@
                     assert msg == null;
                     // just dismiss the subwindow and load the given url.
                     dismissSubWindow(currentTab);
-                    mWebView.loadUrl(url);
+                    currentTab.getWebView().loadUrl(url);
                 }
             } else {
                 // show mTabOverview if it is not there.
                 if (mTabOverview == null) {
                     // We have to delay the animation from the tab picker by the
-                    // length of the tab animation. Add a delay so the tab overview
-                    // can be shown before the second animation begins.
+                    // length of the tab animation. Add a delay so the tab
+                    // overview can be shown before the second animation begins.
                     delay = TAB_ANIMATION_DURATION + TAB_OVERVIEW_DELAY;
                     tabPicker(false, ImageGrid.NEW_TAB, false);
                 }
@@ -1916,7 +1929,7 @@
                 // Get rid of the subwindow if it exists
                 dismissSubWindow(currentTab);
                 // Load the given url.
-                mWebView.loadUrl(url);
+                currentTab.getWebView().loadUrl(url);
             }
         }
     }
@@ -2070,15 +2083,17 @@
                                 // given location is null, set the fade
                                 // parameter to true.
                                 dismissTabOverview(v == null);
+                                TabControl.Tab t =
+                                        mTabControl.getCurrentTab();
+                                WebView w = t.getWebView();
                                 if (url != null) {
                                     // Dismiss the subwindow if one exists.
-                                    dismissSubWindow(
-                                            mTabControl.getCurrentTab());
-                                    mWebView.loadUrl(url);
+                                    dismissSubWindow(t);
+                                    w.loadUrl(url);
                                 }
                                 mMenuState = R.id.MAIN_MENU;
                                 // Resume regular updates.
-                                mWebView.resumeTimers();
+                                w.resumeTimers();
                                 // Dispatch the message after the animation
                                 // completes.
                                 if (msg != null) {
@@ -2118,7 +2133,7 @@
         }
         // Just in case there was a problem with animating away from the tab
         // overview
-        mWebView.setVisibility(View.VISIBLE);
+        mTabControl.getCurrentWebView().setVisibility(View.VISIBLE);
         // Make the sub window container visible.
         if (mTabControl.getCurrentSubWindow() != null) {
             mTabControl.getCurrentTab().getSubWebViewContainer()
@@ -2204,11 +2219,15 @@
      * Reset the title, favicon, and progress.
      */
     private void resetTitleIconAndProgress() {
-        resetTitleAndIcon(mWebView);
-        int progress = mWebView.getProgress();
+        WebView current = mTabControl.getCurrentWebView();
+        if (current == null) {
+            return;
+        }
+        resetTitleAndIcon(current);
+        int progress = current.getProgress();
         mInLoad = (progress != 100);
         updateInLoadMenuItems();
-        mWebChromeClient.onProgressChanged(mWebView, progress);
+        mWebChromeClient.onProgressChanged(current, progress);
     }
 
     // Reset the title and the icon based on the given item.
@@ -2361,6 +2380,11 @@
         if (tab != null) {
             sendAnimateFromOverview(tab, false, null, delay, null);
         } else {
+            // Increment this here so that no other animations can happen in
+            // between the end of the tab picker transition and the beginning
+            // of openTabAndShow. This has a matching decrement in the handler
+            // of OPEN_TAB_AND_SHOW.
+            mAnimationCount++;
             // Send a message to open a new tab.
             mHandler.sendMessageDelayed(
                     mHandler.obtainMessage(OPEN_TAB_AND_SHOW,
@@ -2369,27 +2393,38 @@
     }
 
     private void goBackOnePageOrQuit() {
-        if (mWebView.canGoBack()) {
-            mWebView.goBack();
+        TabControl.Tab current = mTabControl.getCurrentTab();
+        if (current == null) {
+            /*
+             * Instead of finishing the activity, simply push this to the back
+             * of the stack and let ActivityManager to choose the foreground
+             * activity. As BrowserActivity is singleTask, it will be always the
+             * root of the task. So we can use either true or false for
+             * moveTaskToBack().
+             */
+            moveTaskToBack(true);
+        }
+        WebView w = current.getWebView();
+        if (w.canGoBack()) {
+            w.goBack();
         } else {
-            TabControl.Tab self = mTabControl.getCurrentTab();
             // Check to see if we are closing a window that was created by
             // another window. If so, we switch back to that window.
-            TabControl.Tab parent = self.getParentTab();
+            TabControl.Tab parent = current.getParentTab();
             if (parent != null) {
                 switchTabs(mTabControl.getCurrentIndex(),
                         mTabControl.getTabIndex(parent), true);
             } else {
-                if (self.closeOnExit()) {
+                if (current.closeOnExit()) {
                     if (mTabControl.getTabCount() == 1) {
                         finish();
                         return;
                     }
                     // call pauseWebView() now, we won't be able to call it in
-                    // onPause() as the mWebView won't be valid.
+                    // onPause() as the WebView won't be valid.
                     pauseWebView();
-                    removeTabFromContentView(self);
-                    mTabControl.removeTab(self);
+                    removeTabFromContentView(current);
+                    mTabControl.removeTab(current);
                 }
                 /*
                  * Instead of finishing the activity, simply push this to the back
@@ -2547,6 +2582,10 @@
                     break;
 
                 case OPEN_TAB_AND_SHOW:
+                    // Decrement mAnimationCount before openTabAndShow because
+                    // the method relies on the value being 0 to start the next
+                    // animation.
+                    mAnimationCount--;
                     openTabAndShow((String) msg.obj, null, false);
                     break;
 
@@ -3043,7 +3082,7 @@
 
                 new AlertDialog.Builder(BrowserActivity.this)
                     .setTitle(R.string.security_warning)
-                    .setIcon(R.drawable.ic_dialog_alert)
+                    .setIcon(android.R.drawable.ic_dialog_alert)
                     .setView(warningsView)
                     .setPositiveButton(R.string.ssl_continue,
                             new DialogInterface.OnClickListener() {
@@ -3093,9 +3132,11 @@
             boolean reuseHttpAuthUsernamePassword =
                 handler.useHttpAuthUsernamePassword();
 
-            if (reuseHttpAuthUsernamePassword) {
+            if (reuseHttpAuthUsernamePassword &&
+                    (mTabControl.getCurrentWebView() != null)) {
                 String[] credentials =
-                    mWebView.getHttpAuthUsernamePassword(host, realm);
+                        mTabControl.getCurrentWebView()
+                                .getHttpAuthUsernamePassword(host, realm);
                 if (credentials != null && credentials.length == 2) {
                     username = credentials[0];
                     password = credentials[1];
@@ -3121,10 +3162,13 @@
 
         @Override
         public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
+            if (view != mTabControl.getCurrentTopWebView()) {
+                return;
+            }
             if (event.isDown()) {
-                mKeyTracker.doKeyDown(event.getKeyCode(), event);
+                BrowserActivity.this.onKeyDown(event.getKeyCode(), event);
             } else {
-                mKeyTracker.doKeyUp(event.getKeyCode(), event);
+                BrowserActivity.this.onKeyUp(event.getKeyCode(), event);
             }
         }
     };
@@ -3155,9 +3199,9 @@
                 // in during the animation.
                 openTabAndShow(null, msg, false);
                 parent.addChildTab(mTabControl.getCurrentTab());
-                WebView.WebViewTransport transport = 
-                    (WebView.WebViewTransport) msg.obj;
-                transport.setWebView(mWebView);
+                WebView.WebViewTransport transport =
+                        (WebView.WebViewTransport) msg.obj;
+                transport.setWebView(mTabControl.getCurrentWebView());
             }
         }
 
@@ -3173,7 +3217,7 @@
             if (dialog && mTabControl.getCurrentSubWindow() != null) {
                 new AlertDialog.Builder(BrowserActivity.this)
                         .setTitle(R.string.too_many_subwindows_dialog_title)
-                        .setIcon(R.drawable.ic_dialog_alert)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
                         .setMessage(R.string.too_many_subwindows_dialog_message)
                         .setPositiveButton(R.string.ok, null)
                         .show();
@@ -3181,7 +3225,7 @@
             } else if (mTabControl.getTabCount() >= TabControl.MAX_TABS) {
                 new AlertDialog.Builder(BrowserActivity.this)
                         .setTitle(R.string.too_many_windows_dialog_title)
-                        .setIcon(R.drawable.ic_dialog_alert)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
                         .setMessage(R.string.too_many_windows_dialog_message)
                         .setPositiveButton(R.string.ok, null)
                         .show();
@@ -3226,7 +3270,7 @@
             final AlertDialog d =
                     new AlertDialog.Builder(BrowserActivity.this)
                     .setTitle(R.string.attention)
-                    .setIcon(R.drawable.ic_dialog_alert)
+                    .setIcon(android.R.drawable.ic_dialog_alert)
                     .setMessage(R.string.popup_window_attempt)
                     .setPositiveButton(R.string.allow, allowListener)
                     .setNegativeButton(R.string.block, blockListener)
@@ -3543,7 +3587,7 @@
 
             new AlertDialog.Builder(this)
                 .setTitle(title)
-                .setIcon(R.drawable.ic_dialog_alert)
+                .setIcon(android.R.drawable.ic_dialog_alert)
                 .setMessage(msg)
                 .setPositiveButton(R.string.ok, null)
                 .show();
@@ -3658,7 +3702,7 @@
         if (view == null) {
             url = tab.getUrl();
             title = tab.getTitle();
-        }else if (view == mWebView) {
+        } else if (view == mTabControl.getCurrentWebView()) {
              // Use the cached title and url if this is the current WebView
             url = mUrl;
             title = mTitle;
@@ -3682,7 +3726,7 @@
 
         AlertDialog.Builder alertDialogBuilder =
             new AlertDialog.Builder(this)
-            .setTitle(R.string.page_info).setIcon(R.drawable.ic_dialog_info)
+            .setTitle(R.string.page_info).setIcon(android.R.drawable.ic_dialog_info)
             .setView(pageInfoView)
             .setPositiveButton(
                 R.string.ok,
@@ -3763,7 +3807,7 @@
      */
     private void showSSLCertificate(final TabControl.Tab tab) {
         final View certificateView =
-            inflateCertificateView(mWebView.getCertificate());
+                inflateCertificateView(tab.getWebView().getCertificate());
         if (certificateView == null) {
             return;
         }
@@ -4012,7 +4056,7 @@
         mHttpAuthHandler = handler;
         mHttpAuthenticationDialog = new AlertDialog.Builder(this)
                 .setTitle(titleText)
-                .setIcon(R.drawable.ic_dialog_alert)
+                .setIcon(android.R.drawable.ic_dialog_alert)
                 .setView(v)
                 .setPositiveButton(R.string.action,
                         new DialogInterface.OnClickListener() {
@@ -4055,7 +4099,12 @@
     }
 
     public int getProgress() {
-        return mWebView.getProgress();
+        WebView w = mTabControl.getCurrentWebView();
+        if (w != null) {
+            return w.getProgress();
+        } else {
+            return 100;
+        }
     }
 
     /**
@@ -4070,7 +4119,10 @@
     public void setHttpAuthUsernamePassword(String host, String realm,
                                             String username,
                                             String password) {
-        mWebView.setHttpAuthUsernamePassword(host, realm, username, password);
+        WebView w = mTabControl.getCurrentWebView();
+        if (w != null) {
+            w.setHttpAuthUsernamePassword(host, realm, username, password);
+        }
     }
 
     /**
@@ -4092,7 +4144,10 @@
                         .show();
             }
         }
-        mTabControl.getCurrentWebView().setNetworkAvailable(up);
+        WebView w = mTabControl.getCurrentWebView();
+        if (w != null) {
+            w.setNetworkAvailable(up);
+        }
     }
 
     @Override
@@ -4180,14 +4235,9 @@
                 mTabOverview.setCurrentIndex(mTabControl.getTabIndex(current));
             }
 
-            // FIXME: This isn't really right. We don't have a current WebView
-            // since we are switching between tabs and haven't selected a new
-            // one. This just prevents a NPE in case the user hits home from the
-            // tab switcher.
             // Only the current tab ensures its WebView is non-null. This
             // implies that we are reloading the freed tab.
             mTabControl.setCurrentTab(current);
-            mWebView = current.getWebView();
         }
         public void onClick(int index) {
             // Change the tab if necessary.
@@ -4323,10 +4373,14 @@
     }
 
     private void bookmarksPicker() {
+        WebView current = mTabControl.getCurrentWebView();
+        if (current == null) {
+            return;
+        }
         Intent intent = new Intent(this,
                 BrowserBookmarksPage.class);
-        String title = mWebView.getTitle();
-        String url = mWebView.getUrl();
+        String title = current.getTitle();
+        String url = current.getUrl();
         // Just in case the user opens bookmarks before a page finishes loading
         // so the current history item, and therefore the page, is null.
         if (null == url) {
@@ -4506,7 +4560,6 @@
     private int mLockIconType = LOCK_ICON_UNSECURE;
     private int mPrevLockType = LOCK_ICON_UNSECURE;
 
-    private WebView         mWebView;
     private BrowserSettings mSettings;
     private TabControl      mTabControl;
     private ContentResolver mResolver;
diff --git a/src/com/android/browser/GearsBaseDialog.java b/src/com/android/browser/GearsBaseDialog.java
index c930dc8..afd0dd2 100644
--- a/src/com/android/browser/GearsBaseDialog.java
+++ b/src/com/android/browser/GearsBaseDialog.java
@@ -22,6 +22,9 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.os.Handler;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.UnderlineSpan;
 import android.util.Log;
 import android.view.InflateException;
 import android.view.LayoutInflater;
@@ -145,11 +148,14 @@
    */
   void setupButton(int buttonRscID,
                    int rscString,
-                   View.OnClickListener listener) {
+                   View.OnClickListener listener,
+                   boolean isLink,
+                   boolean requestFocus) {
     View view = findViewById(buttonRscID);
     if (view == null) {
       return;
     }
+
     Button button = (Button) view;
 
     if (rscString == 0) {
@@ -158,10 +164,25 @@
       CharSequence text = getString(rscString);
       button.setText(text);
       button.setOnClickListener(listener);
+      if (isLink) {
+        displayAsLink(button);
+      }
+      if (requestFocus) {
+        button.requestFocus();
+      }
     }
   }
 
   /**
+   * Button setup: as the above method, except that 'isLink' and
+   * 'requestFocus' default to false.
+   */
+  void setupButton(int buttonRsc, int rsc,
+                   View.OnClickListener listener) {
+    setupButton(buttonRsc, rsc, listener, false, false);
+  }
+
+  /**
    * Utility method to setup the three dialog buttons.
    */
   void setupButtons(int alwaysDenyRsc, int allowRsc, int denyRsc) {
@@ -170,14 +191,14 @@
                   public void onClick(View v) {
                     mHandler.sendEmptyMessage(ALWAYS_DENY);
                   }
-                });
+                }, true, false);
 
     setupButton(R.id.button_allow, allowRsc,
                 new Button.OnClickListener() {
                   public void onClick(View v) {
                     mHandler.sendEmptyMessage(ALLOW);
                   }
-                });
+                }, false, true);
 
     setupButton(R.id.button_deny, denyRsc,
                 new Button.OnClickListener() {
@@ -188,6 +209,26 @@
   }
 
   /**
+   * Display a button as an HTML link. Remove the background, set the
+   * text color to R.color.dialog_link and draw an underline
+   */
+  void displayAsLink(Button button) {
+    if (button == null) {
+      return;
+    }
+
+    CharSequence text = button.getText();
+    button.setBackgroundDrawable(null);
+    int color = getResources().getColor(R.color.dialog_link);
+    button.setTextColor(color);
+    SpannableString str = new SpannableString(text);
+    str.setSpan(new UnderlineSpan(), 0, str.length(),
+                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+    button.setText(str);
+    button.setFocusable(false);
+  }
+
+  /**
    * Utility method to set elements' text indicated in
    * the dialogs' arguments.
    */
@@ -332,5 +373,4 @@
     setupDialog();
   }
 
-
 }
diff --git a/src/com/android/browser/GearsFilePickerDialog.java b/src/com/android/browser/GearsFilePickerDialog.java
index 4a3c0ed..c744a86 100644
--- a/src/com/android/browser/GearsFilePickerDialog.java
+++ b/src/com/android/browser/GearsFilePickerDialog.java
@@ -48,6 +48,7 @@
 
 import org.json.JSONArray;
 import org.json.JSONException;
+import org.json.JSONObject;
 
 /**
  * Gears FilePicker dialog
@@ -60,14 +61,44 @@
   private static Bitmap mDefaultIcon;
   private static Bitmap mImageIcon;
   private static Bitmap mBackIcon;
+
+  private static String MULTIPLE_FILES = "MULTIPLE_FILES";
+  private static String SINGLE_FILE = "SINGLE_FILE";
+
   private static ImagesLoad mImagesLoader;
   private FilePickerAdapter mAdapter;
+  private String mSelectionMode;
+  private boolean mMultipleSelection;
+  private String mCurrentPath;
+
+  // Disable saving thumbnails until this is refactored to fit into
+  // existing schemes.
+  private static final boolean enableSavedThumbnails = false;
 
   public GearsFilePickerDialog(Activity activity,
                                Handler handler,
                                String arguments) {
     super (activity, handler, arguments);
     mAdapter = new FilePickerAdapter(activity);
+    parseArguments();
+  }
+
+  public void parseArguments() {
+    mSelectionMode = MULTIPLE_FILES;
+    try {
+      JSONObject json = new JSONObject(mDialogArguments);
+
+      if (json.has("mode")) {
+        mSelectionMode = json.getString("mode");
+      }
+    } catch (JSONException e) {
+      Log.e(TAG, "exc: " + e);
+    }
+    if (mSelectionMode.equalsIgnoreCase(SINGLE_FILE)) {
+      mMultipleSelection = false;
+    } else {
+      mMultipleSelection = true;
+    }
   }
 
   public void setup() {
@@ -76,20 +107,55 @@
                  R.string.filepicker_button_allow,
                  R.string.filepicker_button_deny);
     setupDialog();
+
+    TextView textViewPath = (TextView) findViewById(R.id.path_name);
+    if (textViewPath != null) {
+      textViewPath.setText(R.string.filepicker_path);
+    }
+
     GridView view = (GridView) findViewById(R.id.files_list);
     view.setAdapter(mAdapter);
     view.setOnTouchListener(this);
 
+    setSelectionText();
+
     mImagesLoader = new ImagesLoad(mAdapter);
     mImagesLoader.setAdapterView(view);
     Thread thread = new Thread(mImagesLoader);
     thread.start();
   }
 
+  public void setSelectionText() {
+    Vector elements = mAdapter.selectedElements();
+    if (elements == null)
+      return;
+    TextView info = (TextView) findViewById(R.id.selection);
+    int nbElements = elements.size();
+    if (nbElements == 0) {
+      info.setText(R.string.filepicker_no_files_selected);
+    } else if (nbElements == 1) {
+      info.setText(R.string.filepicker_one_file_selected);
+    } else {
+      info.setText(nbElements + " " +
+                   mActivity.getString(
+                       R.string.filepicker_some_files_selected));
+    }
+  }
+
+  public void setCurrentPath(String path) {
+    if (path != null) {
+      mCurrentPath = path;
+      TextView textViewPath = (TextView) findViewById(R.id.current_path);
+      if (textViewPath != null) {
+        textViewPath.setText(path);
+      }
+    }
+  }
+
   public void setupDialog(TextView message, ImageView icon) {
     message.setText(R.string.filepicker_message);
     message.setTextSize(24);
-    icon.setImageResource(R.drawable.gears_icon_48x48);
+    icon.setImageResource(R.drawable.gears_icon_32x32);
   }
 
   public boolean onTouch(View v, MotionEvent event) {
@@ -149,11 +215,13 @@
       Bitmap finalImage = null;
       try {
         String thumbnailPath = getThumbnailPath(path);
-        File thumbnail = new File(thumbnailPath);
-        if (thumbnail.exists()) {
-          finalImage = BitmapFactory.decodeFile(thumbnailPath);
-          if (finalImage != null) {
-            return finalImage;
+        if (enableSavedThumbnails) {
+          File thumbnail = new File(thumbnailPath);
+          if (thumbnail.exists()) {
+            finalImage = BitmapFactory.decodeFile(thumbnailPath);
+            if (finalImage != null) {
+              return finalImage;
+            }
           }
         }
         BitmapFactory.Options options = new BitmapFactory.Options();
@@ -178,12 +246,14 @@
           return null;
         }
         finalImage = Bitmap.createScaledBitmap(originalImage, size, size, true);
-        if (saveImage(thumbnailPath, finalImage)) {
-          if (mDebug) {
-            Log.v(TAG, "Saved thumbnail for file " + path);
+        if (enableSavedThumbnails) {
+          if (saveImage(thumbnailPath, finalImage)) {
+            if (mDebug) {
+              Log.v(TAG, "Saved thumbnail for file " + path);
+            }
+          } else {
+            Log.e(TAG, "Could NOT Save thumbnail for file " + path);
           }
-        } else {
-          Log.e(TAG, "Could NOT Save thumbnail for file " + path);
         }
         originalImage.recycle();
       } catch (java.lang.OutOfMemoryError e) {
@@ -519,8 +589,8 @@
       Uri requests[] = { MediaStore.Images.Media.INTERNAL_CONTENT_URI,
                          MediaStore.Images.Media.EXTERNAL_CONTENT_URI };
 
-      String sdCardPath = Environment.getExternalStorageDirectory().getPath();
-      mRootElement = new FilePickerElement(sdCardPath, "SD Card", this);
+      String startingPath = Environment.getExternalStorageDirectory().getPath();
+      mRootElement = new FilePickerElement(startingPath, "SD Card", this);
       mCurrentElement = mRootElement;
     }
 
@@ -534,6 +604,7 @@
 
     public int getCount() {
       Vector elems = mCurrentElement.getChildren();
+      setCurrentPath(mCurrentElement.getPath());
       return elems.size();
     }
 
@@ -587,18 +658,43 @@
             mCurrentElement = elem;
             mCurrentElement.refresh();
           } else {
-            elem.toggleSelection();
+            if (mMultipleSelection) {
+              elem.toggleSelection();
+            } else {
+              Vector elems = selectedElements();
+              if (elems != null) {
+                if (elems.size() == 0) {
+                  elem.toggleSelection();
+                } else if ((elems.size() == 1)
+                           && elem.isSelected()) {
+                  elem.toggleSelection();
+                }
+              }
+            }
           }
+          setSelectionText();
           notifyDataSetChanged();
         }
       };
-      imageView.setOnClickListener(listener);
       cell.setLayoutParams(new GridView.LayoutParams(96, 96));
+      cell.setOnClickListener(listener);
+      cell.setOnTouchListener(new View.OnTouchListener() {
+        public boolean onTouch(View v, MotionEvent event) {
+          if (event.getAction() == MotionEvent.ACTION_DOWN) {
+            int color = getResources().getColor(R.color.icon_selection);
+            v.setBackgroundColor(color);
+          } else {
+            v.setBackgroundColor(Color.WHITE);
+          }
+          return false;
+        }
+      });
 
-      imageView.setTag(position);
+      cell.setTag(position);
 
       if (elem.isSelected()) {
-        cell.setBackgroundColor(Color.LTGRAY);
+        int color = getResources().getColor(R.color.icon_selection);
+        cell.setBackgroundColor(color);
       } else {
         cell.setBackgroundColor(Color.WHITE);
       }
diff --git a/src/com/android/browser/GearsSettingsDialog.java b/src/com/android/browser/GearsSettingsDialog.java
index dead4f2..56a1d8d 100644
--- a/src/com/android/browser/GearsSettingsDialog.java
+++ b/src/com/android/browser/GearsSettingsDialog.java
@@ -166,6 +166,7 @@
     if (listView != null) {
       ListView list = (ListView) listView;
       list.setAdapter(new SettingsAdapter(mActivity, mSitesPermissions));
+      list.setScrollBarStyle(android.view.View.SCROLLBARS_OUTSIDE_INSET);
     }
     if (mDebug) {
       printPermissions();
@@ -354,6 +355,7 @@
       };
       button.setTag(perms);
       button.setOnClickListener(listener);
+      displayAsLink(button);
     }
 
     public View getView(int position, View convertView, ViewGroup parent) {
