diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 5e60b2d..41619df 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Prohlížeč"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Zvolit soubor, který chcete nahrát."</string>
     <string name="new_tab" msgid="4505722538297295141">"Nové okno"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Platnost:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Datum vydání:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Platnost vyprší:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Zastavuji..."</string>
     <string name="stop" msgid="5687251076030630074">"Zastavit"</string>
     <string name="reload" msgid="8585220783228408062">"Obnovit"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Povolit JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Otevřít na pozadí"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Povolit pluginy"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Otevírat nová okna za aktuálním oknem"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Nastavit domovskou stránku"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Použít aktuální stránku"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 26ff5a7..197c0de 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Browser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Vælg fil til upload"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nyt vindue"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Gyldighed:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Udstedt den:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Udløber den:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Stopper ..."</string>
     <string name="stop" msgid="5687251076030630074">"Stop"</string>
     <string name="reload" msgid="8585220783228408062">"Opdater"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Aktiver Javascript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Åbn i baggrunden"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Aktiver plugins"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Åbn nye vinduer bag det aktive"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Angiv startside"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Brug aktuel side"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 98dd364..c61c70a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Browser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Datei zum Hochladen auswählen"</string>
     <string name="new_tab" msgid="4505722538297295141">"Neues Fenster"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Gültigkeit:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Ausgegeben am:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Läuft ab am:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Wird angehalten..."</string>
     <string name="stop" msgid="5687251076030630074">"Anhalten"</string>
     <string name="reload" msgid="8585220783228408062">"Aktualisieren"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript aktivieren"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Im Hintergrund öffnen"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Plug-ins aktivieren"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Neues Fenster hinter dem aktuellen Fenster öffnen"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Startseite festlegen"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Aktuelle Seite verwenden"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 29eea4e..098f2d8 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Internet"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Επιλογή αρχείου για μεταφόρτωση"</string>
     <string name="new_tab" msgid="4505722538297295141">"Νέο παράθυρο"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Ισχύς:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Εκδόθηκε στις:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Λήγει:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Διακοπή..."</string>
     <string name="stop" msgid="5687251076030630074">"Διακοπή"</string>
     <string name="reload" msgid="8585220783228408062">"Ανανέωση"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Ενεργοποίηση JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Άνοιγμα στο παρασκήνιο"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Ενεργοποίηση πρόσθετων"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Άνοιγμα νέων παραθύρων πίσω από το τρέχον"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Ορισμός ως αρχική σελίδα"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Χρήση τρέχουσας σελίδας"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 15c40d9..0f632f1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Navegador"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Elegir el archivo para cargar"</string>
     <string name="new_tab" msgid="4505722538297295141">"Ventana nueva"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validez:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Enviado el:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Expira el:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Deteniendo..."</string>
     <string name="stop" msgid="5687251076030630074">"Detener"</string>
     <string name="reload" msgid="8585220783228408062">"Actualizar"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Habilitar JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir en modo subord."</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Activar complementos"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir ventanas nuevas detrás de la actual"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Definir página de inicio"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Utilizar la página actual"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ae7ea88..cd96e86 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Navegador"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Seleccionar archivo para subir"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nueva ventana"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validez:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Fecha de emisión:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Fecha de caducidad:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Deteniendo..."</string>
     <string name="stop" msgid="5687251076030630074">"Detener"</string>
     <string name="reload" msgid="8585220783228408062">"Actualizar"</string>
@@ -120,7 +121,7 @@
     <string name="clear" msgid="7070043081700011461">"Borrar"</string>
     <string name="replace" msgid="4843033491070384047">"Sustituir"</string>
     <string name="browser_bookmarks_page_bookmarks_text" msgid="6787605028726162673">"Marcadores"</string>
-    <string name="menu_preferences" msgid="6709237687234102240">"Ajustes"</string>
+    <string name="menu_preferences" msgid="6709237687234102240">"Configuración"</string>
     <string name="pref_content_title" msgid="722227111894838633">"Configuración de contenido de la página"</string>
     <string name="pref_content_load_images" msgid="2125616852957377561">"Cargar imágenes"</string>
     <string name="pref_content_load_images_summary" msgid="5055874125248398584">"Mostrar imágenes en páginas web"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Habilitar JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir en segundo plano"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Habilitar complementos"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir nuevas ventanas detrás de la actual"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Página de inicio"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Utilizar página actual"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 55c83de..c80db78 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Navigateur"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Choisir le fichier à importer"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nouvelle fenêtre"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validité :"</string>
     <string name="issued_on" msgid="2082890654801808368">"Émis le :"</string>
     <string name="expires_on" msgid="8061200430557020704">"Expire le :"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Arrêt..."</string>
     <string name="stop" msgid="5687251076030630074">"Interrompre"</string>
     <string name="reload" msgid="8585220783228408062">"Actualiser"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Activer JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Ouvrir en arrière-plan"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Activer les plug-ins"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Ouvrir les nouvelles fenêtres derrière la fenêtre actuelle"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Page d\'accueil"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Utiliser la page actuelle"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 18ee548..2cd29e1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Browser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Scegli il file per il caricamento"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nuova finestra"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validità:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Rilasciato il:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Scade il:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Interruzione..."</string>
     <string name="stop" msgid="5687251076030630074">"Interrompi"</string>
     <string name="reload" msgid="8585220783228408062">"Aggiorna"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Attiva JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Apri in secondo piano"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Attiva plug-in"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Apri le nuove finestre dietro la finestra corrente"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Imposta home page"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Utilizza pagina corrente"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 0f8a340..18f7103 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"ブラウザ"</string>
     <string name="choose_upload" msgid="3649366287575002063">"アップロードするファイルを選択"</string>
     <string name="new_tab" msgid="4505722538297295141">"新しいウィンドウ"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"有効期間:"</string>
     <string name="issued_on" msgid="2082890654801808368">"発行:"</string>
     <string name="expires_on" msgid="8061200430557020704">"有効期限:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"停止中..."</string>
     <string name="stop" msgid="5687251076030630074">"停止"</string>
     <string name="reload" msgid="8585220783228408062">"再読み込み"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"JavaScriptを有効にする"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"バックグラウンドで開く"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"プラグインを有効にする"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"現在のウィンドウの後ろに新しいウィンドウを開く"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"ホームページ設定"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"現在のページを使用"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 87ffbe8..47ab3cf 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"인터넷"</string>
     <string name="choose_upload" msgid="3649366287575002063">"업로드할 파일 선택"</string>
     <string name="new_tab" msgid="4505722538297295141">"새 창"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"유효성:"</string>
     <string name="issued_on" msgid="2082890654801808368">"발급 날짜:"</string>
     <string name="expires_on" msgid="8061200430557020704">"만료 날짜:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"중지하는 중..."</string>
     <string name="stop" msgid="5687251076030630074">"중지"</string>
     <string name="reload" msgid="8585220783228408062">"새로고침"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"자바스크립트 사용"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"백그라운드에서 열기"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"플러그인 사용"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"현재 창 뒤에 새 창 열기"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"홈페이지 설정"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"현재 페이지 사용"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index da9945e..6600f0a 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Nettleser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Velg fil for opplasting"</string>
     <string name="new_tab" msgid="4505722538297295141">"Ny fane"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Gyldighet:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Utstedt:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Utløper den:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Avbryter…"</string>
     <string name="stop" msgid="5687251076030630074">"Avbryt"</string>
     <string name="reload" msgid="8585220783228408062">"Oppdater"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Aktiver JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Åpne i bakgrunnen"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Aktiver utvidelser"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Nye vinduer åpnes bak det gjeldende"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Angi startside"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Bruk nåværende side"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index d28dbaf..72b6fe1 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Browser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Bestand selecteren voor uploaden"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nieuw venster"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Geldigheid:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Uitgegeven op:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Verloopt op:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Stoppen..."</string>
     <string name="stop" msgid="5687251076030630074">"Stoppen"</string>
     <string name="reload" msgid="8585220783228408062">"Vernieuwen"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript inschakelen"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Openen op de achtergrond"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Invoegtoepassingen inschakelen"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Nieuwe vensters openen achter het huidige venster"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Startpagina instellen"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Huidige pagina gebruiken"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 22c6c2a..3406861 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Internet"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Wybierz plik do przesłania"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nowe okno"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Poprawność:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Data wystawienia:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Wygasa:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Trwa zatrzymywanie…"</string>
     <string name="stop" msgid="5687251076030630074">"Zatrzymaj"</string>
     <string name="reload" msgid="8585220783228408062">"Odśwież"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Włącz skrypty JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Otwórz w tle"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Włącz wtyczki"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Otwieraj nowe okna za bieżącym"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Ustaw stronę główną"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Użyj bieżącej strony"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index d4e3527..1f7510c 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Browser"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Escolher ficheiro a carregar"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nova janela"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validade:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Emitido em:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Expira em:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"A interromper..."</string>
     <string name="stop" msgid="5687251076030630074">"Parar"</string>
     <string name="reload" msgid="8585220783228408062">"Actualizar"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Activar JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir em segundo plano"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Activar plug-ins"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir novas janelas atrás da actual"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Definir página inicial"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Utilizar página actual"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index cbeab9a..f62b502 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Navegador"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Escolha o arquivo para envio"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nova janela"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Validade:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Emitido em:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Expira em:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Parando…"</string>
     <string name="stop" msgid="5687251076030630074">"Parar"</string>
     <string name="reload" msgid="8585220783228408062">"Atualizar"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Ativar JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Abrir em segundo plano"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Ativar plug-ins"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Abrir novas janelas atrás da janela atual"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Definir a página inicial"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Usar a página atual"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 096d5a5..8686f9c 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Браузер"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Выберите файл для загрузки"</string>
     <string name="new_tab" msgid="4505722538297295141">"Новое окно"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Срок действия:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Дата издания:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Дата окончания действия:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Остановка..."</string>
     <string name="stop" msgid="5687251076030630074">"Стоп"</string>
     <string name="reload" msgid="8585220783228408062">"Обновить"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Включить JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Открывать в фоновом режиме"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Включить плагины"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Открывать новые окна позади текущего окна"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Выбрать главную страницу"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Использовать текущую страницу"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 52cdf42..917ed67 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Webbläs."</string>
     <string name="choose_upload" msgid="3649366287575002063">"Välj filen som du vill överföra"</string>
     <string name="new_tab" msgid="4505722538297295141">"Nytt fönster"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Giltighet:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Utfärdat den:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Upphör att gälla:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Avbryter…"</string>
     <string name="stop" msgid="5687251076030630074">"Stoppa"</string>
     <string name="reload" msgid="8585220783228408062">"Uppdatera"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"Aktivera JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Öppen i bakgrunden"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Aktivera plugin-program"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Öppna nya fönster bakom det aktiva"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Ange startsida"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Använd aktuell sida"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index d0c1fca..e526f80 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"Tarayıcı"</string>
     <string name="choose_upload" msgid="3649366287575002063">"Yükleme için dosya seçin"</string>
     <string name="new_tab" msgid="4505722538297295141">"Yeni pencere"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"Geçerlilik:"</string>
     <string name="issued_on" msgid="2082890654801808368">"Yayınlanma tarihi:"</string>
     <string name="expires_on" msgid="8061200430557020704">"Sona erme tarihi:"</string>
-    
     <string name="stopping" msgid="4839698519340302982">"Durduruluyor..."</string>
     <string name="stop" msgid="5687251076030630074">"Durdur"</string>
     <string name="reload" msgid="8585220783228408062">"Yenile"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"JavaScript\'i etkinleştir"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"Arka planda aç"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"Eklentileri etkinleştir"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"Geçerli pencerenin arkasında yeni pencereler aç"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"Ana sayfayı ayarla"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"Geçerli sayfayı kullan"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 77415dc..4821fff 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"浏览器"</string>
     <string name="choose_upload" msgid="3649366287575002063">"选择要上传的文件"</string>
     <string name="new_tab" msgid="4505722538297295141">"新窗口"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"有效期："</string>
     <string name="issued_on" msgid="2082890654801808368">"颁发时间："</string>
     <string name="expires_on" msgid="8061200430557020704">"有效期至："</string>
-    
     <string name="stopping" msgid="4839698519340302982">"正在停止..."</string>
     <string name="stop" msgid="5687251076030630074">"停止"</string>
     <string name="reload" msgid="8585220783228408062">"刷新"</string>
@@ -99,7 +100,7 @@
     <string name="bookmarks" msgid="1961279134885867815">"书签"</string>
     <string name="shortcut_bookmark" msgid="3974876480401135895">"书签"</string>
     <string name="history" msgid="2451240511251410032">"历史记录"</string>
-    <string name="menu_view_download" msgid="2124570321712995120">"下载"</string>
+    <string name="menu_view_download" msgid="2124570321712995120">"下载内容"</string>
     <string name="copy_page_url" msgid="7635062169011319208">"复制网页网址"</string>
     <string name="share_page" msgid="593756995297268343">"分享网页"</string>
     <string name="contextmenu_openlink" msgid="7237961252214188935">"打开"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"启用 JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"在后方打开"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"启用插件"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"在当前窗口后方打开新窗口"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"设置主页"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"使用当前页面"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2b86da3..4efbf5d 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -13,7 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
  -->
-<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="application_name" msgid="1935869255545976415">"瀏覽器"</string>
     <string name="choose_upload" msgid="3649366287575002063">"選擇要上載的檔案"</string>
     <string name="new_tab" msgid="4505722538297295141">"新視窗"</string>
@@ -58,7 +60,6 @@
     <string name="validity_period" msgid="57988851973181309">"合法性："</string>
     <string name="issued_on" msgid="2082890654801808368">"發給："</string>
     <string name="expires_on" msgid="8061200430557020704">"有效日期："</string>
-    
     <string name="stopping" msgid="4839698519340302982">"停止中…"</string>
     <string name="stop" msgid="5687251076030630074">"停止"</string>
     <string name="reload" msgid="8585220783228408062">"重新整理"</string>
@@ -128,6 +129,9 @@
     <string name="pref_content_javascript" msgid="4570972030299516843">"啟用 JavaScript"</string>
     <string name="pref_content_open_in_background" msgid="824123779725118663">"在背景中開啟"</string>
     <string name="pref_content_plugins" msgid="7231944644794301582">"啟用外掛程式"</string>
+    <!-- no translation found for pref_content_plugins_choices:0 (6745108155096660725) -->
+    <!-- no translation found for pref_content_plugins_choices:1 (2484126708670016519) -->
+    <!-- no translation found for pref_content_plugins_choices:2 (8547442717307793863) -->
     <string name="pref_content_open_in_background_summary" msgid="1737664075721181678">"在目前視窗的後面開啟新視窗"</string>
     <string name="pref_content_homepage" msgid="6082437160778559806">"設定首頁"</string>
     <string name="pref_use_current" msgid="1493179933653044553">"使用目前的網頁"</string>
@@ -226,7 +230,7 @@
     <string name="too_many_subwindows_dialog_title" msgid="3805453941587725944">"已開啟快顯視窗"</string>
     <string name="too_many_subwindows_dialog_message" msgid="5827289829907966657">"無法開啟新的快顯視窗，同時只能有一個快顯視窗存在。"</string>
     <string name="download_title" msgid="2122874021047565594">"下載記錄"</string>
-    <string name="download_unknown_filename" msgid="4013465542563652175">"&lt;未知&gt;"</string>
+    <string name="download_unknown_filename" msgid="4013465542563652175">"&lt;不明&gt;"</string>
     <string name="download_menu_open" msgid="4888327480367757513">"開啟"</string>
     <string name="download_menu_clear" msgid="6264454531553418124">"清除表單列表"</string>
     <string name="download_menu_delete" msgid="8815502136393894148">"刪除"</string>
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 17c66c5..c51c52b 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -820,15 +820,14 @@
     }
 
     private void showFakeTitleBar() {
-        final View decor = getWindow().peekDecorView();
         if (mFakeTitleBar.getParent() == null && mActiveTabsPage == null
-                && !mActivityInPause && decor != null
-                && decor.getWindowToken() != null) {
-            Rect visRect = new Rect();
-            if (!mBrowserFrameLayout.getGlobalVisibleRect(visRect)) {
-                if (LOGD_ENABLED) {
-                    Log.d(LOGTAG, "showFakeTitleBar visRect failed");
-                }
+                && !mActivityInPause) {
+            WebView mainView = mTabControl.getCurrentWebView();
+            // if there is no current WebView, don't show the faked title bar;
+            // if the main WebView's contentHeight is 0, it means the WebView
+            // hasn't finished the start up process yet. Don't try to show this
+            // window which will slow down the starting process.
+            if (mainView == null || mainView.getContentHeight() == 0) {
                 return;
             }
 
@@ -841,17 +840,12 @@
                     = new WindowManager.LayoutParams(
                     ViewGroup.LayoutParams.MATCH_PARENT,
                     ViewGroup.LayoutParams.WRAP_CONTENT,
-                    WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL,
+                    WindowManager.LayoutParams.TYPE_APPLICATION,
                     WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                     PixelFormat.TRANSLUCENT);
             params.gravity = Gravity.TOP;
-            WebView mainView = mTabControl.getCurrentWebView();
-            boolean atTop = mainView != null && mainView.getScrollY() == 0;
+            boolean atTop = mainView.getScrollY() == 0;
             params.windowAnimations = atTop ? 0 : R.style.TitleBar;
-            // XXX : Without providing an offset, the fake title bar will be
-            // placed underneath the status bar.  Use the global visible rect
-            // of mBrowserFrameLayout to determine the bottom of the status bar
-            params.y = visRect.top;
             manager.addView(mFakeTitleBar, params);
         }
     }
@@ -2797,6 +2791,36 @@
         onDownloadStartNoStream(url, userAgent, contentDisposition, mimetype, contentLength);
     }
 
+    // This is to work around the fact that java.net.URI throws Exceptions
+    // instead of just encoding URL's properly
+    // Helper method for onDownloadStartNoStream
+    private static String encodePath(String path) {
+        char[] chars = path.toCharArray();
+
+        boolean needed = false;
+        for (char c : chars) {
+            if (c == '[' || c == ']') {
+                needed = true;
+                break;
+            }
+        }
+        if (needed == false) {
+            return path;
+        }
+
+        StringBuilder sb = new StringBuilder("");
+        for (char c : chars) {
+            if (c == '[' || c == ']') {
+                sb.append('%');
+                sb.append(Integer.toHexString(c));
+            } else {
+                sb.append(c);
+            }
+        }
+
+        return sb.toString();
+    }
+
     /**
      * Notify the host application a download should be done, even if there
      * is a streaming viewer available for thise type.
@@ -2836,35 +2860,16 @@
             return;
         }
 
-        // java.net.URI is a lot stricter than KURL so we have to undo
-        // KURL's percent-encoding and redo the encoding using java.net.URI.
-        URI uri = null;
+        // java.net.URI is a lot stricter than KURL so we have to encode some
+        // extra characters. Fix for b 2538060 and b 1634719
+        WebAddress webAddress;
         try {
-            // Undo the percent-encoding that KURL may have done.
-            String newUrl = new String(URLUtil.decode(url.getBytes()));
-            // Parse the url into pieces
-            WebAddress w = new WebAddress(newUrl);
-            String frag = null;
-            String query = null;
-            String path = w.mPath;
-            // Break the path into path, query, and fragment
-            if (path.length() > 0) {
-                // Strip the fragment
-                int idx = path.lastIndexOf('#');
-                if (idx != -1) {
-                    frag = path.substring(idx + 1);
-                    path = path.substring(0, idx);
-                }
-                idx = path.lastIndexOf('?');
-                if (idx != -1) {
-                    query = path.substring(idx + 1);
-                    path = path.substring(0, idx);
-                }
-            }
-            uri = new URI(w.mScheme, w.mAuthInfo, w.mHost, w.mPort, path,
-                    query, frag);
+            webAddress = new WebAddress(url);
+            webAddress.mPath = encodePath(webAddress.mPath);
         } catch (Exception e) {
-            Log.e(LOGTAG, "Could not parse url for download: " + url, e);
+            // This only happens for very bad urls, we want to chatch the
+            // exception here
+            Log.e(LOGTAG, "Exception trying to parse url:" + url);
             return;
         }
 
@@ -2873,7 +2878,7 @@
         String cookies = CookieManager.getInstance().getCookie(url);
 
         ContentValues values = new ContentValues();
-        values.put(Downloads.Impl.COLUMN_URI, uri.toString());
+        values.put(Downloads.Impl.COLUMN_URI, webAddress.toString());
         values.put(Downloads.Impl.COLUMN_COOKIE_DATA, cookies);
         values.put(Downloads.Impl.COLUMN_USER_AGENT, userAgent);
         values.put(Downloads.Impl.COLUMN_NOTIFICATION_PACKAGE,
@@ -2884,7 +2889,7 @@
                 Downloads.Impl.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
         values.put(Downloads.Impl.COLUMN_MIME_TYPE, mimetype);
         values.put(Downloads.Impl.COLUMN_FILE_NAME_HINT, filename);
-        values.put(Downloads.Impl.COLUMN_DESCRIPTION, uri.getHost());
+        values.put(Downloads.Impl.COLUMN_DESCRIPTION, webAddress.mHost);
         if (contentLength > 0) {
             values.put(Downloads.Impl.COLUMN_TOTAL_BYTES, contentLength);
         }
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 1c58beb..7dd85aa 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -72,6 +72,7 @@
     private boolean                 mCreateShortcut;
     private boolean                 mMostVisited;
     private View                    mEmptyView;
+    private int                     mIconSize;
     // XXX: There is no public string defining this intent so if Home changes
     // the value, we have to update this string.
     private static final String     INSTALL_SHORTCUT =
@@ -230,6 +231,10 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
+        // Grab the app icon size as a resource.
+        mIconSize = getResources().getDimensionPixelSize(
+                android.R.dimen.app_icon_size);
+
         if (Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction())) {
             mCreateShortcut = true;
         }
@@ -441,26 +446,34 @@
         i.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
         // Use the apple-touch-icon if available
         if (touchIcon != null) {
-            // Make a copy so we can modify the pixels.
-            Bitmap copy = touchIcon.copy(Bitmap.Config.ARGB_8888, true);
-            Canvas canvas = new Canvas(copy);
+            // Make a copy so we can modify the pixels.  We can't use
+            // createScaledBitmap or copy since they will preserve the config
+            // and lose the ability to add alpha.
+            Bitmap bm = Bitmap.createBitmap(mIconSize, mIconSize,
+                    Bitmap.Config.ARGB_8888);
+            Canvas canvas = new Canvas(bm);
+            Rect src = new Rect(0, 0, touchIcon.getWidth(),
+                                touchIcon.getHeight());
+            Rect dest = new Rect(0, 0, bm.getWidth(), bm.getHeight());
+
+            // Paint used for scaling the bitmap and drawing the rounded rect.
+            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+            paint.setFilterBitmap(true);
+            canvas.drawBitmap(touchIcon, src, dest, paint);
 
             // Construct a path from a round rect. This will allow drawing with
             // an inverse fill so we can punch a hole using the round rect.
             Path path = new Path();
             path.setFillType(Path.FillType.INVERSE_WINDING);
-            RectF rect = new RectF(0, 0, touchIcon.getWidth(),
-                    touchIcon.getHeight());
+            RectF rect = new RectF(0, 0, bm.getWidth(), bm.getHeight());
             rect.inset(1, 1);
             path.addRoundRect(rect, 8f, 8f, Path.Direction.CW);
 
-            // Construct a paint that clears the outside of the rectangle and
-            // draw.
-            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+            // Reuse the paint and clear the outside of the rectangle.
             paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
             canvas.drawPath(path, paint);
 
-            i.putExtra(Intent.EXTRA_SHORTCUT_ICON, copy);
+            i.putExtra(Intent.EXTRA_SHORTCUT_ICON, bm);
         } else {
             Bitmap favicon = getFavicon(position);
             if (favicon == null) {
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 07b17a9..8c2371a 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -1506,8 +1506,30 @@
         // container to the content view.
         FrameLayout wrapper =
                 (FrameLayout) mContainer.findViewById(R.id.webview_wrapper);
-        wrapper.addView(mMainView);
-        content.addView(mContainer, BrowserActivity.COVER_SCREEN_PARAMS);
+        ViewGroup parent = (ViewGroup) mMainView.getParent();
+        if (parent != wrapper) {
+            if (parent != null) {
+                Log.w(LOGTAG, "mMainView already has a parent in"
+                        + " attachTabToContentView!");
+                parent.removeView(mMainView);
+            }
+            wrapper.addView(mMainView);
+        } else {
+            Log.w(LOGTAG, "mMainView is already attached to wrapper in"
+                    + " attachTabToContentView!");
+        }
+        parent = (ViewGroup) mContainer.getParent();
+        if (parent != content) {
+            if (parent != null) {
+                Log.w(LOGTAG, "mContainer already has a parent in"
+                        + " attachTabToContentView!");
+                parent.removeView(mContainer);
+            }
+            content.addView(mContainer, BrowserActivity.COVER_SCREEN_PARAMS);
+        } else {
+            Log.w(LOGTAG, "mContainer is already attached to content in"
+                    + " attachTabToContentView!");
+        }
         attachSubWindow(content);
     }
 
