| Index: Source/WebKit/chromium/src/DragClientImpl.cpp
 | 
| diff --git a/Source/WebKit/chromium/src/DragClientImpl.cpp b/Source/WebKit/chromium/src/DragClientImpl.cpp
 | 
| index 09d01de9ec53df4beb9dd03834fc8c44a165e240..9cf856b97a21ba9a0f5a0156a0b1048ff3af2e7d 100644
 | 
| --- a/Source/WebKit/chromium/src/DragClientImpl.cpp
 | 
| +++ b/Source/WebKit/chromium/src/DragClientImpl.cpp
 | 
| @@ -33,13 +33,18 @@
 | 
|  #include "WebViewClient.h"
 | 
|  #include "WebViewImpl.h"
 | 
|  #include "core/page/Frame.h"
 | 
| +#include "core/platform/DragImage.h"
 | 
|  #include "core/platform/chromium/ChromiumDataObject.h"
 | 
|  #include "core/platform/chromium/ClipboardChromium.h"
 | 
| -#include "core/platform/chromium/DragImageRef.h"
 | 
| +#include "core/platform/graphics/IntSize.h"
 | 
|  #include "core/platform/graphics/skia/NativeImageSkia.h"
 | 
|  #include "public/platform/WebCommon.h"
 | 
|  #include "public/platform/WebDragData.h"
 | 
|  #include "public/platform/WebImage.h"
 | 
| +#include "public/platform/WebPoint.h"
 | 
| +#include "public/web/WebDragOperation.h"
 | 
| +#include "wtf/Assertions.h"
 | 
| +#include "wtf/RefPtr.h"
 | 
|  
 | 
|  using namespace WebCore;
 | 
|  
 | 
| @@ -54,7 +59,7 @@ DragDestinationAction DragClientImpl::actionMaskForDrag(DragData*)
 | 
|          DragDestinationActionDHTML | DragDestinationActionEdit);
 | 
|  }
 | 
|  
 | 
| -void DragClientImpl::startDrag(DragImageRef dragImage,
 | 
| +void DragClientImpl::startDrag(DragImage* dragImage,
 | 
|                                 const IntPoint& dragImageOrigin,
 | 
|                                 const IntPoint& eventPos,
 | 
|                                 Clipboard* clipboard,
 | 
| @@ -65,18 +70,22 @@ void DragClientImpl::startDrag(DragImageRef dragImage,
 | 
|      RefPtr<Frame> frameProtector = frame;
 | 
|  
 | 
|      WebDragData dragData = static_cast<ClipboardChromium*>(clipboard)->dataObject();
 | 
| -
 | 
| -    DragOperation dragOperationMask = clipboard->sourceOperation();
 | 
| -
 | 
| +    WebDragOperationsMask dragOperationMask = static_cast<WebDragOperationsMask>(clipboard->sourceOperation());
 | 
| +    WebImage image;
 | 
|      IntSize offsetSize(eventPos - dragImageOrigin);
 | 
|      WebPoint offsetPoint(offsetSize.width(), offsetSize.height());
 | 
|  
 | 
| -    if (dragImage && dragImage->bitmap && m_webView->deviceScaleFactor() != dragImage->resolutionScale) {
 | 
| -        ASSERT(dragImage->resolutionScale > 0);
 | 
| -        float scale = m_webView->deviceScaleFactor() / dragImage->resolutionScale;
 | 
| -        dragImage = scaleDragImage(dragImage, WebCore::FloatSize(scale, scale));
 | 
| +    if (dragImage) {
 | 
| +        float resolutionScale = dragImage->resolutionScale();
 | 
| +        if (m_webView->deviceScaleFactor() != resolutionScale) {
 | 
| +            ASSERT(resolutionScale > 0);
 | 
| +            float scale = m_webView->deviceScaleFactor() / resolutionScale;
 | 
| +            dragImage->scale(scale, scale);
 | 
| +        }
 | 
| +        image = dragImage->bitmap();
 | 
|      }
 | 
| -    m_webView->startDragging(frame, dragData, static_cast<WebDragOperationsMask>(dragOperationMask), (dragImage && dragImage->bitmap) ? WebImage(*dragImage->bitmap) : WebImage(), offsetPoint);
 | 
| +
 | 
| +    m_webView->startDragging(frame, dragData, dragOperationMask, image, offsetPoint);
 | 
|  }
 | 
|  
 | 
|  } // namespace WebKit
 | 
| 
 |