Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e88ca718 authored by Nicolas Roard's avatar Nicolas Roard Committed by Android (Google) Code Review
Browse files

Merge "Hack to workaround the fact that the EGL context can be removed from...

Merge "Hack to workaround the fact that the EGL context can be removed from under us by framework in low memory condition." into ics-mr1
parents 302afb93 2bc0b01f
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -119,6 +119,11 @@ import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGLDisplay;
import static javax.microedition.khronos.egl.EGL10.*;

/**
 * <p>A View that displays web pages. This class is the basis upon which you
 * can roll your own web browser or simply display some online content within your Activity.
@@ -909,6 +914,9 @@ public class WebView extends AbsoluteLayout
    private Rect mScrollingLayerBounds = new Rect();
    private boolean mSentAutoScrollMessage = false;

    // Temporary hack to work around the context removal upon memory pressure
    private static boolean mIncrementEGLContextHack = false;

    // used for serializing asynchronously handled touch events.
    private final TouchEventQueue mTouchEventQueue = new TouchEventQueue();

@@ -4225,6 +4233,13 @@ public class WebView extends AbsoluteLayout
        }

        if (canvas.isHardwareAccelerated()) {
            if (mIncrementEGLContextHack == false) {
                mIncrementEGLContextHack = true;
                EGL10 egl = (EGL10) EGLContext.getEGL();
                EGLDisplay eglDisplay = egl.eglGetDisplay(EGL_DEFAULT_DISPLAY);
                int[] version = new int[2];
                egl.eglInitialize(eglDisplay, version);
            }
            mZoomManager.setHardwareAccelerated();
        }