summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/BrowserSettings.java16
-rw-r--r--src/com/android/browser/PreferenceKeys.java1
-rw-r--r--src/com/android/browser/preferences/LabPreferencesFragment.java9
3 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 4073f1c..8ed824e 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -129,6 +129,8 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
private static String sFactoryResetUrl;
+ private static boolean sWebGLAvailable;
+
public static void initialize(final Context context) {
sInstance = new BrowserSettings(context);
}
@@ -275,6 +277,8 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
settings.setSaveFormData(saveFormdata());
settings.setUseWideViewPort(isWideViewport());
settings.setAutoFillProfile(getAutoFillProfile());
+ setIsWebGLAvailable(settings.isWebGLAvailable());
+ settings.setWebGLEnabled(isWebGLAvailable() && isWebGLEnabled());
String ua = mCustomUserAgents.get(settings);
if (ua != null) {
@@ -841,6 +845,10 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
return 1 + (mPrefs.getInt(PREF_INVERTED_CONTRAST, 0) / 10f);
}
+ public boolean isWebGLEnabled() {
+ return mPrefs.getBoolean(PREF_ENABLE_WEBGL, true);
+ }
+
// -----------------------------
// getter/setters for privacy_security_preferences.xml
// -----------------------------
@@ -917,6 +925,14 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
return mPrefs.getString(PREF_LINK_PREFETCH, getDefaultLinkPrefetchSetting());
}
+ private static void setIsWebGLAvailable(boolean available) {
+ sWebGLAvailable = available;
+ }
+
+ public static boolean isWebGLAvailable() {
+ return sWebGLAvailable;
+ }
+
// -----------------------------
// getter/setters for browser recovery
// -----------------------------
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index 1828032..2de1073 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -83,6 +83,7 @@ public interface PreferenceKeys {
// ----------------------
static final String PREF_ENABLE_QUICK_CONTROLS = "enable_quick_controls";
static final String PREF_FULLSCREEN = "fullscreen";
+ static final String PREF_ENABLE_WEBGL = "enable_webgl";
// ----------------------
// Keys for privacy_security_preferences.xml
diff --git a/src/com/android/browser/preferences/LabPreferencesFragment.java b/src/com/android/browser/preferences/LabPreferencesFragment.java
index 222b5fa..8d33c95 100644
--- a/src/com/android/browser/preferences/LabPreferencesFragment.java
+++ b/src/com/android/browser/preferences/LabPreferencesFragment.java
@@ -17,8 +17,10 @@
package com.android.browser.preferences;
import android.os.Bundle;
+import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
import com.android.browser.BrowserSettings;
import com.android.browser.PreferenceKeys;
@@ -32,5 +34,12 @@ public class LabPreferencesFragment extends PreferenceFragment {
super.onCreate(savedInstanceState);
// Load the XML preferences file
addPreferencesFromResource(R.xml.lab_preferences);
+
+ if (!BrowserSettings.isWebGLAvailable()) {
+ CheckBoxPreference webGL = (CheckBoxPreference)
+ findPreference(PreferenceKeys.PREF_ENABLE_WEBGL);
+ PreferenceScreen screen = getPreferenceScreen();
+ screen.removePreference(webGL);
+ }
}
}