| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| index acf3559a026ef34b51393cb78933b40af4807620..28c902fe08807281e836dfc1af4af76359cd12b8 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -1795,9 +1795,21 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| mContextMenuCloseObservers.removeObserver(callback);
|
| }
|
|
|
| + private boolean shouldDisableHardwareAcceleration() {
|
| + // Low end devices should disable hardware acceleration for memory gains.
|
| + if (SysUtils.isLowEndDevice()) return true;
|
| + // GT-S7580 on JDQ39 accounts for 42% of crashes in libPowerStretch.so. Speculative fix to
|
| + // see if turning off hardware acceleration fixes this. See http://crbug.com/651918.
|
| + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN_MR1
|
| + && Build.MODEL.equals("GT-S7580")) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| private void enableHardwareAcceleration() {
|
| - // HW acceleration is disabled in the manifest. Enable it only on high-end devices.
|
| - if (!SysUtils.isLowEndDevice()) {
|
| + // HW acceleration is disabled in the manifest and may be re-enabled here.
|
| + if (!shouldDisableHardwareAcceleration()) {
|
| getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
|
|
|
| // When HW acceleration is enabled manually for an activity, child windows (e.g.
|
|
|