OSDN Git Service

DO NOT MERGE Security fix
authorJohn Reck <jreck@google.com>
Tue, 21 Jun 2011 01:30:26 +0000 (18:30 -0700)
committerandroid-merger <android-build@android.com>
Tue, 21 Jun 2011 17:41:23 +0000 (10:41 -0700)
 Bug: 4742007

Change-Id: I187ce151078795ad9b566e9dfbfe69c38d15b478

src/com/android/browser/BrowserActivity.java

index 793a43c..50521a9 100644 (file)
@@ -1785,33 +1785,30 @@ public class BrowserActivity extends Activity
     // url isn't null, it will load the given url.
     /* package */Tab openTabAndShow(UrlData urlData, boolean closeOnExit,
             String appId) {
-        final Tab currentTab = mTabControl.getCurrentTab();
-        if (mTabControl.canCreateNewTab()) {
-            final Tab tab = mTabControl.createNewTab(closeOnExit, appId,
-                    urlData.mUrl);
-            WebView webview = tab.getWebView();
-            // If the last tab was removed from the active tabs page, currentTab
-            // will be null.
-            if (currentTab != null) {
-                removeTabFromContentView(currentTab);
-            }
-            // We must set the new tab as the current tab to reflect the old
-            // animation behavior.
-            mTabControl.setCurrentTab(tab);
-            attachTabToContentView(tab);
-            if (!urlData.isEmpty()) {
-                loadUrlDataIn(tab, urlData);
-            }
-            return tab;
-        } else {
-            // Get rid of the subwindow if it exists
-            dismissSubWindow(currentTab);
-            if (!urlData.isEmpty()) {
-                // Load the given url.
-                loadUrlDataIn(currentTab, urlData);
-            }
-            return currentTab;
+        Tab currentTab = mTabControl.getCurrentTab();
+        if (!mTabControl.canCreateNewTab()) {
+            Tab closeTab = mTabControl.getTab(0);
+            closeTab(closeTab);
+            if (closeTab == currentTab) {
+                currentTab = null;
+            }
+        }
+        final Tab tab = mTabControl.createNewTab(closeOnExit, appId,
+                urlData.mUrl);
+        WebView webview = tab.getWebView();
+        // If the last tab was removed from the active tabs page, currentTab
+        // will be null.
+        if (currentTab != null) {
+            removeTabFromContentView(currentTab);
+        }
+        // We must set the new tab as the current tab to reflect the old
+        // animation behavior.
+        mTabControl.setCurrentTab(tab);
+        attachTabToContentView(tab);
+        if (!urlData.isEmpty()) {
+            loadUrlDataIn(tab, urlData);
         }
+        return tab;
     }
 
     private Tab openTab(String url) {