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);