merge in jb-release history after reset to master
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 1010a97..8abba06 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -349,8 +349,7 @@
     <string name="progress_dialog_setting_wallpaper" msgid="2031391201442335889">"Stel tans muurpapier in..."</string>
     <string name="defaultBookmarksUpButton" msgid="2303951020715704735">"Boekmerke"</string>
     <string name="empty_bookmarks_folder" msgid="6239830231917618556">"Geen boekmerke nie."</string>
-    <!-- no translation found for other_bookmarks (8021889794475657319) -->
-    <skip />
+    <string name="other_bookmarks" msgid="8021889794475657319">"Ander boekmerke"</string>
     <string name="rlz_access_point" msgid="7165847807377650632">"Y1"</string>
     <string name="account_chooser_dialog_title" msgid="3314204833188808194">"Kies rekening"</string>
     <string name="import_bookmarks_dialog_title" msgid="3325557652271172128">"Sinkroniseer met Google-rekening"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 8365474..e7f804f 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -349,8 +349,7 @@
     <string name="progress_dialog_setting_wallpaper" msgid="2031391201442335889">"ልጣፍ በማቀናበር ላይ...."</string>
     <string name="defaultBookmarksUpButton" msgid="2303951020715704735">"እልባቶች"</string>
     <string name="empty_bookmarks_folder" msgid="6239830231917618556">"ምንም ዕልባቶች የሉም"</string>
-    <!-- no translation found for other_bookmarks (8021889794475657319) -->
-    <skip />
+    <string name="other_bookmarks" msgid="8021889794475657319">"ሌሎች እልባቶች"</string>
     <string name="rlz_access_point" msgid="7165847807377650632">"y1"</string>
     <string name="account_chooser_dialog_title" msgid="3314204833188808194">"መለያ ምረጥ"</string>
     <string name="import_bookmarks_dialog_title" msgid="3325557652271172128">"ከGoogle መለያ ጋር አሳምር"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3fbaaf9..e43c2e6 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -349,8 +349,7 @@
     <string name="progress_dialog_setting_wallpaper" msgid="2031391201442335889">"S\'està establint el fons de pantalla..."</string>
     <string name="defaultBookmarksUpButton" msgid="2303951020715704735">"Marcadors"</string>
     <string name="empty_bookmarks_folder" msgid="6239830231917618556">"No hi ha cap marcador."</string>
-    <!-- no translation found for other_bookmarks (8021889794475657319) -->
-    <skip />
+    <string name="other_bookmarks" msgid="8021889794475657319">"Altres marcadors"</string>
     <string name="rlz_access_point" msgid="7165847807377650632">"Y1"</string>
     <string name="account_chooser_dialog_title" msgid="3314204833188808194">"Tria d\'un compte"</string>
     <string name="import_bookmarks_dialog_title" msgid="3325557652271172128">"Sincronitza amb el Compte de Google"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0cdf775..1fcebde 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -349,8 +349,7 @@
     <string name="progress_dialog_setting_wallpaper" msgid="2031391201442335889">"Setting wallpaper..."</string>
     <string name="defaultBookmarksUpButton" msgid="2303951020715704735">"Bookmarks"</string>
     <string name="empty_bookmarks_folder" msgid="6239830231917618556">"No bookmarks"</string>
-    <!-- no translation found for other_bookmarks (8021889794475657319) -->
-    <skip />
+    <string name="other_bookmarks" msgid="8021889794475657319">"Other Bookmarks"</string>
     <string name="rlz_access_point" msgid="7165847807377650632">"Y1"</string>
     <string name="account_chooser_dialog_title" msgid="3314204833188808194">"Choose account"</string>
     <string name="import_bookmarks_dialog_title" msgid="3325557652271172128">"Sync with Google account"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d25ae67..cc3d0a6 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -349,8 +349,7 @@
     <string name="progress_dialog_setting_wallpaper" msgid="2031391201442335889">"Isetha iphephadonga..."</string>
     <string name="defaultBookmarksUpButton" msgid="2303951020715704735">"Amabhukimakhi"</string>
     <string name="empty_bookmarks_folder" msgid="6239830231917618556">"Awekho amabhukimakhi"</string>
-    <!-- no translation found for other_bookmarks (8021889794475657319) -->
-    <skip />
+    <string name="other_bookmarks" msgid="8021889794475657319">"Amanye amabhukhimakhi"</string>
     <string name="rlz_access_point" msgid="7165847807377650632">"Y1"</string>
     <string name="account_chooser_dialog_title" msgid="3314204833188808194">"Khetha i-akhawunti"</string>
     <string name="import_bookmarks_dialog_title" msgid="3325557652271172128">"Vumelanisa nge-akhawunti ye-Google"</string>
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 652f9d7..54b2f18 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -32,7 +32,6 @@
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -112,6 +111,7 @@
     protected boolean mUseQuickControls;
     protected TitleBar mTitleBar;
     private NavigationBarBase mNavigationBar;
+    protected PieControl mPieControl;
 
     public BaseUi(Activity browser, UiController controller) {
         mActivity = browser;
@@ -196,6 +196,21 @@
         return false;
     }
 
+    @Override
+    public void setUseQuickControls(boolean useQuickControls) {
+        mUseQuickControls = useQuickControls;
+        mTitleBar.setUseQuickControls(mUseQuickControls);
+        if (useQuickControls) {
+            mPieControl = new PieControl(mActivity, mUiController, this);
+            mPieControl.attachToContainer(mContentView);
+        } else {
+            if (mPieControl != null) {
+                mPieControl.removeFromContainer(mContentView);
+            }
+        }
+        updateUrlBarAutoShowManagerTarget();
+    }
+
     // Tab callbacks
     @Override
     public void onTabDataChanged(Tab tab) {
@@ -247,9 +262,19 @@
             }
         }
         mActiveTab = tab;
-        WebView web = mActiveTab.getWebView();
+        BrowserWebView web = (BrowserWebView) mActiveTab.getWebView();
         updateUrlBarAutoShowManagerTarget();
         attachTabToContentView(tab);
+        if (web != null) {
+            // Request focus on the top window.
+            if (mUseQuickControls) {
+                mPieControl.forceToTop(mContentView);
+                web.setTitleBar(null);
+            } else {
+                web.setTitleBar(mTitleBar);
+                mTitleBar.onScrollChanged();
+            }
+        }
         mTitleBar.bringToFront();
         tab.getTopWindow().requestFocus();
         setShouldShowErrorConsole(tab, mUiController.shouldShowErrorConsole());
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index ed96257..41af619 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -261,6 +261,9 @@
         } else if (mInVoiceMode) {
             mUrlInput.showDropDown();
         }
+        if (mTitleBar.useQuickControls()) {
+            mUrlInput.showIME();
+        }
     }
 
     public void onProgressStarted() {
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 153533b..7db5563 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -29,17 +29,13 @@
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.ActionMode;
-import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
 import android.webkit.WebView;
-import android.webkit.WebViewClassic;
-import android.widget.FrameLayout;
 import android.widget.ImageView;
 
 import com.android.browser.UrlInputView.StateListener;
@@ -52,7 +48,6 @@
     private static final String LOGTAG = "PhoneUi";
     private static final int MSG_INIT_NAVSCREEN = 100;
 
-    private PieControl mPieControl;
     private NavScreen mNavScreen;
     private AnimScreen mAnimScreen;
     private NavigationBarPhone mNavigationBar;
@@ -264,21 +259,6 @@
     }
 
     @Override
-    public void setUseQuickControls(boolean useQuickControls) {
-        mUseQuickControls = useQuickControls;
-        mTitleBar.setUseQuickControls(mUseQuickControls);
-        if (useQuickControls) {
-            mPieControl = new PieControl(mActivity, mUiController, this);
-            mPieControl.attachToContainer(mContentView);
-        } else {
-            if (mPieControl != null) {
-                mPieControl.removeFromContainer(mContentView);
-            }
-        }
-        updateUrlBarAutoShowManagerTarget();
-    }
-
-    @Override
     public boolean isWebShowing() {
         return super.isWebShowing() && !showingNavScreen();
     }
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 2f0c6a8..1ba26fe 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -250,6 +250,11 @@
         mInputManager.hideSoftInputFromWindow(getWindowToken(), 0);
     }
 
+    void showIME() {
+        mInputManager.focusIn(this);
+        mInputManager.showSoftInput(this, 0);
+    }
+
     private void finishInput(String url, String extra, String source) {
         mNeedsUpdate = true;
         dismissDropDown();
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 391b83e..e0a6be2 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -50,7 +50,6 @@
 
     private NavigationBarTablet mNavBar;
 
-    private PieControl mPieControl;
     private Handler mHandler;
 
     /**
@@ -82,27 +81,19 @@
 
     @Override
     public void setUseQuickControls(boolean useQuickControls) {
-        mUseQuickControls = useQuickControls;
-        mTitleBar.setUseQuickControls(mUseQuickControls);
-        if (useQuickControls) {
-            checkTabCount();
-            mPieControl = new PieControl(mActivity, mUiController, this);
-            mPieControl.attachToContainer(mContentView);
-        } else {
-            mActivity.getActionBar().show();
-            if (mPieControl != null) {
-                mPieControl.removeFromContainer(mContentView);
-            }
+        super.setUseQuickControls(useQuickControls);
+        checkHideActionBar();
+        if (!useQuickControls) {
+            mActionBar.show();
         }
         mTabBar.setUseQuickControls(mUseQuickControls);
         // We need to update the tabs with this change
         for (Tab t : mTabControl.getTabs()) {
             t.updateShouldCaptureThumbnails();
         }
-        updateUrlBarAutoShowManagerTarget();
     }
 
-    private void checkTabCount() {
+    private void checkHideActionBar() {
         if (mUseQuickControls) {
             mHandler.post(new Runnable() {
                 public void run() {
@@ -116,7 +107,7 @@
     public void onResume() {
         super.onResume();
         mNavBar.clearCompletions();
-        checkTabCount();
+        checkHideActionBar();
     }
 
     @Override
@@ -164,7 +155,7 @@
     }
 
     protected void onAddTabCompleted(Tab tab) {
-        checkTabCount();
+        checkHideActionBar();
     }
 
     @Override
@@ -179,13 +170,6 @@
             Log.e(LOGTAG, "active tab with no webview detected");
             return;
         }
-        // Request focus on the top window.
-        if (mUseQuickControls) {
-            mPieControl.forceToTop(mContentView);
-            view.setTitleBar(null);
-        } else {
-            view.setTitleBar(mTitleBar);
-        }
         mTabBar.onSetActiveTab(tab);
         if (tab.isInVoiceSearchMode()) {
             showVoiceTitleBar(tab.getVoiceDisplayTitle(), tab.getVoiceSearchResults());
@@ -199,7 +183,7 @@
     @Override
     public void updateTabs(List<Tab> tabs) {
         mTabBar.updateTabs(tabs);
-        checkTabCount();
+        checkHideActionBar();
     }
 
     @Override
@@ -212,7 +196,7 @@
     }
 
     protected void onRemoveTabCompleted(Tab tab) {
-        checkTabCount();
+        checkHideActionBar();
     }
 
     int getContentWidth() {
@@ -256,7 +240,7 @@
 
     @Override
     public void onActionModeFinished(boolean inLoad) {
-        checkTabCount();
+        checkHideActionBar();
         if (inLoad) {
             // the titlebar was removed when the CAB was shown
             // if the page is loading, show it again
@@ -288,9 +272,7 @@
     @Override
     public void onHideCustomView() {
         super.onHideCustomView();
-        if (mUseQuickControls) {
-            checkTabCount();
-        }
+        checkHideActionBar();
     }
 
     @Override