diff options
author | Brian Smith <brian@dbsoft.org> | 2020-11-17 06:52:06 -0600 |
---|---|---|
committer | Brian Smith <brian@dbsoft.org> | 2020-11-17 06:52:06 -0600 |
commit | 2f3cf3c8cfbd12ff10aecc2ca8205cc53c83d4eb (patch) | |
tree | 11567378bbf491dcbf0a589446415c6e53ef6c02 /widget/cocoa | |
parent | fa5aba4c0fd68c5b629cbf8f55dba36c626ee933 (diff) | |
download | uxp-2f3cf3c8cfbd12ff10aecc2ca8205cc53c83d4eb.tar.gz |
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.
Diffstat (limited to 'widget/cocoa')
-rw-r--r-- | widget/cocoa/nsChildView.mm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/widget/cocoa/nsChildView.mm b/widget/cocoa/nsChildView.mm index 95547a13ec..868687fe16 100644 --- a/widget/cocoa/nsChildView.mm +++ b/widget/cocoa/nsChildView.mm @@ -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 |