Issue #1667 - Part 3: Fix OpenGL load and runtime issues on Big Sur

This fix is included in NSPR 4.27 and Mozilla bug 1652330.
Also put a main thread check in the cocoa draw callback.
This commit is contained in:
Brian Smith
2020-11-17 06:52:06 -06:00
parent fa5aba4c0f
commit 2f3cf3c8cf
2 changed files with 40 additions and 7 deletions
+7 -1
View File
@@ -3564,10 +3564,16 @@ NSEvent* gLastDragMouseDownEvent = nil;
// This method is called from mPixelHostingView's drawRect handler.
- (void)doDrawRect:(NSRect)aRect
{
CGContextRef cgContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
if (!NS_IsMainThread()) {
// In the presence of CoreAnimation, this method can sometimes be called on
// a non-main thread. Ignore those calls because Gecko can only react to
// them on the main thread.
return;
}
if (!mGeckoChild || !mGeckoChild->IsVisible())
return;
CGContextRef cgContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
if ([self isUsingOpenGL]) {
// Since this view is usually declared as opaque, the window's pixel