Unreviewed, rolling out r206683.
authorryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 2 Oct 2016 19:19:29 +0000 (19:19 +0000)
committerryanhaddad@apple.com <ryanhaddad@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 2 Oct 2016 19:19:29 +0000 (19:19 +0000)
This change caused API test WebKit2.FindMatches to fail on
Mac.

Reverted changeset:

"The dragged image should be the current frame only of the
animated image"
https://bugs.webkit.org/show_bug.cgi?id=162109
http://trac.webkit.org/changeset/206683

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@206720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

17 files changed:
Source/WebCore/ChangeLog
Source/WebCore/dom/DataTransferMac.mm
Source/WebCore/editing/cocoa/HTMLConverter.mm
Source/WebCore/platform/graphics/BitmapImage.h
Source/WebCore/platform/graphics/Image.h
Source/WebCore/platform/graphics/mac/ImageMac.mm
Source/WebCore/platform/mac/CursorMac.mm
Source/WebCore/platform/mac/DragImageMac.mm
Source/WebCore/platform/mac/PasteboardMac.mm
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/DOM/DOM.mm
Source/WebKit/mac/Misc/WebElementDictionary.mm
Source/WebKit/mac/Misc/WebIconDatabase.mm
Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm
Source/WebKit/mac/WebView/WebHTMLView.mm
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm

index 335b8f1..42bc9c2 100644 (file)
@@ -1,3 +1,17 @@
+2016-10-02  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r206683.
+
+        This change caused API test WebKit2.FindMatches to fail on
+        Mac.
+
+        Reverted changeset:
+
+        "The dragged image should be the current frame only of the
+        animated image"
+        https://bugs.webkit.org/show_bug.cgi?id=162109
+        http://trac.webkit.org/changeset/206683
+
 2016-10-02  Chris Dumez  <cdumez@apple.com>
 
         Unreviewed, rolling out r206692 and r206718.
index 448cf00..7e8d967 100644 (file)
@@ -49,7 +49,7 @@ DragImageRef DataTransfer::createDragImage(IntPoint& location) const
             location.setY(imageRect.height() - (elementRect.y() - imageRect.y() + m_dragLocation.y()));
         }
     } else if (m_dragImage) {
-        result = m_dragImage->image()->currentFrameNSImage();
+        result = m_dragImage->image()->getNSImage();
         
         location = m_dragLocation;
         location.setY([result size].height - location.y());
index 4aec974..a162734 100644 (file)
@@ -2464,7 +2464,7 @@ static RetainPtr<NSFileWrapper> fileWrapperForElement(HTMLImageElement& element)
     if (is<RenderImage>(renderer)) {
         auto* image = downcast<RenderImage>(*renderer).cachedImage();
         if (image && !image->errorOccurred()) {
-            RetainPtr<NSFileWrapper> wrapper = adoptNS([[NSFileWrapper alloc] initRegularFileWithContents:(NSData *)image->imageForRenderer(renderer)->tiffRepresentation()]);
+            RetainPtr<NSFileWrapper> wrapper = adoptNS([[NSFileWrapper alloc] initRegularFileWithContents:(NSData *)image->imageForRenderer(renderer)->getTIFFRepresentation()]);
             [wrapper setPreferredFilename:@"image.tiff"];
             return wrapper;
         }
index 2117594..ac14573 100644 (file)
@@ -96,12 +96,11 @@ public:
 
     // Accessors for native image formats.
 #if USE(APPKIT)
-    NSImage *nsImage() override;
-    RetainPtr<NSImage> currentFrameNSImage() override;
+    NSImage* getNSImage() override;
 #endif
 
 #if PLATFORM(COCOA)
-    CFDataRef tiffRepresentation() override;
+    CFDataRef getTIFFRepresentation() override;
 #endif
 
 #if PLATFORM(WIN)
@@ -192,10 +191,10 @@ private:
     bool m_animationFinishedWhenCatchingUp { false };
 
 #if USE(APPKIT)
-    mutable RetainPtr<NSImage> m_nsImage; // A cached NSImage of all the frames. Only built lazily if someone actually queries for one.
+    mutable RetainPtr<NSImage> m_nsImage; // A cached NSImage of frame 0. Only built lazily if someone actually queries for one.
 #endif
 #if USE(CG)
-    mutable RetainPtr<CFDataRef> m_tiffRep; // Cached TIFF rep for all the frames. Only built lazily if someone queries for one.
+    mutable RetainPtr<CFDataRef> m_tiffRep; // Cached TIFF rep for frame 0. Only built lazily if someone queries for one.
 #endif
     RefPtr<Image> m_cachedImage;
 };
index d7c90e5..3ccf56a 100644 (file)
@@ -146,12 +146,11 @@ public:
     // Accessors for native image formats.
 
 #if USE(APPKIT)
-    virtual NSImage *nsImage() { return nullptr; }
-    virtual RetainPtr<NSImage> currentFrameNSImage() { return nullptr; }
+    virtual NSImage* getNSImage() { return nullptr; }
 #endif
 
 #if PLATFORM(COCOA)
-    virtual CFDataRef tiffRepresentation() { return nullptr; }
+    virtual CFDataRef getTIFFRepresentation() { return nullptr; }
 #endif
 
 #if PLATFORM(WIN)
index 1ab4e0e..28e297b 100644 (file)
@@ -74,14 +74,14 @@ PassRefPtr<Image> Image::loadPlatformResource(const char *name)
     return Image::nullImage();
 }
 
-CFDataRef BitmapImage::tiffRepresentation()
+CFDataRef BitmapImage::getTIFFRepresentation()
 {
     if (m_tiffRep)
         return m_tiffRep.get();
 
-    auto nativeImages = framesNativeImages();
+    auto nativeImages = this->framesNativeImages();
 
-    // If nativeImages.size() is zero, we know for certain this image doesn't have valid data
+    // If framesImages.size() is zero, we know for certain this image doesn't have valid data
     // Even though the call to CGImageDestinationCreateWithData will fail and we'll handle it gracefully,
     // in certain circumstances that call will spam the console with an error message
     if (!nativeImages.size())
@@ -103,27 +103,18 @@ CFDataRef BitmapImage::tiffRepresentation()
 }
 
 #if USE(APPKIT)
-NSImage* BitmapImage::nsImage()
+NSImage* BitmapImage::getNSImage()
 {
     if (m_nsImage)
         return m_nsImage.get();
 
-    CFDataRef data = tiffRepresentation();
+    CFDataRef data = getTIFFRepresentation();
     if (!data)
-        return nullptr;
+        return 0;
     
     m_nsImage = adoptNS([[NSImage alloc] initWithData:(NSData*)data]);
     return m_nsImage.get();
 }
-
-RetainPtr<NSImage> BitmapImage::currentFrameNSImage()
-{
-    auto nativeImage = this->nativeImageForCurrentFrame();
-    if (!nativeImage)
-        return nullptr;
-
-    return adoptNS([[NSImage alloc] initWithCGImage:nativeImage.get() size:NSZeroSize]);
-}
 #endif
 
 }
index be023d0..2cc4024 100644 (file)
@@ -48,9 +48,9 @@ static RetainPtr<NSCursor> createCustomCursor(Image* image, const IntPoint& hotS
 #endif
 {
     // FIXME: The cursor won't animate.  Not sure if that's a big deal.
-    auto nsImage = image->currentFrameNSImage();
+    NSImage* nsImage = image->getNSImage();
     if (!nsImage)
-        return nullptr;
+        return 0;
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
 
 #if ENABLE(MOUSE_CURSOR_SCALE)
@@ -78,7 +78,7 @@ static RetainPtr<NSCursor> createCustomCursor(Image* image, const IntPoint& hotS
     [[[nsImage representations] objectAtIndex:0] setSize:expandedSize];
 #endif
 
-    return adoptNS([[NSCursor alloc] initWithImage:nsImage.get() hotSpot:hotSpot]);
+    return adoptNS([[NSCursor alloc] initWithImage:nsImage hotSpot:hotSpot]);
     END_BLOCK_OBJC_EXCEPTIONS;
     return nullptr;
 }
index a3e342e..7697c7b 100644 (file)
@@ -121,7 +121,7 @@ RetainPtr<NSImage> createDragImageFromImage(Image* image, ImageOrientationDescri
 
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
-            [image->currentFrameNSImage() drawInRect:destRect fromRect:NSMakeRect(0, 0, size.width(), size.height()) operation:NSCompositeSourceOver fraction:1.0];
+            [image->getNSImage() drawInRect:destRect fromRect:NSMakeRect(0, 0, size.width(), size.height()) operation:NSCompositeSourceOver fraction:1.0];
 #pragma clang diagnostic pop
             [rotatedDragImage.get() unlockFocus];
 
@@ -129,7 +129,7 @@ RetainPtr<NSImage> createDragImageFromImage(Image* image, ImageOrientationDescri
         }
     }
 
-    auto dragImage = image->currentFrameNSImage();
+    RetainPtr<NSImage> dragImage = adoptNS([image->getNSImage() copy]);
     [dragImage.get() setSize:(NSSize)size];
     return dragImage;
 }
index 3fec2d0..df31216 100644 (file)
@@ -255,7 +255,7 @@ static void writeFileWrapperAsRTFDAttachment(NSFileWrapper *wrapper, const Strin
 
 void Pasteboard::write(const PasteboardImage& pasteboardImage)
 {
-    CFDataRef imageData = pasteboardImage.image->tiffRepresentation();
+    CFDataRef imageData = pasteboardImage.image->getTIFFRepresentation();
     if (!imageData)
         return;
 
index ee79e79..5a86cbf 100644 (file)
@@ -1,3 +1,17 @@
+2016-10-02  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r206683.
+
+        This change caused API test WebKit2.FindMatches to fail on
+        Mac.
+
+        Reverted changeset:
+
+        "The dragged image should be the current frame only of the
+        animated image"
+        https://bugs.webkit.org/show_bug.cgi?id=162109
+        http://trac.webkit.org/changeset/206683
+
 2016-09-30  Said Abou-Hallawa  <sabouhallawa@apple.com>
 
         The dragged image should be the current frame only of the animated image
index 91efc93..c7dcd20 100644 (file)
@@ -670,7 +670,7 @@ id <DOMEventTarget> kit(EventTarget* eventTarget)
     auto* cachedImage = downcast<RenderImage>(*renderer).cachedImage();
     if (!cachedImage || cachedImage->errorOccurred())
         return nil;
-    return cachedImage->imageForRenderer(renderer)->nsImage();
+    return cachedImage->imageForRenderer(renderer)->getNSImage();
 }
 
 #endif
@@ -698,7 +698,7 @@ id <DOMEventTarget> kit(EventTarget* eventTarget)
     auto* cachedImage = downcast<RenderImage>(*renderer).cachedImage();
     if (!cachedImage || cachedImage->errorOccurred())
         return nil;
-    return (NSData *)cachedImage->imageForRenderer(renderer)->tiffRepresentation();
+    return (NSData *)cachedImage->imageForRenderer(renderer)->getTIFFRepresentation();
 }
 
 #endif
index de09aa6..2126f75 100644 (file)
@@ -204,7 +204,7 @@ static NSString* NSStringOrNil(String coreString)
 - (NSImage *)_image
 {
     Image* image = _result->image();
-    return image ? image->nsImage() : nil;
+    return image ? image->getNSImage() : nil;
 }
 
 - (NSValue *)_imageRect
index 4125adb..30b9b7e 100644 (file)
@@ -163,7 +163,7 @@ static WebIconDatabaseClient* defaultClient()
     ASSERT(size.height);
     
     Image* image = iconDatabase().defaultIcon(IntSize(size));
-    return image ? image->currentFrameNSImage().autorelease() : nil;
+    return image ? image->getNSImage() : nil;
 }
 
 - (NSImage *)defaultIconForURL:(NSString *)URL withSize:(NSSize)size
@@ -470,7 +470,7 @@ NSImage *webGetNSImage(Image* image, NSSize size)
     // to WebCore::Image at some point.
     if (!image)
         return nil;
-    NSImage* nsImage = image->nsImage();
+    NSImage* nsImage = image->getNSImage();
     if (!nsImage)
         return nil;
     if (!NSEqualSizes([nsImage size], size)) {
index c6d098c..08d435b 100644 (file)
@@ -226,7 +226,7 @@ RetainPtr<NSImage> WebContextMenuClient::imageForCurrentSharingServicePickerItem
     if (!image)
         return nil;
 
-    return image->currentFrameNSImage();
+    return [[image->getNSImage() retain] autorelease];
 }
 #endif
 
@@ -242,7 +242,7 @@ NSMenu *WebContextMenuClient::contextMenuForEvent(NSEvent *event, NSView *view,
     if (Image* image = page->contextMenuController().context().controlledImage()) {
         ASSERT(page->contextMenuController().context().hitTestResult().innerNode());
 
-        RetainPtr<NSItemProvider> itemProvider = adoptNS([[NSItemProvider alloc] initWithItem:image->currentFrameNSImage().autorelease() typeIdentifier:@"public.image"]);
+        RetainPtr<NSItemProvider> itemProvider = adoptNS([[NSItemProvider alloc] initWithItem:image->getNSImage() typeIdentifier:@"public.image"]);
 
         bool isContentEditable = page->contextMenuController().context().hitTestResult().innerNode()->isContentEditable();
         m_sharingServicePickerController = adoptNS([[WebSharingServicePickerController alloc] initWithItems:@[ itemProvider.get() ] includeEditorServices:isContentEditable client:this style:NSSharingServicePickerStyleRollover]);
index 0613810..8043bdf 100644 (file)
@@ -2210,7 +2210,7 @@ static bool mouseEventIsPartOfClickOrDrag(NSEvent *event)
         [archive release];
     } else if ([type isEqual:NSTIFFPboardType] && [self promisedDragTIFFDataSource]) {
         if (Image* image = [self promisedDragTIFFDataSource]->image())
-            [pasteboard setData:(NSData *)image->tiffRepresentation() forType:NSTIFFPboardType];
+            [pasteboard setData:(NSData *)image->getTIFFRepresentation() forType:NSTIFFPboardType];
         [self setPromisedDragTIFFDataSource:0];
     }
 }
index b0f4cd5..ce0376f 100644 (file)
@@ -1,3 +1,17 @@
+2016-10-02  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r206683.
+
+        This change caused API test WebKit2.FindMatches to fail on
+        Mac.
+
+        Reverted changeset:
+
+        "The dragged image should be the current frame only of the
+        animated image"
+        https://bugs.webkit.org/show_bug.cgi?id=162109
+        http://trac.webkit.org/changeset/206683
+
 2016-09-30  Myles C. Maxfield  <mmaxfield@apple.com>
 
         Follow-up patch after r206701
index 175c892..8ae36be 100644 (file)
@@ -3038,7 +3038,7 @@ void WebViewImpl::provideDataForPasteboard(NSPasteboard *pasteboard, NSString *t
     // FIXME: need to support NSRTFDPboardType
 
     if ([type isEqual:NSTIFFPboardType] && m_promisedImage) {
-        [pasteboard setData:(NSData *)m_promisedImage->tiffRepresentation() forType:NSTIFFPboardType];
+        [pasteboard setData:(NSData *)m_promisedImage->getTIFFRepresentation() forType:NSTIFFPboardType];
         m_promisedImage = nullptr;
     }
 }