Add debug option to disable performance features for testing

Change-Id: I508448907a83fb32028cb28eb64b72f97a863fd0
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 2d53daa..026e661 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -686,8 +686,9 @@
     }
 
     public static boolean isUiLowPowerMode() {
-        return BrowserCommandLine.hasSwitch("ui-low-power-mode") ||
-            BrowserSettings.getInstance().isPowerSaveModeEnabled();
+        return BrowserCommandLine.hasSwitch("ui-low-power-mode")
+            || BrowserSettings.getInstance().isPowerSaveModeEnabled()
+            || BrowserSettings.getInstance().isDisablePerfFeatures();
     }
 
     // -------------------------------------------------------------------------
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 9de584d..82402c1 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -901,6 +901,11 @@
         return mPrefs.getBoolean(PREF_ENABLE_HARDWARE_ACCEL_SKIA, false);
     }
 
+    public boolean isDisablePerfFeatures() {
+        // This value is flipped in the prefs.
+        return !mPrefs.getBoolean(PREF_DISABLE_PERF, true);
+    }
+
     // -----------------------------
     // getter/setters for hidden_debug_preferences.xml
     // -----------------------------
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index 0cc635a..2f144c5 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -53,6 +53,7 @@
     // ----------------------
     static final String PREF_ENABLE_HARDWARE_ACCEL = "enable_hardware_accel";
     static final String PREF_ENABLE_HARDWARE_ACCEL_SKIA = "enable_hardware_accel_skia";
+    static final String PREF_DISABLE_PERF = "disable_perf";
 
     // ----------------------
     // Keys for general_preferences.xml
diff --git a/src/com/android/browser/preferences/DebugPreferencesFragment.java b/src/com/android/browser/preferences/DebugPreferencesFragment.java
index 21e3080..2283fb6 100644
--- a/src/com/android/browser/preferences/DebugPreferencesFragment.java
+++ b/src/com/android/browser/preferences/DebugPreferencesFragment.java
@@ -19,18 +19,41 @@
 import android.app.ActionBar;
 import android.os.Bundle;
 import android.preference.Preference;
+import android.preference.SwitchPreference;
 import android.preference.Preference.OnPreferenceClickListener;
+import android.preference.Preference.OnPreferenceChangeListener;
 
+import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
 
+import org.codeaurora.swe.PermissionsServiceFactory;
+
 public class DebugPreferencesFragment extends SWEPreferenceFragment
-        implements OnPreferenceClickListener {
+        implements OnPreferenceClickListener, OnPreferenceChangeListener {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         // Load the XML preferences file
         addPreferencesFromResource(R.xml.debug_preferences);
+
+        SwitchPreference pref = (SwitchPreference) findPreference(PreferenceKeys.PREF_DISABLE_PERF);
+        pref.setOnPreferenceChangeListener(this);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference pref, Object objValue) {
+        if (getActivity() == null) {
+            return false;
+        }
+
+        if (pref.getKey().equals(PreferenceKeys.PREF_DISABLE_PERF)) {
+            PermissionsServiceFactory.setDefaultPermissions(
+                PermissionsServiceFactory.PermissionType.WEBREFINER, (Boolean)objValue);
+            return true;
+        }
+
+        return false;
     }
 
     @Override