auto import from //branches/cupcake_rel/...@141571
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 110bda4..c67cc97 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -28,9 +28,6 @@
     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.WAKE_LOCK"/>
-    <!-- Needed by the ZoomRingController to set the bit saying we've already shown the
-         tutorial toast. -->
-    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
     <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
     <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
 
@@ -143,7 +140,8 @@
 
         <activity-alias android:name="ShortcutBookmarksPage"
             android:targetActivity="BrowserBookmarksPage"
-            android:label="@string/shortcut_bookmark">
+            android:label="@string/shortcut_bookmark"
+            android:icon="@drawable/ic_launcher_shortcut_browser_bookmark">
 
             <intent-filter>
                 <action android:name="android.intent.action.CREATE_SHORTCUT" />
diff --git a/res/drawable/ic_launcher_browser.png b/res/drawable/ic_launcher_browser.png
index f58b84a..47c79d1 100755
--- a/res/drawable/ic_launcher_browser.png
+++ b/res/drawable/ic_launcher_browser.png
Binary files differ
diff --git a/res/drawable/ic_launcher_browser_favorite.png b/res/drawable/ic_launcher_browser_favorite.png
new file mode 100644
index 0000000..f5bfc17
--- /dev/null
+++ b/res/drawable/ic_launcher_browser_favorite.png
Binary files differ
diff --git a/res/drawable/ic_launcher_shortcut_browser_bookmark.png b/res/drawable/ic_launcher_shortcut_browser_bookmark.png
new file mode 100644
index 0000000..e144727
--- /dev/null
+++ b/res/drawable/ic_launcher_shortcut_browser_bookmark.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_bookmark_selected.png b/res/drawable/ic_tab_browser_bookmark_selected.png
index 184885e..6f54305 100644
--- a/res/drawable/ic_tab_browser_bookmark_selected.png
+++ b/res/drawable/ic_tab_browser_bookmark_selected.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_bookmark_unselected.png b/res/drawable/ic_tab_browser_bookmark_unselected.png
index 25ddf18..5037860 100644
--- a/res/drawable/ic_tab_browser_bookmark_unselected.png
+++ b/res/drawable/ic_tab_browser_bookmark_unselected.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_history_selected.png b/res/drawable/ic_tab_browser_history_selected.png
index b39c21a..d9355f6 100644
--- a/res/drawable/ic_tab_browser_history_selected.png
+++ b/res/drawable/ic_tab_browser_history_selected.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_history_unselected.png b/res/drawable/ic_tab_browser_history_unselected.png
index c0847d0..c5c794a 100644
--- a/res/drawable/ic_tab_browser_history_unselected.png
+++ b/res/drawable/ic_tab_browser_history_unselected.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_visited_selected.png b/res/drawable/ic_tab_browser_visited_selected.png
index f2cc55c..9d79107 100644
--- a/res/drawable/ic_tab_browser_visited_selected.png
+++ b/res/drawable/ic_tab_browser_visited_selected.png
Binary files differ
diff --git a/res/drawable/ic_tab_browser_visited_unselected.png b/res/drawable/ic_tab_browser_visited_unselected.png
index b808fbd..55d76e9 100644
--- a/res/drawable/ic_tab_browser_visited_unselected.png
+++ b/res/drawable/ic_tab_browser_visited_unselected.png
Binary files differ
diff --git a/res/layout/browser_find.xml b/res/layout/browser_find.xml
index 000799f..7a77152 100644
--- a/res/layout/browser_find.xml
+++ b/res/layout/browser_find.xml
@@ -62,16 +62,6 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="right"
-                android:text="@string/zero"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorSecondaryInverse"
-                />
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginRight="3dip"
-                android:layout_gravity="right"
-                android:text="@string/matches_found"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:textColor="?android:attr/textColorSecondaryInverse"
                 />
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ee576d6..11acc71 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Přihlásit se"</string>
     <string name="cancel">"Zrušit"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" shod"</string>
-    <string name="zero">"Ne"</string>
     <string name="page_info">"Informace o stránce"</string>
     <string name="page_info_view">"Zobrazit informace o stránce"</string>
     <string name="page_info_address">"Adresa:"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 89b46b9..0a06679 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Anmelden"</string>
     <string name="cancel">"Abbrechen"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" Treffer"</string>
-    <string name="zero">"Nein"</string>
     <string name="page_info">"Seiten-Info"</string>
     <string name="page_info_view">"Seiten-Info anzeigen"</string>
     <string name="page_info_address">"Adresse:"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 321faf5..bed9bd3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Acceder"</string>
     <string name="cancel">"Cancelar"</string>
     <string name="ok">"Aceptar"</string>
-    <string name="matches_found">" coincidencias"</string>
-    <string name="zero">"No"</string>
     <string name="page_info">"Información de página"</string>
     <string name="page_info_view">"Ver información de página"</string>
     <string name="page_info_address">"Dirección:"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 375583e..c97a4f6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Se connecter"</string>
     <string name="cancel">"Annuler"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" résultat(s) correspondant(s )"</string>
-    <string name="zero">"Non"</string>
     <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>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index c44ed3e..500d685 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Accedi"</string>
     <string name="cancel">"Annulla"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" corrispondenze"</string>
-    <string name="zero">"No"</string>
     <string name="page_info">"Info pagina"</string>
     <string name="page_info_view">"Visualizza info pagina"</string>
     <string name="page_info_address">"Indirizzo:"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index f14953b..642f201 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -27,8 +27,10 @@
     <string name="action">"ログイン"</string>
     <string name="cancel">"キャンセル"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" 件一致"</string>
-    <string name="zero">"いいえ"</string>
+    <!-- no translation found for matches_found:zero (6242659159545399963) -->
+    <!-- no translation found for matches_found:one (4352019729062956802) -->
+    <!-- no translation found for matches_found:few (5544267486978946555) -->
+    <!-- no translation found for matches_found:other (6616125067364315405) -->
     <string name="page_info">"ページ情報"</string>
     <string name="page_info_view">"ページ情報を表示"</string>
     <string name="page_info_address">"アドレス:"</string>
@@ -73,13 +75,13 @@
     <string name="bookmark_url_not_valid">"無効なURLです。"</string>
     <string name="delete_bookmark">"削除"</string>
     <string name="bookmark_page">"最後に表示したページをブックマークする"</string>
-    <string name="current_page">"ブックマークするページ "</string>
+    <string name="current_page">"URL "</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="select_dot">"テキストを選択"</string>
+    <string name="find_dot">"ページ内検索"</string>
+    <string name="select_dot">"テキストを選択してコピー"</string>
     <string name="view_tabs">"ウィンドウリスト"</string>
     <string name="view_tabs_condensed">"ウィンドウ"</string>
     <string name="tab_picker_title">"現在のウィンドウ"</string>
@@ -111,41 +113,41 @@
     <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_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_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_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">"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">"フォームデータを消去"</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_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_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>
-    <string name="pref_text_size">"テキストサイズを設定"</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>
+    <string name="pref_text_size">"文字サイズを選択"</string>
   <string-array name="pref_text_size_choices">
     <item>"最小"</item>
     <item>"小"</item>
@@ -154,19 +156,19 @@
     <item>"最大"</item>
   </string-array>
     <string name="pref_text_size_dialogtitle">"文字サイズ"</string>
-    <string name="pref_extras_title">"詳細な設定"</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>
+    <string name="pref_extras_gears_enable_summary">"ブラウザの機能拡張を許可する"</string>
+    <string name="pref_extras_gears_settings">"Gearsの設定"</string>
     <string name="pref_plugin_installed">"プラグインリスト"</string>
     <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_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_default_text_encoding">"テキストエンコードを設定"</string>
+    <string name="pref_default_text_encoding">"エンコードを選択"</string>
   <string-array name="pref_default_text_encoding_choices">
     <item>"Latin-1 (ISO-8859-1)"</item>
     <item>"Unicode (UTF-8)"</item>
@@ -187,9 +189,9 @@
     <string name="clear_history">"履歴消去"</string>
     <string name="browser_history">"最近閲覧したページ"</string>
     <string name="empty_history">"ブラウザ履歴はありません。"</string>
-    <string name="add_new_bookmark">"ブックマークを追加..."</string>
+    <string name="add_new_bookmark">"現在のページをブックマーク"</string>
     <string name="no_database">"データベースがありません。"</string>
-    <string name="search_hint">"ウェブアドレスを入力してください"</string>
+    <string name="search_hint">"ウェブアドレスを入力"</string>
     <string name="search_button_text">"移動"</string>
     <string name="attention">"注意"</string>
     <string name="popup_window_attempt">"このサイトはポップアップウィンドウを開こうとしています。"</string>
@@ -255,7 +257,7 @@
     <skip />
     <!-- no translation found for image_message (5450245866521896891) -->
     <skip />
-    <string name="settings_title">"Gears設定"</string>
+    <string name="settings_title">"Gearsの設定"</string>
     <string name="privacy_policy">"サイトのプライバシーポリシーを読んで、現在地の情報がどのように使用されるのか確認してください。"</string>
     <!-- no translation found for settings_storage_title (7089119630457156408) -->
     <skip />
@@ -271,8 +273,7 @@
     <skip />
     <!-- no translation found for settings_remove_site (1822247070226589958) -->
     <skip />
-    <!-- no translation found for settings_empty (2008952224378583146) -->
-    <skip />
+    <string name="settings_empty">"設定されている権限はありません"</string>
     <!-- no translation found for settings_confirmation_remove_title (5360857296753219635) -->
     <skip />
     <!-- no translation found for settings_confirmation_remove (585560170733446898) -->
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index bba2bf8..00121b6 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"로그인"</string>
     <string name="cancel">"취소"</string>
     <string name="ok">"확인"</string>
-    <string name="matches_found">" 개 일치"</string>
-    <string name="zero">"없음"</string>
     <string name="page_info">"페이지 정보"</string>
     <string name="page_info_view">"페이지 정보 보기"</string>
     <string name="page_info_address">"주소:"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 4fb4d4d..c06993c 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Logg inn"</string>
     <string name="cancel">"Avbryt"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" treff"</string>
-    <string name="zero">"Ingen"</string>
     <string name="page_info">"Sideinformasjon"</string>
     <string name="page_info_view">"Vis sideinformasjon"</string>
     <string name="page_info_address">"Adresse:"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7fccab8..2b1aefb 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Aanmelden"</string>
     <string name="cancel">"Annuleren"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" overeenkomsten"</string>
-    <string name="zero">"Nee"</string>
     <string name="page_info">"Pagina-informatie"</string>
     <string name="page_info_view">"Pagina-informatie weergeven"</string>
     <string name="page_info_address">"Adres:"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9d1130f..ec3b746 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Zaloguj się"</string>
     <string name="cancel">"Anuluj"</string>
     <string name="ok">"OK"</string>
-    <string name="matches_found">" dopasowania"</string>
-    <string name="zero">"Nie"</string>
     <string name="page_info">"Informacje o stronie"</string>
     <string name="page_info_view">"Informacje o stronie"</string>
     <string name="page_info_address">"Adres:"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 32af560..ddba702 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"Войти"</string>
     <string name="cancel">"Отмена"</string>
     <string name="ok">"ОК"</string>
-    <string name="matches_found">" совпадений(я)"</string>
-    <string name="zero">"Нет"</string>
     <string name="page_info">"Сведения о странице"</string>
     <string name="page_info_view">"Просмотреть сведения о странице"</string>
     <string name="page_info_address">"Адрес:"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2ee80c2..be48e36 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"登录"</string>
     <string name="cancel">"取消"</string>
     <string name="ok">"确定"</string>
-    <string name="matches_found">" 匹配项"</string>
-    <string name="zero">"否"</string>
     <string name="page_info">"页面信息"</string>
     <string name="page_info_view">"查看页面信息"</string>
     <string name="page_info_address">"地址:"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 9b6c675..96658db 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -27,8 +27,6 @@
     <string name="action">"登入"</string>
     <string name="cancel">"取消"</string>
     <string name="ok">"確定"</string>
-    <string name="matches_found">" 個符合項目"</string>
-    <string name="zero">"否"</string>
     <string name="page_info">"頁面資訊"</string>
     <string name="page_info_view">"檢視頁面資訊"</string>
     <string name="page_info_address">"位址:"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0dcf1f2..98142ac 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -44,13 +44,18 @@
     <!-- Label for a confirm button.  Used in multiple contexts. -->
     <string name="ok">OK</string>
 
-    <!--The find dialog -->
-    <!-- Displayed on the Find Dialog, stating "X matches" where X is the
-            number of matches found in the current page -->
-    <string name="matches_found">\u0020matches</string>
-    <!-- Displayed on the Find Dialog, stating that there are "zero
-            matches" -->
-    <string name="zero">No</string>
+    <!-- Displayed on the Find dialog to display the number of matches
+         found in the current page. -->
+    <plurals name="matches_found">
+        <!-- Case of no matches -->
+        <item quantity="zero">No matches</item>
+        <!-- Case of one match -->
+        <item quantity="one">1 match</item>
+        <!-- Case of "few" (two) matches -->
+        <item quantity="few"><xliff:g id="number" example="2">%d</xliff:g> matches</item>
+        <!-- Case of several matches -->
+        <item quantity="other"><xliff:g id="number" example="137">%d</xliff:g> matches</item>
+    </plurals>
     
     <!-- Menu item -->
     <string name="page_info">Page info</string>
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index bd6fdc6..f55ebb3 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -137,7 +137,7 @@
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.List;
+import java.util.LinkedList;
 import java.util.Locale;
 import java.util.Vector;
 import java.util.regex.Matcher;
@@ -2938,6 +2938,73 @@
                 .show();
         }
 
+        // Container class for the next error dialog that needs to be
+        // displayed.
+        class ErrorDialog {
+            public final int mTitle;
+            public final String mDescription;
+            public final int mError;
+            ErrorDialog(int title, String desc, int error) {
+                mTitle = title;
+                mDescription = desc;
+                mError = error;
+            }
+        };
+
+        private void processNextError() {
+            if (mQueuedErrors == null) {
+                return;
+            }
+            // The first one is currently displayed so just remove it.
+            mQueuedErrors.removeFirst();
+            if (mQueuedErrors.size() == 0) {
+                mQueuedErrors = null;
+                return;
+            }
+            showError(mQueuedErrors.getFirst());
+        }
+
+        private DialogInterface.OnDismissListener mDialogListener =
+                new DialogInterface.OnDismissListener() {
+                    public void onDismiss(DialogInterface d) {
+                        processNextError();
+                    }
+                };
+        private LinkedList<ErrorDialog> mQueuedErrors;
+
+        private void queueError(int err, String desc) {
+            if (mQueuedErrors == null) {
+                mQueuedErrors = new LinkedList<ErrorDialog>();
+            }
+            for (ErrorDialog d : mQueuedErrors) {
+                if (d.mError == err) {
+                    // Already saw a similar error, ignore the new one.
+                    return;
+                }
+            }
+            ErrorDialog errDialog = new ErrorDialog(
+                    err == EventHandler.FILE_NOT_FOUND_ERROR ?
+                    R.string.browserFrameFileErrorLabel :
+                    R.string.browserFrameNetworkErrorLabel,
+                    desc, err);
+            mQueuedErrors.addLast(errDialog);
+
+            // Show the dialog now if the queue was empty.
+            if (mQueuedErrors.size() == 1) {
+                showError(errDialog);
+            }
+        }
+
+        private void showError(ErrorDialog errDialog) {
+            AlertDialog d = new AlertDialog.Builder(BrowserActivity.this)
+                    .setTitle(errDialog.mTitle)
+                    .setMessage(errDialog.mDescription)
+                    .setPositiveButton(R.string.ok, null)
+                    .create();
+            d.setOnDismissListener(mDialogListener);
+            d.show();
+        }
+
         /**
          * Show a dialog informing the user of the network error reported by
          * WebCore.
@@ -2950,15 +3017,10 @@
                     errorCode != EventHandler.ERROR_BAD_URL &&
                     errorCode != EventHandler.ERROR_UNSUPPORTED_SCHEME &&
                     errorCode != EventHandler.FILE_ERROR) {
-                new AlertDialog.Builder(BrowserActivity.this)
-                        .setTitle((errorCode == EventHandler.FILE_NOT_FOUND_ERROR) ?
-                                         R.string.browserFrameFileErrorLabel :
-                                         R.string.browserFrameNetworkErrorLabel)
-                        .setMessage(description)
-                        .setPositiveButton(R.string.ok, null)
-                        .show();
+                queueError(errorCode, description);
             }
-            Log.e(LOGTAG, "onReceivedError code:"+errorCode+" "+description);
+            Log.e(LOGTAG, "onReceivedError " + errorCode + " " + failingUrl
+                    + " " + description);
 
             // We need to reset the title after an error.
             resetTitleAndRevertLockIcon();
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index a7d45f9..050b24b 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -222,7 +222,7 @@
         i.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
         i.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                 Intent.ShortcutIconResource.fromContext(BrowserBookmarksPage.this,
-                        R.drawable.ic_launcher_browser));
+                        R.drawable.ic_launcher_shortcut_browser_bookmark));
         // Do not allow duplicate items
         i.putExtra("duplicate", false);
         return i;
diff --git a/src/com/android/browser/FindDialog.java b/src/com/android/browser/FindDialog.java
index 43cd1c4..6e9574c 100644
--- a/src/com/android/browser/FindDialog.java
+++ b/src/com/android/browser/FindDialog.java
@@ -179,7 +179,7 @@
         Spannable span = (Spannable) mEditText.getText();
         span.setSpan(this, 0, span.length(), 
                      Spannable.SPAN_INCLUSIVE_INCLUSIVE);
-        mMatches.setText(R.string.zero);
+        setMatchesFound(0);
         disableButtons();
     }
     
@@ -206,11 +206,11 @@
         } else {
             mMatchesView.setVisibility(View.VISIBLE);
             int found = mWebView.findAll(find.toString());
-            mMatches.setText(Integer.toString(found));
+            setMatchesFound(found);
             if (found < 2) {
                 disableButtons();
                 if (found == 0) {
-                    mMatches.setText(R.string.zero);
+                    setMatchesFound(0);
                 }
             } else {
                 mPrevButton.setFocusable(true);
@@ -221,6 +221,13 @@
         }
     }
 
+    private void setMatchesFound(int found) {
+        String template = mBrowserActivity.getResources().
+                getQuantityString(R.plurals.matches_found, found, found);
+
+        mMatches.setText(template);
+    }
+
     public void afterTextChanged(Editable s) {
     }
 }