I instrumented further the code, and here are my observations so far:
When launching firefox, the very first call to `GLLibraryEGL::CreateDisplay()` returns a valid EGL display. This is being called from `RenderThread::CreateGLContextEGL()`, from the app's main process.
Subsequent calls to `GLLibraryEGL::CreateDisplay()` follow a different code path (from `GLContextProviderEGL::CreateHeadless()`, from child (content) processes), and those invariably return `null`, which results in WebGL not working.
I instrumented further the code, and here are my observations so far:
When launching firefox, the very first call to `GLLibraryEGL: :CreateDisplay( )` returns a valid EGL display. This is being called from `RenderThread: :CreateGLContex tEGL()` , from the app's main process.
Subsequent calls to `GLLibraryEGL: :CreateDisplay( )` follow a different code path (from `GLContextProvi derEGL: :CreateHeadless ()`, from child (content) processes), and those invariably return `null`, which results in WebGL not working.