Merge "No search pane while tapping search button after backing to "windows" view from "saved page" view."
diff --git a/res/xml/bookmarks_searchable.xml b/res/xml/bookmarks_searchable.xml
index de56add..8b83f26 100644
--- a/res/xml/bookmarks_searchable.xml
+++ b/res/xml/bookmarks_searchable.xml
@@ -25,6 +25,6 @@
     android:searchSettingsDescription="@string/search_settings_description"
     android:searchSuggestAuthority="browser"
     android:searchSuggestPath="bookmarks"
-    android:searchSuggestSelection="url LIKE ?"
+    android:searchSuggestSelection="bookmarks.url LIKE ?"
     android:searchSuggestIntentAction="android.intent.action.VIEW"
 />
diff --git a/res/xml/searchable.xml b/res/xml/searchable.xml
index 3397a40..a06d5b0 100644
--- a/res/xml/searchable.xml
+++ b/res/xml/searchable.xml
@@ -27,6 +27,6 @@
     android:inputType="textUri"
     android:imeOptions="actionGo"
     android:searchSuggestAuthority="browser"
-    android:searchSuggestSelection="url LIKE ?"
+    android:searchSuggestSelection="history.url LIKE ?"
     android:searchSuggestIntentAction="android.intent.action.VIEW"
 />
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index ebfd56f..7f40aea 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -512,8 +512,8 @@
                             case R.id.save_link_context_menu_id:
                             case R.id.download_context_menu_id:
                                 DownloadHandler.onDownloadStartNoStream(
-                                        mActivity, url, null, null, null,
-                                        view.isPrivateBrowsingEnabled());
+                                        mActivity, url, view.getSettings().getUserAgentString(),
+                                        null, null, view.isPrivateBrowsingEnabled());
                                 break;
                         }
                         break;
@@ -860,11 +860,6 @@
     public void onPageFinished(Tab tab) {
         mCrashRecoveryHandler.backupState();
         mUi.onTabDataChanged(tab);
-        // pause the WebView timer and release the wake lock if it is finished
-        // while BrowserActivity is in pause state.
-        if (mActivityPaused && pauseWebViewTimers(tab)) {
-            releaseWakeLock();
-        }
 
         // Performance probe
         if (false) {
@@ -889,6 +884,10 @@
             // onPageFinished has executed)
             if (tab.inPageLoad()) {
                 updateInLoadMenuItems(mCachedMenu, tab);
+            } else if (mActivityPaused && pauseWebViewTimers(tab)) {
+                // pause the WebView timer and release the wake lock if it is
+                // finished while BrowserActivity is in pause state.
+                releaseWakeLock();
             }
             if (!tab.isPrivateBrowsingEnabled()
                     && !TextUtils.isEmpty(tab.getUrl())
@@ -1433,9 +1432,9 @@
                         return false;
                     }
                 });
-                menu.findItem(R.id.download_context_menu_id).
-                        setOnMenuItemClickListener(
-                                new Download(mActivity, extra, webview.isPrivateBrowsingEnabled()));
+                menu.findItem(R.id.download_context_menu_id).setOnMenuItemClickListener(
+                        new Download(mActivity, extra, webview.isPrivateBrowsingEnabled(),
+                                webview.getSettings().getUserAgentString()));
                 menu.findItem(R.id.set_wallpaper_context_menu_id).
                         setOnMenuItemClickListener(new WallpaperHandler(mActivity,
                                 extra));
@@ -2165,6 +2164,7 @@
         private Activity mActivity;
         private String mText;
         private boolean mPrivateBrowsing;
+        private String mUserAgent;
         private static final String FALLBACK_EXTENSION = "dat";
         private static final String IMAGE_BASE_FORMAT = "yyyy-MM-dd-HH-mm-ss-";
 
@@ -2173,16 +2173,18 @@
             if (DataUri.isDataUri(mText)) {
                 saveDataUri();
             } else {
-                DownloadHandler.onDownloadStartNoStream(mActivity, mText, null,
+                DownloadHandler.onDownloadStartNoStream(mActivity, mText, mUserAgent,
                         null, null, mPrivateBrowsing);
             }
             return true;
         }
 
-        public Download(Activity activity, String toDownload, boolean privateBrowsing) {
+        public Download(Activity activity, String toDownload, boolean privateBrowsing,
+                String userAgent) {
             mActivity = activity;
             mText = toDownload;
             mPrivateBrowsing = privateBrowsing;
+            mUserAgent = userAgent;
         }
 
         /**