Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2437)

Unified Diff: chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm

Issue 2728173003: Transfer the notification icon through XPC as NSData for OSX 10.09 (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/notifications/notification_service_delegate.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm
diff --git a/chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm b/chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm
index 42732bdf4b85c5d89bd79787702f0bc43f7f86bb..8c272c3a53530f48eea00f7da2158d8330678ec9 100644
--- a/chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm
+++ b/chrome/browser/ui/cocoa/notifications/notification_builder_mac.mm
@@ -6,7 +6,9 @@
#import <AppKit/AppKit.h>
+#include "base/mac/mac_util.h"
#include "base/mac/scoped_nsobject.h"
+
#include "chrome/browser/ui/cocoa/notifications/notification_constants_mac.h"
namespace {
@@ -68,8 +70,14 @@ NSString* const kNotificationSettingsButtonTag = @"settingsButton";
}
- (void)setIcon:(NSImage*)icon {
- if (icon)
- [notificationData_ setObject:icon forKey:kNotificationImage];
+ if (icon) {
+ if (base::mac::IsAtLeastOS10_10()) {
Robert Sesek 2017/03/06 16:12:05 Rather than using base::mac, use [icon conformsToP
Miguel Garcia 2017/03/06 16:30:42 So the problem is that down in line 136 I don't ha
Robert Sesek 2017/03/06 17:34:59 You can check the Class too: https://developer.app
+ [notificationData_ setObject:icon forKey:kNotificationImage];
+ } else { // in 10.09 NSImage does not conform to NSecureCoding
Robert Sesek 2017/03/06 16:12:05 It's just "10.9" -- also use proper punctuation an
Miguel Garcia 2017/03/06 16:30:42 Done.
+ [notificationData_ setObject:[icon TIFFRepresentation]
+ forKey:kNotificationImage];
+ }
+ }
}
- (void)setButtons:(NSString*)primaryButton
@@ -125,8 +133,14 @@ NSString* const kNotificationSettingsButtonTag = @"settingsButton";
// Icon
if ([notificationData_ objectForKey:kNotificationImage]) {
if ([toast respondsToSelector:@selector(_identityImage)]) {
- NSImage* image = [notificationData_ objectForKey:kNotificationImage];
- [toast setValue:image forKey:@"_identityImage"];
+ if (base::mac::IsAtLeastOS10_10()) {
+ NSImage* image = [notificationData_ objectForKey:kNotificationImage];
+ [toast setValue:image forKey:@"_identityImage"];
+ } else { // in 10.09 NSImage does not confirm to NSSecureCoding
Robert Sesek 2017/03/06 16:12:05 Same.
Miguel Garcia 2017/03/06 16:30:42 Done.
+ base::scoped_nsobject<NSImage> image([[NSImage alloc]
+ initWithData:[notificationData_ objectForKey:kNotificationImage]]);
+ [toast setValue:image forKey:@"_identityImage"];
+ }
[toast setValue:@NO forKey:@"_identityImageHasBorder"];
}
}
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/notifications/notification_service_delegate.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698