From 5a60bc58b11cfb1598a41c1fb0162e903dec27e8 Mon Sep 17 00:00:00 2001 From: Stephen A Pohl Date: Fri, 1 May 2020 22:30:46 +0000 Subject: [PATCH] Bug 1629533: Fix an issue that prevented some icons from drawing in the macOS share menu. r=mstange Differential Revision: https://phabricator.services.mozilla.com/D71871 --- widget/cocoa/nsMacSharingService.mm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/widget/cocoa/nsMacSharingService.mm b/widget/cocoa/nsMacSharingService.mm index 342b60c193c4..3284343a4579 100644 --- a/widget/cocoa/nsMacSharingService.mm +++ b/widget/cocoa/nsMacSharingService.mm @@ -78,12 +78,12 @@ NSString* const openSharingSubpaneProtocolValue = @"com.apple.share-services"; @end static NSString* NSImageToBase64(const NSImage* aImage) { - NSRect rect = NSMakeRect(0, 0, aImage.size.width, aImage.size.height); - NSImageRep* bestRep = [aImage bestRepresentationForRect:rect context:nil hints:nil]; - NSData* tiffData = [NSBitmapImageRep TIFFRepresentationOfImageRepsInArray:@[ bestRep ]]; - NSBitmapImageRep* bitmapRep = [NSBitmapImageRep imageRepWithData:tiffData]; + CGImageRef cgRef = [aImage CGImageForProposedRect:nil context:nil hints:nil]; + NSBitmapImageRep* bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:cgRef]; + [bitmapRep setSize:[aImage size]]; NSData* imageData = [bitmapRep representationUsingType:NSPNGFileType properties:@{}]; NSString* base64Encoded = [imageData base64EncodedStringWithOptions:0]; + [bitmapRep release]; return [NSString stringWithFormat:@"data:image/png;base64,%@", base64Encoded]; }