Chromium Code Reviews| Index: ios/chrome/browser/ui/activity_services/share_to_data.mm |
| diff --git a/ios/chrome/browser/ui/activity_services/share_to_data.mm b/ios/chrome/browser/ui/activity_services/share_to_data.mm |
| index 40018418250c8ae64248d14381fe36cf3005777c..5ea3b13e7773a5500716c200286c4ee2c7535df2 100644 |
| --- a/ios/chrome/browser/ui/activity_services/share_to_data.mm |
| +++ b/ios/chrome/browser/ui/activity_services/share_to_data.mm |
| @@ -38,6 +38,7 @@ |
| @synthesize title = title_; |
| @synthesize image = image_; |
| +@synthesize thumbnailGenerator = thumbnailGenerator_; |
| @synthesize isOriginalTitle = isOriginalTitle_; |
| @synthesize isPagePrintable = isPagePrintable_; |
| @@ -47,9 +48,10 @@ |
| } |
| - (id)initWithURL:(const GURL&)url |
| - title:(NSString*)title |
| - isOriginalTitle:(BOOL)isOriginalTitle |
| - isPagePrintable:(BOOL)isPagePrintable { |
| + title:(NSString*)title |
| + isOriginalTitle:(BOOL)isOriginalTitle |
| + isPagePrintable:(BOOL)isPagePrintable |
| + thumbnailGenerator:(ThumbnailGeneratorBlock)thumbnailGenerator { |
| DCHECK(url.is_valid()); |
| DCHECK(title); |
| self = [super init]; |
| @@ -58,6 +60,7 @@ |
| self.title = title; |
| self.isOriginalTitle = isOriginalTitle; |
| self.isPagePrintable = isPagePrintable; |
| + self.thumbnailGenerator = thumbnailGenerator; |
| } |
| return self; |
| } |
| @@ -71,24 +74,23 @@ |
| } |
| - (BOOL)isEqual:(id)object { |
| + // Used for testing. |
| if (![object isMemberOfClass:self.class]) |
| return NO; |
| DCHECK(self.url.is_valid()); |
| DCHECK(self.title); |
| ShareToData* other = (ShareToData*)object; |
| + CGSize size = CGSizeMake(40, 40); |
|
Olivier
2017/01/24 16:54:05
Add comment.
Block are equal if they give the same
jif
2017/01/25 15:17:29
Ack.
I moved the code which makes this comment obs
|
| + NSData* thumbnailData = |
| + UIImagePNGRepresentation(self.thumbnailGenerator(size)); |
| + NSData* otherThumbnailData = |
| + UIImagePNGRepresentation(other.thumbnailGenerator(size)); |
| + BOOL thumbnailDataIsEqual = thumbnailData == otherThumbnailData || |
|
Olivier
2017/01/24 16:54:05
I don't think I see anywhere in tests where this c
jif
2017/01/25 15:17:29
Done.
The bitmap comparison is used in the bvc_uni
|
| + [thumbnailData isEqual:otherThumbnailData]; |
| return self.url == other.url && [self.title isEqual:other.title] && |
| self.image == other.image && |
| - self.isOriginalTitle == other.isOriginalTitle; |
| -} |
| - |
| -- (NSUInteger)hash { |
| - DCHECK(self.url.is_valid()); |
| - DCHECK(self.title); |
| - const NSUInteger kPrime = 31; |
| - NSString* urlString = base::SysUTF8ToNSString(self.url.spec()); |
| - return kPrime * kPrime * kPrime * urlString.hash + |
| - kPrime * kPrime * self.title.hash + kPrime * self.image.hash + |
| - (self.isOriginalTitle ? 0 : 1); |
| + self.isOriginalTitle == other.isOriginalTitle && |
| + self.isPagePrintable == other.isPagePrintable && thumbnailDataIsEqual; |
| } |
| @end |