Multiple fixes to browser
- Ensure that clearing of the FLAG_DIM_BEHIND happens only once.
Clearing FLAG_DIM_BEHIND window flag multiple time was causing
unnecessary paint.
- Implement shouldDownloadFavicon API in Tab to optimize favicon
download.
Change-Id: I8027565a29f2f1f6a2429a282c8727c6b4fe0d45
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index bed4043..ccc1c59 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -250,6 +250,7 @@
private String mVoiceResult;
private boolean mUpdateMyNavThumbnail;
private String mUpdateMyNavThumbnailUrl;
+ private float mLevel = 0.0f;
public Controller(Activity browser) {
mActivity = browser;
@@ -3413,7 +3414,10 @@
}
public void setWindowDimming(float level) {
- if (level != 0) {
+ if (mLevel == level)
+ return;
+ mLevel = level;
+ if (level != 0.0f) {
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.dimAmount = level;
mActivity.getWindow().setAttributes(lp);
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index b07f035..a973c93 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -208,7 +208,7 @@
mTabSwitcher.setVisibility(View.VISIBLE);
mTabText.setVisibility(View.VISIBLE);
if (mUiController != null) {
- mUiController.setWindowDimming(0f);
+ mUiController.setWindowDimming(0.0f);
}
break;
case StateListener.STATE_HIGHLIGHTED:
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 789db54..3b57d9e 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -432,6 +432,11 @@
}
}
+ @Override
+ public boolean shouldDownloadFavicon(WebView view, String url) {
+ return true;
+ }
+
/**
* Updates the security state. This method is called when we discover
* another resource to be loaded for this page (for example,