summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStewart Chao <stewartc@codeaurora.org>2014-12-01 18:28:22 -0500
committerWebTech Code Review <code-review@localhost>2014-12-17 12:20:20 -0800
commite0e132e951043cab9386a105f9455940f28948cd (patch)
treef98ae5e00b99b47b93c6284f5fa8bea09b4c2a8f
parent1e040c7c1ad54485a8eceabe10d6921106077eb6 (diff)
downloadandroid_packages_apps_Gello-e0e132e951043cab9386a105f9455940f28948cd.tar.gz
android_packages_apps_Gello-e0e132e951043cab9386a105f9455940f28948cd.tar.bz2
android_packages_apps_Gello-e0e132e951043cab9386a105f9455940f28948cd.zip
Start background tabs hidden
Background tabs should start using the policy OPEN_BACKGROUND_TAB so that Blink does not try to render the non-visible view. Change-Id: I213e733c1a97bc1aae4104691b4c57f6c8bf3f3e Fixes-issue: SWE-2733
-rw-r--r--src/com/android/browser/BrowserWebView.java10
-rw-r--r--src/com/android/browser/BrowserWebViewFactory.java11
-rw-r--r--src/com/android/browser/Controller.java2
-rw-r--r--src/com/android/browser/TabControl.java18
-rw-r--r--src/com/android/browser/WebViewFactory.java2
5 files changed, 36 insertions, 7 deletions
diff --git a/src/com/android/browser/BrowserWebView.java b/src/com/android/browser/BrowserWebView.java
index e2348a53..9215fe51 100644
--- a/src/com/android/browser/BrowserWebView.java
+++ b/src/com/android/browser/BrowserWebView.java
@@ -60,6 +60,16 @@ public class BrowserWebView extends WebView implements WebView.TitleBarDelegate
* @param defStyle
*/
public BrowserWebView(
+ Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing, boolean backgroundTab) {
+ super(context, attrs, defStyle, privateBrowsing, backgroundTab);
+ }
+
+ /**
+ * @param context
+ * @param attrs
+ * @param defStyle
+ */
+ public BrowserWebView(
Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
super(context, attrs, defStyle, privateBrowsing);
}
diff --git a/src/com/android/browser/BrowserWebViewFactory.java b/src/com/android/browser/BrowserWebViewFactory.java
index 82dd208a..26b69509 100644
--- a/src/com/android/browser/BrowserWebViewFactory.java
+++ b/src/com/android/browser/BrowserWebViewFactory.java
@@ -36,8 +36,8 @@ public class BrowserWebViewFactory implements WebViewFactory {
}
protected WebView instantiateWebView(AttributeSet attrs, int defStyle,
- boolean privateBrowsing) {
- return new BrowserWebView(mContext, attrs, defStyle, privateBrowsing);
+ boolean privateBrowsing, boolean backgroundTab) {
+ return new BrowserWebView(mContext, attrs, defStyle, privateBrowsing, backgroundTab);
}
@Override
@@ -47,7 +47,12 @@ public class BrowserWebViewFactory implements WebViewFactory {
@Override
public WebView createWebView(boolean privateBrowsing) {
- WebView w = instantiateWebView(null, android.R.attr.webViewStyle, privateBrowsing);
+ return createWebView(privateBrowsing, false);
+ }
+
+ @Override
+ public WebView createWebView(boolean privateBrowsing, boolean backgroundTab) {
+ WebView w = instantiateWebView(null, android.R.attr.webViewStyle, privateBrowsing, backgroundTab);
initWebViewSettings(w);
return w;
}
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 733e1221..f0aa5572 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2953,7 +2953,7 @@ public class Controller
boolean useCurrent) {
Tab tab = null;
if (mTabControl.canCreateNewTab()) {
- tab = mTabControl.createNewTab(incognito);
+ tab = mTabControl.createNewTab(incognito, !setActive);
addTab(tab);
if (setActive) {
setActiveTab(tab);
diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java
index 0d16b594..bdf21da9 100644
--- a/src/com/android/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -202,17 +202,25 @@ class TabControl {
* number of open tabs.
*/
Tab createNewTab(boolean privateBrowsing) {
- return createNewTab(null, privateBrowsing);
+ return createNewTab(null, privateBrowsing, false);
+ }
+
+ Tab createNewTab(boolean privateBrowsing, boolean backgroundTab) {
+ return createNewTab(null, privateBrowsing, backgroundTab);
}
Tab createNewTab(Bundle state, boolean privateBrowsing) {
+ return createNewTab(null, privateBrowsing, false);
+ }
+
+ Tab createNewTab(Bundle state, boolean privateBrowsing, boolean backgroundTab) {
int size = mTabs.size();
// Return false if we have maxed out on tabs
if (!canCreateNewTab()) {
return null;
}
- final WebView w = createNewWebView(privateBrowsing);
+ final WebView w = createNewWebView(privateBrowsing, backgroundTab);
// Create a new tab and add it to the tab list
Tab t = new Tab(mController, w, state);
@@ -661,7 +669,11 @@ class TabControl {
* WebView.
*/
private WebView createNewWebView(boolean privateBrowsing) {
- return mController.getWebViewFactory().createWebView(privateBrowsing);
+ return createNewWebView(privateBrowsing, false);
+ }
+
+ private WebView createNewWebView(boolean privateBrowsing, boolean backgroundTab) {
+ return mController.getWebViewFactory().createWebView(privateBrowsing, backgroundTab);
}
/**
diff --git a/src/com/android/browser/WebViewFactory.java b/src/com/android/browser/WebViewFactory.java
index 3ebd5731..12327daf 100644
--- a/src/com/android/browser/WebViewFactory.java
+++ b/src/com/android/browser/WebViewFactory.java
@@ -25,6 +25,8 @@ public interface WebViewFactory {
public WebView createWebView(boolean privateBrowsing);
+ public WebView createWebView(boolean privateBrowsing, boolean backgroundTab);
+
public WebView createSubWebView(boolean privateBrowsing);
}