Add a runtime switch between Raster and Ganesh rendering modes.

There are corresponding changes in:

frameworks/base -- change ID: 120662
external/webkit -- change ID: 120660

bug: 5013645
Change-Id: Ic8dfd24786c2ecc14df840204c7a01cb0defa5e3
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ee3ce95..f8beb4e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -567,6 +567,8 @@
     <!-- Do not tranlsate.  Development option -->
     <string name="pref_development_hardware_accel" translatable="false">Enable OpenGL Rendering</string>
     <!-- Do not tranlsate.  Development option -->
+    <string name="pref_development_hardware_accel_skia" translatable="false">Enable HW Accelerated Skia</string>
+    <!-- Do not tranlsate.  Development option -->
     <string name="pref_development_visual_indicator" translatable="false">Enable Visual Indicator</string>
     <!-- Do not tranlsate.  Development option -->
     <string name="js_engine_flags" translatable="false">Set JS flags</string>
diff --git a/res/xml/debug_preferences.xml b/res/xml/debug_preferences.xml
index 1fc4f4c..2d15ab2 100644
--- a/res/xml/debug_preferences.xml
+++ b/res/xml/debug_preferences.xml
@@ -22,6 +22,11 @@
         android:defaultValue="true"
         android:title="@string/pref_development_hardware_accel" />
 
+    <CheckBoxPreference
+        android:key="enable_hardware_accel_skia"
+        android:defaultValue="false"
+        android:title="@string/pref_development_hardware_accel_skia" />
+
     <ListPreference
         android:key="user_agent"
         android:title="@string/pref_development_uastring"
@@ -29,13 +34,13 @@
         android:entryValues="@array/pref_development_ua_values"
         android:defaultValue="0"/>
 
-    <!-- The javascript console is enabled by default when the user has
-         also enabled debug mode by navigating to about:debug. -->
     <CheckBoxPreference
         android:key="enable_visual_indicator"
         android:defaultValue="false"
         android:title="@string/pref_development_visual_indicator" />
 
+    <!-- The javascript console is enabled by default when the user has
+         also enabled debug mode by navigating to about:debug. -->
     <CheckBoxPreference
         android:key="javascript_console"
         android:defaultValue="true"
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 8461d30..2a21a8e 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -224,6 +224,7 @@
         settings.setJavaScriptEnabled(enableJavascript());
         settings.setLightTouchEnabled(enableLightTouch());
         settings.setNavDump(enableNavDump());
+        settings.setHardwareAccelSkiaEnabled(isSkiaHardwareAccelerated());
         settings.setShowVisualIndicator(enableVisualIndicator());
         settings.setDefaultTextEncodingName(getDefaultTextEncoding());
         settings.setDefaultZoom(getDefaultZoom());
@@ -624,6 +625,13 @@
         return mPrefs.getBoolean(PREF_ENABLE_HARDWARE_ACCEL, true);
     }
 
+    public boolean isSkiaHardwareAccelerated() {
+        if (!isDebugEnabled()) {
+            return false;
+        }
+        return mPrefs.getBoolean(PREF_ENABLE_HARDWARE_ACCEL_SKIA, false);
+    }
+
     public int getUserAgent() {
         if (!isDebugEnabled()) {
             return 0;
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index ce8ec9f..65218e5 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -48,6 +48,7 @@
     // Keys for debug_preferences.xml
     // ----------------------
     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_USER_AGENT = "user_agent";
 
     // ----------------------