 Chromium Code Reviews
 Chromium Code Reviews Issue 1361413004:
  Fix directly composited image path for CSS image-orientation  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1361413004:
  Fix directly composited image path for CSS image-orientation  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved. | 
| 3 * Copyright (C) 2008 Google Inc. | 3 * Copyright (C) 2008 Google Inc. | 
| 4 * | 4 * | 
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without | 
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions | 
| 7 * are met: | 7 * are met: | 
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright | 
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. | 
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 64 #include "core/page/DragClient.h" | 64 #include "core/page/DragClient.h" | 
| 65 #include "core/page/DragData.h" | 65 #include "core/page/DragData.h" | 
| 66 #include "core/page/DragSession.h" | 66 #include "core/page/DragSession.h" | 
| 67 #include "core/page/DragState.h" | 67 #include "core/page/DragState.h" | 
| 68 #include "core/page/Page.h" | 68 #include "core/page/Page.h" | 
| 69 #include "core/layout/HitTestRequest.h" | 69 #include "core/layout/HitTestRequest.h" | 
| 70 #include "core/layout/HitTestResult.h" | 70 #include "core/layout/HitTestResult.h" | 
| 71 #include "core/layout/LayoutImage.h" | 71 #include "core/layout/LayoutImage.h" | 
| 72 #include "platform/DragImage.h" | 72 #include "platform/DragImage.h" | 
| 73 #include "platform/geometry/IntRect.h" | 73 #include "platform/geometry/IntRect.h" | 
| 74 #include "platform/graphics/BitmapImage.h" | |
| 74 #include "platform/graphics/Image.h" | 75 #include "platform/graphics/Image.h" | 
| 75 #include "platform/graphics/ImageOrientation.h" | 76 #include "platform/graphics/ImageOrientation.h" | 
| 76 #include "platform/network/ResourceRequest.h" | 77 #include "platform/network/ResourceRequest.h" | 
| 77 #include "platform/weborigin/SecurityOrigin.h" | 78 #include "platform/weborigin/SecurityOrigin.h" | 
| 78 #include "wtf/CurrentTime.h" | 79 #include "wtf/CurrentTime.h" | 
| 79 #include "wtf/OwnPtr.h" | 80 #include "wtf/OwnPtr.h" | 
| 80 #include "wtf/PassOwnPtr.h" | 81 #include "wtf/PassOwnPtr.h" | 
| 81 #include "wtf/RefPtr.h" | 82 #include "wtf/RefPtr.h" | 
| 82 | 83 | 
| 83 #if OS(WIN) | 84 #if OS(WIN) | 
| (...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 792 #endif | 793 #endif | 
| 793 return maxDragImageSize; | 794 return maxDragImageSize; | 
| 794 } | 795 } | 
| 795 | 796 | 
| 796 static PassOwnPtr<DragImage> dragImageForImage(Element* element, Image* image, c onst IntPoint& dragOrigin, const IntRect& imageRect, IntPoint& dragLocation) | 797 static PassOwnPtr<DragImage> dragImageForImage(Element* element, Image* image, c onst IntPoint& dragOrigin, const IntRect& imageRect, IntPoint& dragLocation) | 
| 797 { | 798 { | 
| 798 OwnPtr<DragImage> dragImage; | 799 OwnPtr<DragImage> dragImage; | 
| 799 IntPoint origin; | 800 IntPoint origin; | 
| 800 | 801 | 
| 801 InterpolationQuality interpolationQuality = element->ensureComputedStyle()-> imageRendering() == ImageRenderingPixelated ? InterpolationNone : InterpolationH igh; | 802 InterpolationQuality interpolationQuality = element->ensureComputedStyle()-> imageRendering() == ImageRenderingPixelated ? InterpolationNone : InterpolationH igh; | 
| 803 RespectImageOrientationEnum shouldRespectImageOrientation = element->layoutO bject() ? element->layoutObject()->shouldRespectImageOrientation() : DoNotRespec tImageOrientation; | |
| 804 ImageOrientation orientation; | |
| 
Noel Gordon
2015/09/25 00:12:19
nit: add a space before this line.
 | |
| 805 if (shouldRespectImageOrientation == RespectImageOrientation && image->isBit mapImage()) { | |
| 806 BitmapImage* bitmapImage = toBitmapImage(image); | |
| 
Noel Gordon
2015/09/25 00:12:19
Remove the {} on this if clause and instead write
 | |
| 807 orientation = bitmapImage->currentFrameOrientation(); | |
| 808 } | |
| 802 if (image->size().height() * image->size().width() <= MaxOriginalImageArea | 809 if (image->size().height() * image->size().width() <= MaxOriginalImageArea | 
| 
Noel Gordon
2015/09/25 00:12:19
Add a space before this if clause: this is not a l
 | |
| 803 && (dragImage = DragImage::create(image, | 810 && (dragImage = DragImage::create(image, shouldRespectImageOrientation, | 
| 804 element->layoutObject() ? element->layoutObject()->shouldRespectImag eOrientation() : DoNotRespectImageOrientation, | |
| 805 1 /* deviceScaleFactor */, interpolationQuality, DragImageAlpha, | 811 1 /* deviceScaleFactor */, interpolationQuality, DragImageAlpha, | 
| 806 DragImage::clampedImageScale(*image, imageRect.size(), maxDragImageS ize())))) { | 812 DragImage::clampedImageScale(orientation.usesWidthAsHeight() ? image ->size().transposedSize() : image->size(), imageRect.size(), maxDragImageSize()) ))) { | 
| 807 IntSize originalSize = imageRect.size(); | 813 IntSize originalSize = imageRect.size(); | 
| 808 origin = imageRect.location(); | 814 origin = imageRect.location(); | 
| 809 | 815 | 
| 810 IntSize newSize = dragImage->size(); | 816 IntSize newSize = dragImage->size(); | 
| 811 | 817 | 
| 812 // Properly orient the drag image and orient it differently if it's smal ler than the original | 818 // Properly orient the drag image and orient it differently if it's smal ler than the original | 
| 813 float scale = newSize.width() / (float)originalSize.width(); | 819 float scale = newSize.width() / (float)originalSize.width(); | 
| 814 float dx = origin.x() - dragOrigin.x(); | 820 float dx = origin.x() - dragOrigin.x(); | 
| 815 dx *= scale; | 821 dx *= scale; | 
| 816 origin.setX((int)(dx + 0.5)); | 822 origin.setX((int)(dx + 0.5)); | 
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 958 | 964 | 
| 959 DEFINE_TRACE(DragController) | 965 DEFINE_TRACE(DragController) | 
| 960 { | 966 { | 
| 961 visitor->trace(m_page); | 967 visitor->trace(m_page); | 
| 962 visitor->trace(m_documentUnderMouse); | 968 visitor->trace(m_documentUnderMouse); | 
| 963 visitor->trace(m_dragInitiator); | 969 visitor->trace(m_dragInitiator); | 
| 964 visitor->trace(m_fileInputElementUnderMouse); | 970 visitor->trace(m_fileInputElementUnderMouse); | 
| 965 } | 971 } | 
| 966 | 972 | 
| 967 } // namespace blink | 973 } // namespace blink | 
| OLD | NEW |