diff options
-rw-r--r-- | src/com/android/browser/Controller.java | 38 | ||||
-rw-r--r-- | src/com/android/browser/Tab.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/WebViewController.java | 3 |
3 files changed, 24 insertions, 23 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index e20a876..5b259a9 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -480,15 +480,8 @@ public class Controller break; case R.id.open_newtab_context_menu_id: final Tab parent = mTabControl.getCurrentTab(); - final Tab newTab = - openTab(url, - (parent != null) - && parent.isPrivateBrowsingEnabled(), - !mSettings.openInBackground(), - true); - if (newTab != null && newTab != parent) { - parent.addChildTab(newTab); - } + openTab(url, parent, + !mSettings.openInBackground(), true); break; case R.id.copy_link_context_menu_id: copy(url); @@ -1392,15 +1385,9 @@ public class Controller @Override public boolean onMenuItemClick(MenuItem item) { final Tab parent = mTabControl.getCurrentTab(); - final Tab newTab = - openTab(extra, - (parent != null) - && parent.isPrivateBrowsingEnabled(), - !mSettings.openInBackground(), - true); - if (newTab != parent) { - parent.addChildTab(newTab); - } + openTab(extra, parent, + !mSettings.openInBackground(), + true); return true; } }); @@ -2225,8 +2212,23 @@ public class Controller @Override public Tab openTab(String url, boolean incognito, boolean setActive, boolean useCurrent) { + return openTab(url, incognito, setActive, useCurrent, null); + } + + @Override + public Tab openTab(String url, Tab parent, boolean setActive, + boolean useCurrent) { + return openTab(url, (parent != null) && parent.isPrivateBrowsingEnabled(), + setActive, useCurrent, parent); + } + + public Tab openTab(String url, boolean incognito, boolean setActive, + boolean useCurrent, Tab parent) { Tab tab = createNewTab(incognito, setActive, useCurrent); if (tab != null) { + if (parent != null && parent != tab) { + parent.addChildTab(tab); + } WebView w = tab.getWebView(); if (url != null) { loadUrl(w, url); diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java index 8962475..4097334 100644 --- a/src/com/android/browser/Tab.java +++ b/src/com/android/browser/Tab.java @@ -855,11 +855,7 @@ class Tab { transport.setWebView(mSubView); } else { final Tab newTab = mWebViewController.openTab(null, - Tab.this.isPrivateBrowsingEnabled(), - true, true); - if (newTab != Tab.this) { - Tab.this.addChildTab(newTab); - } + Tab.this, true, true); transport.setWebView(newTab.getWebView()); } msg.sendToTarget(); diff --git a/src/com/android/browser/WebViewController.java b/src/com/android/browser/WebViewController.java index bf3bdba..87703bd 100644 --- a/src/com/android/browser/WebViewController.java +++ b/src/com/android/browser/WebViewController.java @@ -104,6 +104,9 @@ public interface WebViewController { Tab openTab(String url, boolean incognito, boolean setActive, boolean useCurrent); + Tab openTab(String url, Tab parent, boolean setActive, + boolean useCurrent); + boolean switchToTab(Tab tab); void closeTab(Tab tab); |