ResizeOffscreenFBO does things other than resizing FBOs. It shouldn't, because other code begins to expect it to then do things that are not guaranteed.
One thing I see is that we are setting the viewport to the correct size the first time we run. Unfortunately, we're bad at determining when is the first time vs. subsequent times. This should be done in the code which initializes the context, not in resize code.
An early-out added in bug 615976 makes it very important we know what our guarantees are, and aren't.
Created attachment 582426 [details] [diff] [review]
Deguarantee ResizeOffscreenFBO sets the viewport on first run
We already set the viewport correctly for WebGL initialization.
I will run this by try, then land it.
Try run at https://tbpl.mozilla.org/?tree=Try&rev=e8b8a919fe13 is clean.