Changeset 159487 in webkit


Ignore:
Timestamp:
Nov 18, 2013 11:53:37 PM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, rolling out r159455.
http://trac.webkit.org/changeset/159455
https://bugs.webkit.org/show_bug.cgi?id=124568

broke two api tests (see bug 124564) (Requested by thorton on
#webkit).

Source/WebCore:

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.exp.in:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOM.mm:

(-[DOMNode renderedImage]):
(-[DOMRange renderedImageForcingBlackText:]):

  • dom/Clipboard.cpp:

(WebCore::Clipboard::createDragImage):

  • dom/ClipboardMac.mm:

(WebCore::Clipboard::createDragImage):

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

  • page/Frame.cpp:

(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):

  • page/Frame.h:
  • page/FrameSnapshotting.cpp: Removed.
  • page/FrameSnapshotting.h: Removed.
  • page/mac/FrameMac.mm: Copied from Source/WebCore/page/win/FrameWin.h.

(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):

  • page/mac/FrameSnapshottingMac.h: Copied from Source/WebCore/page/win/FrameWin.h.
  • page/mac/FrameSnapshottingMac.mm: Added.

(WebCore::imageFromRect):
(WebCore::selectionImage):
(WebCore::rangeImage):
(WebCore::snapshotDragImage):

  • page/win/FrameWin.cpp:

(WebCore::Frame::dragImageForSelection):
(WebCore::Frame::nodeImage):

  • page/win/FrameWin.h:
  • platform/DragImage.cpp:

(WebCore::fitDragImageToMaxSize):
(WebCore::createDragImageForLink):

  • platform/DragImage.h:

Source/WebKit/ios:

  • WebCoreSupport/WebFrameIOS.mm:

Source/WebKit/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _selectionDraggingImage]):
(-[WebHTMLView selectionImageForcingBlackText:]):

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMElement::renderedImage):

Location:
trunk/Source
Files:
1 added
2 deleted
23 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r159455 r159487  
    17271727    page/Frame.cpp
    17281728    page/FrameDestructionObserver.cpp
    1729     page/FrameSnapshotting.cpp
    17301729    page/FrameTree.cpp
    17311730    page/FrameView.cpp
  • trunk/Source/WebCore/ChangeLog

    r159485 r159487  
     12013-11-18  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r159455.
     4        http://trac.webkit.org/changeset/159455
     5        https://bugs.webkit.org/show_bug.cgi?id=124568
     6
     7        broke two api tests (see bug 124564) (Requested by thorton on
     8        #webkit).
     9
     10        * CMakeLists.txt:
     11        * GNUmakefile.list.am:
     12        * WebCore.exp.in:
     13        * WebCore.vcxproj/WebCore.vcxproj:
     14        * WebCore.vcxproj/WebCore.vcxproj.filters:
     15        * WebCore.xcodeproj/project.pbxproj:
     16        * bindings/objc/DOM.mm:
     17        (-[DOMNode renderedImage]):
     18        (-[DOMRange renderedImageForcingBlackText:]):
     19        * dom/Clipboard.cpp:
     20        (WebCore::Clipboard::createDragImage):
     21        * dom/ClipboardMac.mm:
     22        (WebCore::Clipboard::createDragImage):
     23        * page/DragController.cpp:
     24        (WebCore::DragController::startDrag):
     25        * page/Frame.cpp:
     26        (WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
     27        (WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
     28        (WebCore::Frame::nodeImage):
     29        (WebCore::Frame::dragImageForSelection):
     30        * page/Frame.h:
     31        * page/FrameSnapshotting.cpp: Removed.
     32        * page/FrameSnapshotting.h: Removed.
     33        * page/mac/FrameMac.mm: Copied from Source/WebCore/page/win/FrameWin.h.
     34        (WebCore::Frame::nodeImage):
     35        (WebCore::Frame::dragImageForSelection):
     36        * page/mac/FrameSnapshottingMac.h: Copied from Source/WebCore/page/win/FrameWin.h.
     37        * page/mac/FrameSnapshottingMac.mm: Added.
     38        (WebCore::imageFromRect):
     39        (WebCore::selectionImage):
     40        (WebCore::rangeImage):
     41        (WebCore::snapshotDragImage):
     42        * page/win/FrameWin.cpp:
     43        (WebCore::Frame::dragImageForSelection):
     44        (WebCore::Frame::nodeImage):
     45        * page/win/FrameWin.h:
     46        * platform/DragImage.cpp:
     47        (WebCore::fitDragImageToMaxSize):
     48        (WebCore::createDragImageForLink):
     49        * platform/DragImage.h:
     50
    1512013-11-18  Mark Rowe  <mrowe@apple.com>
    252
  • trunk/Source/WebCore/GNUmakefile.list.am

    r159455 r159487  
    41194119        Source/WebCore/page/FrameDestructionObserver.cpp \
    41204120        Source/WebCore/page/FrameDestructionObserver.h \
    4121         Source/WebCore/page/FrameSnapshotting.cpp \
    4122         Source/WebCore/page/FrameSnapshotting.h \
    41234121        Source/WebCore/page/FrameTree.cpp \
    41244122        Source/WebCore/page/FrameTree.h \
  • trunk/Source/WebCore/WebCore.exp.in

    r159455 r159487  
    428428__ZN7WebCore14encodeHostNameEP8NSString
    429429__ZN7WebCore14endOfParagraphERKNS_15VisiblePositionENS_27EditingBoundaryCrossingRuleE
     430__ZN7WebCore14selectionImageEPNS_5FrameEb
    430431__ZN7WebCore14setMetadataURLERN3WTF6StringERKS1_S4_
    431432__ZN7WebCore15AffineTransform5flipYEv
     
    887888__ZN7WebCore27DeviceOrientationClientMock14setOrientationEN3WTF10PassRefPtrINS_21DeviceOrientationDataEEE
    888889__ZN7WebCore27DeviceOrientationClientMockC1Ev
    889 __ZN7WebCore27createDragImageForSelectionERNS_5FrameEb
    890890__ZN7WebCore27protocolHostAndPortAreEqualERKNS_3URLES2_
    891891__ZN7WebCore27startObservingCookieChangesEPFvvE
     
    20332033__ZN7WebCore42contextMenuItemTagCheckSpellingWhileTypingEv
    20342034__ZN7WebCore46contextMenuItemTagCorrectSpellingAutomaticallyEv
     2035__ZN7WebCore5Frame9nodeImageEPNS_4NodeE
    20352036__ZN7WebCore6Cursor8fromTypeENS0_4TypeE
    20362037__ZN7WebCore6CursorC1EPNS_5ImageERKNS_8IntPointE
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r159455 r159487  
    69846984    <ClCompile Include="..\page\Frame.cpp" />
    69856985    <ClCompile Include="..\page\FrameDestructionObserver.cpp" />
    6986     <ClCompile Include="..\page\FrameSnapshotting.cpp" />
    69876986    <ClCompile Include="..\page\FrameTree.cpp" />
    69886987    <ClCompile Include="..\page\FrameView.cpp" />
     
    1882618825    <ClInclude Include="..\page\Frame.h" />
    1882718826    <ClInclude Include="..\page\FrameDestructionObserver.h" />
    18828     <ClInclude Include="..\page\FrameSnapshotting.h" />
    1882918827    <ClInclude Include="..\page\FrameTree.h" />
    1883018828    <ClInclude Include="..\page\FrameView.h" />
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r159455 r159487  
    718718      <Filter>page</Filter>
    719719    </ClCompile>
    720     <ClCompile Include="..\page\FrameSnapshotting.cpp">
    721       <Filter>page</Filter>
    722     </ClCompile>
    723720    <ClCompile Include="..\page\FrameTree.cpp">
    724721      <Filter>page</Filter>
     
    76257622    </ClInclude>
    76267623    <ClInclude Include="..\page\FrameDestructionObserver.h">
    7627       <Filter>page</Filter>
    7628     </ClInclude>
    7629     <ClInclude Include="..\page\FrameSnapshotting.h">
    76307624      <Filter>page</Filter>
    76317625    </ClInclude>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r159485 r159487  
    20062006                65BF022E0974816300C43196 /* Frame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65BF02290974816300C43196 /* Frame.cpp */; };
    20072007                65BF022F0974816300C43196 /* Frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 65BF022A0974816300C43196 /* Frame.h */; settings = {ATTRIBUTES = (Private, ); }; };
     2008                65BF02450974819000C43196 /* FrameMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65BF023C0974819000C43196 /* FrameMac.mm */; };
    20082009                65C97AF308EA908800ACD273 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 65C97AF208EA908800ACD273 /* config.h */; };
    20092010                65CBFEF90974F607001DAC25 /* FrameView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65CBFEF70974F607001DAC25 /* FrameView.cpp */; };
     
    22062207                7C5343FD17B74B63004232F0 /* JSMediaQueryListListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5343FB17B74B63004232F0 /* JSMediaQueryListListener.h */; };
    22072208                7CC7E3D717208C0F003C5277 /* IDNScriptWhiteList.txt in Resources */ = {isa = PBXBuildFile; fileRef = 7CC7E3D617208C0F003C5277 /* IDNScriptWhiteList.txt */; };
     2209                7CE30DA9171B63D200EC33E1 /* FrameSnapshottingMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7CE30DA7171B63D200EC33E1 /* FrameSnapshottingMac.mm */; };
     2210                7CE30DAA171B63D200EC33E1 /* FrameSnapshottingMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE30DA8171B63D200EC33E1 /* FrameSnapshottingMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
    22082211                7D741BDA177226AA00859170 /* CSSValueKeywords.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 6565814809D13043000E61D7 /* CSSValueKeywords.h */; };
    22092212                7E12E90F15FA5D3A005E4126 /* CustomFilterMeshGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E12E90D15FA5D3A005E4126 /* CustomFilterMeshGenerator.h */; };
     
    52425245                C3CF17A615B0063F00276D39 /* IdTargetObserverRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C3CF17A215B0063F00276D39 /* IdTargetObserverRegistry.cpp */; };
    52435246                C3CF17A715B0063F00276D39 /* IdTargetObserverRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C3CF17A315B0063F00276D39 /* IdTargetObserverRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
    5244                 C4CD629A18383766007EBAF1 /* FrameSnapshotting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C4CD629818383766007EBAF1 /* FrameSnapshotting.cpp */; };
    5245                 C4CD629B18383766007EBAF1 /* FrameSnapshotting.h in Headers */ = {isa = PBXBuildFile; fileRef = C4CD629918383766007EBAF1 /* FrameSnapshotting.h */; settings = {ATTRIBUTES = (Private, ); }; };
    52465247                C50B561612119D23008B46E0 /* GroupSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C50B561412119D23008B46E0 /* GroupSettings.cpp */; };
    52475248                C50B561712119D23008B46E0 /* GroupSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = C50B561512119D23008B46E0 /* GroupSettings.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    87418742                65BF02290974816300C43196 /* Frame.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Frame.cpp; sourceTree = "<group>"; };
    87428743                65BF022A0974816300C43196 /* Frame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Frame.h; sourceTree = "<group>"; };
     8744                65BF023C0974819000C43196 /* FrameMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = FrameMac.mm; sourceTree = "<group>"; };
    87438745                65C97AF208EA908800ACD273 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
    87448746                65CBFEF70974F607001DAC25 /* FrameView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FrameView.cpp; sourceTree = "<group>"; };
     
    89688970                7C6136F91710C35200FF4A57 /* StaticString.pm */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; name = StaticString.pm; path = scripts/StaticString.pm; sourceTree = "<group>"; };
    89698971                7CC7E3D617208C0F003C5277 /* IDNScriptWhiteList.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = IDNScriptWhiteList.txt; sourceTree = "<group>"; };
     8972                7CE30DA7171B63D200EC33E1 /* FrameSnapshottingMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FrameSnapshottingMac.mm; sourceTree = "<group>"; };
     8973                7CE30DA8171B63D200EC33E1 /* FrameSnapshottingMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameSnapshottingMac.h; sourceTree = "<group>"; };
    89708974                7E12E90D15FA5D3A005E4126 /* CustomFilterMeshGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomFilterMeshGenerator.h; path = filters/CustomFilterMeshGenerator.h; sourceTree = "<group>"; };
    89718975                7E12E90E15FA5D3A005E4126 /* CustomFilterMeshGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CustomFilterMeshGenerator.cpp; path = filters/CustomFilterMeshGenerator.cpp; sourceTree = "<group>"; };
     
    1227112275                C3CF17A215B0063F00276D39 /* IdTargetObserverRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IdTargetObserverRegistry.cpp; sourceTree = "<group>"; };
    1227212276                C3CF17A315B0063F00276D39 /* IdTargetObserverRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IdTargetObserverRegistry.h; sourceTree = "<group>"; };
    12273                 C4CD629818383766007EBAF1 /* FrameSnapshotting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameSnapshotting.cpp; sourceTree = "<group>"; };
    12274                 C4CD629918383766007EBAF1 /* FrameSnapshotting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameSnapshotting.h; sourceTree = "<group>"; };
    1227512277                C50B561412119D23008B46E0 /* GroupSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GroupSettings.cpp; sourceTree = "<group>"; };
    1227612278                C50B561512119D23008B46E0 /* GroupSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupSettings.h; sourceTree = "<group>"; };
     
    1560615608                                974A862014B7ADBB003FDC76 /* FrameDestructionObserver.cpp */,
    1560715609                                974A862114B7ADBB003FDC76 /* FrameDestructionObserver.h */,
    15608                                 C4CD629818383766007EBAF1 /* FrameSnapshotting.cpp */,
    15609                                 C4CD629918383766007EBAF1 /* FrameSnapshotting.h */,
    1561015610                                65A21482097A3F5300B9050A /* FrameTree.cpp */,
    1561115611                                65A21483097A3F5300B9050A /* FrameTree.h */,
     
    1652216522                                A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */,
    1652316523                                93C09A7E0B064EEF005ABD4D /* EventHandlerMac.mm */,
     16524                                65BF023C0974819000C43196 /* FrameMac.mm */,
     16525                                7CE30DA8171B63D200EC33E1 /* FrameSnapshottingMac.h */,
     16526                                7CE30DA7171B63D200EC33E1 /* FrameSnapshottingMac.mm */,
    1652416527                                1C26497B0D7E24EC00BD10F2 /* PageMac.cpp */,
    1652516528                                E1C2F2481533A2120083F974 /* SettingsMac.mm */,
     
    2212022123                                1A569CFA0D7E2B82007C3983 /* c_instance.h in Headers */,
    2212122124                                1A569CFC0D7E2B82007C3983 /* c_runtime.h in Headers */,
    22122                                 C4CD629B18383766007EBAF1 /* FrameSnapshotting.h in Headers */,
    2212322125                                1A569CFE0D7E2B82007C3983 /* c_utility.h in Headers */,
    2212422126                                BCB16C1A0979C3BD00467741 /* CachedCSSStyleSheet.h in Headers */,
     
    2298022982                                E172AF70180F289500FBADB9 /* CryptoKeyUsage.h in Headers */,
    2298122983                                93309E0E099E64920056E581 /* FrameSelection.h in Headers */,
     22984                                7CE30DAA171B63D200EC33E1 /* FrameSnapshottingMac.h in Headers */,
    2298222985                                65A21485097A3F5300B9050A /* FrameTree.h in Headers */,
    2298322986                                65CBFEFA0974F607001DAC25 /* FrameView.h in Headers */,
     
    2625926262                                D000EBA211BDAFD400C47726 /* FrameLoaderStateMachine.cpp in Sources */,
    2626026263                                86BA766E166427A8005BE5D1 /* FrameLoadRequest.cpp in Sources */,
     26264                                65BF02450974819000C43196 /* FrameMac.mm in Sources */,
    2626126265                                93309E0D099E64920056E581 /* FrameSelection.cpp in Sources */,
    2626226266                                4A8C96EB0BE69032004EEFF0 /* FrameSelectionMac.mm in Sources */,
     26267                                7CE30DA9171B63D200EC33E1 /* FrameSnapshottingMac.mm in Sources */,
    2626326268                                07969DAD17D14151007FF842 /* JSRTCDataChannelEvent.cpp in Sources */,
    2626426269                                65A21484097A3F5300B9050A /* FrameTree.cpp in Sources */,
     
    2776627771                                07277E5217D018CC0015534D /* JSMediaStreamTrack.cpp in Sources */,
    2776727772                                C50D0E820FF4272900AC2644 /* StorageNamespace.cpp in Sources */,
    27768                                 C4CD629A18383766007EBAF1 /* FrameSnapshotting.cpp in Sources */,
    2776927773                                C55E38C010040D5D00A56BDB /* StorageNamespaceImpl.cpp in Sources */,
    2777027774                                1AB09DB416AF5F6C008538E7 /* StorageStrategy.cpp in Sources */,
  • trunk/Source/WebCore/bindings/objc/DOM.mm

    r159455 r159487  
    3737#import "DOMPrivate.h"
    3838#import "DOMRangeInternal.h"
    39 #import "DragImage.h"
    4039#import "Font.h"
    4140#import "Frame.h"
     41#import "FrameSnapshottingMac.h"
    4242#import "HTMLElement.h"
    4343#import "HTMLNames.h"
     
    288288    WebCore::Node* node = core(self);
    289289    WebCore::Frame* frame = node->document().frame();
    290     if (!frame || !node)
    291         return nil;
    292     return [[createDragImageForNode(*frame, *node) retain] autorelease];
     290    if (!frame)
     291        return nil;
     292    return frame->nodeImage(node).get();
    293293}
    294294
     
    333333    WebCore::Range* range = core(self);
    334334    WebCore::Frame* frame = range->ownerDocument().frame();
    335     if (!frame || !range)
    336         return nil;
    337 
    338     return [[createDragImageForRange(*frame, *range, forceBlackText) retain] autorelease];
     335    if (!frame)
     336        return nil;
     337
     338    return WebCore::rangeImage(frame, range, forceBlackText);
    339339}
    340340
  • trunk/Source/WebCore/dom/Clipboard.cpp

    r159455 r159487  
    278278    if (m_dragImageElement) {
    279279        if (Frame* frame = m_dragImageElement->document().frame())
    280             return createDragImageForNode(*frame, *m_dragImageElement);
     280            return frame->nodeImage(m_dragImageElement.get());
    281281    }
    282282
    283     // We do not have enough information to create a drag image, use the default icon.
    284     return nullptr;
     283    return 0; // We do not have enough information to create a drag image, use the default icon.
    285284}
    286285
  • trunk/Source/WebCore/dom/ClipboardMac.mm

    r159455 r159487  
    2929#import "CachedImage.h"
    3030#import "Element.h"
    31 #import "DragImage.h"
     31#import "FrameSnapshottingMac.h"
    3232
    3333namespace WebCore {
     
    3838DragImageRef Clipboard::createDragImage(IntPoint& location) const
    3939{
    40     DragImageRef result = nil;
     40    NSImage *result = nil;
    4141    if (m_dragImageElement) {
    4242        if (Frame* frame = m_dragImageElement->document().frame()) {
    43             IntRect imageRect;
    44             IntRect elementRect;
    45             result = createDragImageForImage(*frame, *m_dragImageElement, imageRect, elementRect);
     43            NSRect imageRect;
     44            NSRect elementRect;
     45            result = snapshotDragImage(frame, m_dragImageElement.get(), &imageRect, &elementRect);
    4646            // Client specifies point relative to element, not the whole image, which may include child
    4747            // layers spread out all over the place.
    48             location.setX(elementRect.x() - imageRect.x() + m_dragLocation.x());
    49             location.setY(imageRect.height() - (elementRect.y() - imageRect.y() + m_dragLocation.y()));
     48            location.setX(elementRect.origin.x - imageRect.origin.x + m_dragLocation.x());
     49            location.setY(imageRect.size.height - (elementRect.origin.y - imageRect.origin.y + m_dragLocation.y()));
    5050        }
    5151    } else if (m_dragImage) {
  • trunk/Source/WebCore/page/DragController.cpp

    r159455 r159487  
    3838#include "DragClient.h"
    3939#include "DragData.h"
    40 #include "DragImage.h"
    4140#include "DragSession.h"
    4241#include "DragState.h"
     
    782781        m_client.willPerformDragSourceAction(DragSourceActionSelection, dragOrigin, clipboard);
    783782        if (!dragImage) {
    784             dragImage = dissolveDragImageToFraction(createDragImageForSelection(src), DragImageAlpha);
     783            dragImage = dissolveDragImageToFraction(src.dragImageForSelection(), DragImageAlpha);
    785784            dragLoc = dragLocForSelectionDrag(src);
    786785            m_dragOffset = IntPoint(dragOrigin.x() - dragLoc.x(), dragOrigin.y() - dragLoc.y());
  • trunk/Source/WebCore/page/Frame.cpp

    r159455 r159487  
    967967}
    968968
     969#if !PLATFORM(MAC) && !PLATFORM(WIN)
     970struct ScopedFramePaintingState {
     971    ScopedFramePaintingState(Frame* frame, Node* node)
     972        : frame(frame)
     973        , node(node)
     974        , paintBehavior(frame->view()->paintBehavior())
     975        , backgroundColor(frame->view()->baseBackgroundColor())
     976    {
     977        ASSERT(!node || node->renderer());
     978        if (node)
     979            node->renderer()->updateDragState(true);
     980    }
     981
     982    ~ScopedFramePaintingState()
     983    {
     984        if (node && node->renderer())
     985            node->renderer()->updateDragState(false);
     986        frame->view()->setPaintBehavior(paintBehavior);
     987        frame->view()->setBaseBackgroundColor(backgroundColor);
     988        frame->view()->setNodeToDraw(0);
     989    }
     990
     991    Frame* frame;
     992    Node* node;
     993    PaintBehavior paintBehavior;
     994    Color backgroundColor;
     995};
     996
     997DragImageRef Frame::nodeImage(Node* node)
     998{
     999    if (!node->renderer())
     1000        return nullptr;
     1001
     1002    const ScopedFramePaintingState state(this, node);
     1003
     1004    m_view->setPaintBehavior(state.paintBehavior | PaintBehaviorFlattenCompositingLayers);
     1005
     1006    // When generating the drag image for an element, ignore the document background.
     1007    m_view->setBaseBackgroundColor(Color::transparent);
     1008    m_doc->updateLayout();
     1009    m_view->setNodeToDraw(node); // Enable special sub-tree drawing mode.
     1010
     1011    // Document::updateLayout may have blown away the original renderer.
     1012    auto renderer = node->renderer();
     1013    if (!renderer)
     1014        return nullptr;
     1015
     1016    LayoutRect topLevelRect;
     1017    IntRect paintingRect = pixelSnappedIntRect(renderer->paintingRootRect(topLevelRect));
     1018
     1019    float deviceScaleFactor = 1;
     1020    if (m_page)
     1021        deviceScaleFactor = m_page->deviceScaleFactor();
     1022    paintingRect.setWidth(paintingRect.width() * deviceScaleFactor);
     1023    paintingRect.setHeight(paintingRect.height() * deviceScaleFactor);
     1024
     1025    OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size(), deviceScaleFactor, ColorSpaceDeviceRGB));
     1026    if (!buffer)
     1027        return nullptr;
     1028    buffer->context()->translate(-paintingRect.x(), -paintingRect.y());
     1029    buffer->context()->clip(FloatRect(0, 0, paintingRect.maxX(), paintingRect.maxY()));
     1030
     1031    m_view->paintContents(buffer->context(), paintingRect);
     1032
     1033    RefPtr<Image> image = buffer->copyImage();
     1034
     1035    ImageOrientationDescription orientationDescription(renderer->shouldRespectImageOrientation());
     1036#if ENABLE(CSS_IMAGE_ORIENTATION)
     1037    orientationDescription.setImageOrientationEnum(renderer->style().imageOrientation());
     1038#endif
     1039    return createDragImageFromImage(image.get(), orientationDescription);
     1040}
     1041
     1042DragImageRef Frame::dragImageForSelection()
     1043{
     1044    if (!selection().isRange())
     1045        return 0;
     1046
     1047    const ScopedFramePaintingState state(this, 0);
     1048    m_view->setPaintBehavior(PaintBehaviorSelectionOnly);
     1049    m_doc->updateLayout();
     1050
     1051    IntRect paintingRect = enclosingIntRect(selection().bounds());
     1052
     1053    float deviceScaleFactor = 1;
     1054    if (m_page)
     1055        deviceScaleFactor = m_page->deviceScaleFactor();
     1056    paintingRect.setWidth(paintingRect.width() * deviceScaleFactor);
     1057    paintingRect.setHeight(paintingRect.height() * deviceScaleFactor);
     1058
     1059    OwnPtr<ImageBuffer> buffer(ImageBuffer::create(paintingRect.size(), deviceScaleFactor, ColorSpaceDeviceRGB));
     1060    if (!buffer)
     1061        return 0;
     1062    buffer->context()->translate(-paintingRect.x(), -paintingRect.y());
     1063    buffer->context()->clip(FloatRect(0, 0, paintingRect.maxX(), paintingRect.maxY()));
     1064
     1065    m_view->paintContents(buffer->context(), paintingRect);
     1066
     1067    RefPtr<Image> image = buffer->copyImage();
     1068    return createDragImageFromImage(image.get(), ImageOrientationDescription());
     1069}
     1070
     1071#endif
     1072
    9691073} // namespace WebCore
  • trunk/Source/WebCore/page/Frame.h

    r159455 r159487  
    3030
    3131#include "AdjustViewSizeOrNot.h"
     32#include "DragImage.h"
    3233#include "FrameLoader.h"
    3334#include "FrameTree.h"
     
    5859    class Element;
    5960    class EventHandler;
    60     class FloatSize;
    6161    class FrameDestructionObserver;
    6262    class FrameSelection;
     
    6464    class HTMLFrameOwnerElement;
    6565    class HTMLTableCellElement;
    66     class ImageBuffer;
    6766    class IntRect;
    6867    class MainFrame;
     
    179178        String displayStringModifiedByEncoding(const String&) const;
    180179
     180        DragImageRef nodeImage(Node*);
     181        DragImageRef dragImageForSelection();
     182
    181183        VisiblePosition visiblePositionForPoint(const IntPoint& framePoint);
    182184        Document* documentAtPoint(const IntPoint& windowPoint);
  • trunk/Source/WebCore/page/mac/FrameMac.mm

    r159486 r159487  
    11/*
    2  * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
     2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
     3 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
     4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
    35 *
    46 * Redistribution and use in source and binary forms, with or without
     
    2426 */
    2527
    26 #ifndef FrameWin_h
    27 #define FrameWin_h
     28#import "config.h"
     29#import "Frame.h"
    2830
    29 #include <wtf/Vector.h>
    30 #include <wtf/win/GDIObject.h>
     31#import "Document.h"
     32#import "FrameLoaderClient.h"
     33#import "FrameSelection.h"
     34#import "FrameSnapshottingMac.h"
     35#import "FrameView.h"
     36#import "RenderObject.h"
    3137
    3238namespace WebCore {
    3339
    34 class Frame;
    35 class IntRect;
     40DragImageRef Frame::nodeImage(Node* node)
     41{
     42    m_doc->updateLayout(); // forces style recalc
    3643
    37 GDIObject<HBITMAP> imageFromRect(const Frame*, IntRect&);
    38 GDIObject<HBITMAP> imageFromSelection(Frame*, bool forceBlackText);
    39 void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& outPages, int& outPageHeight);
     44    RenderObject* renderer = node->renderer();
     45    if (!renderer)
     46        return nil;
     47    LayoutRect topLevelRect;
     48    NSRect paintingRect = pixelSnappedIntRect(renderer->paintingRootRect(topLevelRect));
     49
     50    m_view->setNodeToDraw(node); // invoke special sub-tree drawing mode
     51    NSImage* result = imageFromRect(this, paintingRect);
     52    m_view->setNodeToDraw(0);
     53
     54    return result;
     55}
     56
     57DragImageRef Frame::dragImageForSelection()
     58{
     59    if (!selection().isRange())
     60        return nil;
     61    return selectionImage(this);
     62}
    4063
    4164} // namespace WebCore
    42 
    43 #endif // FrameWin_h
  • trunk/Source/WebCore/page/mac/FrameSnapshottingMac.h

    r159486 r159487  
    11/*
    2  * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
     2 * Copyright (C) 2013 Apple Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2424 */
    2525
    26 #ifndef FrameWin_h
    27 #define FrameWin_h
     26#ifndef FrameSnapshottingMac_h
     27#define FrameSnapshottingMac_h
    2828
    29 #include <wtf/Vector.h>
    30 #include <wtf/win/GDIObject.h>
     29OBJC_CLASS NSImage;
    3130
    3231namespace WebCore {
    3332
    3433class Frame;
    35 class IntRect;
     34class Range;
     35class Node;
    3636
    37 GDIObject<HBITMAP> imageFromRect(const Frame*, IntRect&);
    38 GDIObject<HBITMAP> imageFromSelection(Frame*, bool forceBlackText);
    39 void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& outPages, int& outPageHeight);
     37NSImage* selectionImage(Frame*, bool forceBlackText = false);
     38NSImage* rangeImage(Frame*, Range*, bool forceBlackText = false);
     39NSImage* snapshotDragImage(Frame*, Node*, NSRect* imageRect, NSRect* elementRect);
     40NSImage* imageFromRect(Frame*, NSRect);
    4041
    41 } // namespace WebCore
     42}
    4243
    43 #endif // FrameWin_h
     44#endif // FrameSnapshottingMac_h
  • trunk/Source/WebCore/page/win/FrameWin.cpp

    r159455 r159487  
    5858}
    5959
     60DragImageRef Frame::dragImageForSelection()
     61{
     62    if (selection().isRange())
     63        return imageFromSelection(this, false).leak();
     64
     65    return 0;
     66}
     67
     68DragImageRef Frame::nodeImage(Node* node)
     69{
     70    document()->updateLayout();
     71
     72    RenderObject* renderer = node->renderer();
     73    if (!renderer)
     74        return 0;
     75
     76    LayoutRect topLevelRect;
     77    IntRect paintingRect = pixelSnappedIntRect(renderer->paintingRootRect(topLevelRect));
     78
     79    m_view->setNodeToDraw(node); // invoke special sub-tree drawing mode
     80    GDIObject<HBITMAP> result = imageFromRect(this, paintingRect);
     81    m_view->setNodeToDraw(0);
     82
     83    return result.leak();
     84}
     85
    6086} // namespace WebCore
  • trunk/Source/WebCore/page/win/FrameWin.h

    r159455 r159487  
    3636
    3737GDIObject<HBITMAP> imageFromRect(const Frame*, IntRect&);
    38 GDIObject<HBITMAP> imageFromSelection(Frame*, bool forceBlackText);
     38GDIObject<HBITMAP> imageFromSelection(Frame*, bool forceWhiteText);
    3939void computePageRectsForFrame(Frame*, const IntRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, Vector<IntRect>& outPages, int& outPageHeight);
    4040
  • trunk/Source/WebCore/platform/DragImage.cpp

    r159455 r159487  
    2121 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    2222 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    2424 */
    2525
     
    2929#if ENABLE(DRAG_SUPPORT)
    3030
    31 #include "Frame.h"
    32 #include "FrameSnapshotting.h"
    33 #include "FrameView.h"
    34 #include "ImageBuffer.h"
    35 #include "Range.h"
    36 #include "RenderObject.h"
    37 #include "RenderView.h"
    38 
    3931namespace WebCore {
    40 
     32   
    4133DragImageRef fitDragImageToMaxSize(DragImageRef image, const IntSize& srcSize, const IntSize& size)
    4234{
     
    4537    float resizeRatio = -1.0f;
    4638    IntSize originalSize = dragImageSize(image);
    47 
     39   
    4840    if (srcSize.width() > size.width()) {
    4941        widthResizeRatio = size.width() / (float)srcSize.width();
    5042        resizeRatio = widthResizeRatio;
    5143    }
    52 
     44   
    5345    if (srcSize.height() > size.height()) {
    5446        heightResizeRatio = size.height() / (float)srcSize.height();
     
    5648            resizeRatio = heightResizeRatio;
    5749    }
    58 
     50   
    5951    if (srcSize == originalSize)
    6052        return resizeRatio > 0.0f ? scaleDragImage(image, FloatSize(resizeRatio, resizeRatio)) : image;
    61 
     53   
    6254    // The image was scaled in the webpage so at minimum we must account for that scaling
    6355    float scalex = srcSize.width() / (float)originalSize.width();
     
    6759        scaley *= resizeRatio;
    6860    }
    69 
     61   
    7062    return scaleDragImage(image, FloatSize(scalex, scaley));
    71 }
    72 
    73 struct ScopedNodeDragState {
    74     ScopedNodeDragState(Frame& frame, Node& node)
    75     : frame(frame)
    76     , node(node)
    77     {
    78         ASSERT(node.renderer());
    79         node.renderer()->updateDragState(true);
    80         frame.document()->updateLayout();
    81     }
    82 
    83     ~ScopedNodeDragState()
    84     {
    85         if (node.renderer()) {
    86             node.renderer()->updateDragState(false);
    87             frame.document()->updateLayout();
    88         }
    89     }
    90 
    91     Frame& frame;
    92     Node& node;
    93 };
    94 
    95 static DragImageRef createDragImageFromSnapshot(std::unique_ptr<ImageBuffer> snapshot, Node* node)
    96 {
    97     if (!snapshot)
    98         return nullptr;
    99 
    100     ImageOrientationDescription orientation;
    101 #if ENABLE(CSS_IMAGE_ORIENTATION)
    102     if (node) {
    103         RenderObject* renderer = node->renderer();
    104         if (!renderer)
    105             return nullptr;
    106 
    107         orientation.setRespectImageOrientation(renderer->shouldRespectImageOrientation());
    108         orientation.setImageOrientationEnum(renderer->style().imageOrientation());
    109     }
    110 #else
    111     UNUSED_PARAM(node);
    112 #endif
    113     RefPtr<Image> image = snapshot->copyImage(ImageBuffer::fastCopyImageMode());
    114     if (!image)
    115         return nullptr;
    116     return createDragImageFromImage(image.get(), orientation);
    117 }
    118 
    119 DragImageRef createDragImageForNode(Frame& frame, Node& node)
    120 {
    121     ScopedNodeDragState enableDrag(frame, node);
    122     std::unique_ptr<ImageBuffer> snapshot = snapshotNode(frame, node);
    123     return createDragImageFromSnapshot(std::move(snapshot), &node);
    124 }
    125 
    126 DragImageRef createDragImageForSelection(Frame& frame, bool forceBlackText)
    127 {
    128     SnapshotOptions options = forceBlackText ? SnapshotOptionsForceBlackText : SnapshotOptionsNone;
    129     std::unique_ptr<ImageBuffer> snapshot = snapshotSelection(frame, options);
    130     return createDragImageFromSnapshot(std::move(snapshot), nullptr);
    131 }
    132 
    133 struct ScopedFrameSelectionState {
    134     ScopedFrameSelectionState(Frame& frame)
    135     : frame(frame)
    136     {
    137         if (RenderView* root = frame.contentRenderer())
    138             root->getSelection(startRenderer, startOffset, endRenderer, endOffset);
    139     }
    140 
    141     ~ScopedFrameSelectionState()
    142     {
    143         if (RenderView* root = frame.contentRenderer())
    144             root->setSelection(startRenderer, startOffset, endRenderer, endOffset, RenderView::RepaintNothing);
    145     }
    146 
    147     Frame& frame;
    148     RenderObject* startRenderer;
    149     RenderObject* endRenderer;
    150     int startOffset;
    151     int endOffset;
    152 };
    153 
    154 DragImageRef createDragImageForRange(Frame& frame, Range& range, bool forceBlackText)
    155 {
    156     frame.document()->updateLayout();
    157     RenderView* view = frame.contentRenderer();
    158     if (!view)
    159         return nullptr;
    160 
    161     // To snapshot the range, temporarily select it and take selection snapshot.
    162     Position start = range.startPosition();
    163     Position candidate = start.downstream();
    164     if (candidate.deprecatedNode() && candidate.deprecatedNode()->renderer())
    165         start = candidate;
    166 
    167     Position end = range.endPosition();
    168     candidate = end.upstream();
    169     if (candidate.deprecatedNode() && candidate.deprecatedNode()->renderer())
    170         end = candidate;
    171 
    172     if (start.isNull() || end.isNull() || start == end)
    173         return nullptr;
    174 
    175     const ScopedFrameSelectionState selectionState(frame);
    176 
    177     RenderObject* startRenderer = start.deprecatedNode()->renderer();
    178     RenderObject* endRenderer = end.deprecatedNode()->renderer();
    179     if (!startRenderer || !endRenderer)
    180         return nullptr;
    181 
    182     SnapshotOptions options = forceBlackText ? SnapshotOptionsForceBlackText : SnapshotOptionsNone;
    183     view->setSelection(startRenderer, start.deprecatedEditingOffset(), endRenderer, end.deprecatedEditingOffset(), RenderView::RepaintNothing);
    184     std::unique_ptr<ImageBuffer> snapshot = snapshotSelection(frame, options);
    185     return createDragImageFromSnapshot(std::move(snapshot), nullptr);
    186 }
    187 
    188 DragImageRef createDragImageForImage(Frame& frame, Node& node, IntRect& imageRect, IntRect& elementRect)
    189 {
    190     ScopedNodeDragState enableDrag(frame, node);
    191 
    192     RenderObject* renderer = node.renderer();
    193     if (!renderer)
    194         return nullptr;
    195 
    196     // Calculate image and element metrics for the client, then create drag image.
    197     LayoutRect topLevelRect;
    198     IntRect paintingRect = pixelSnappedIntRect(renderer->paintingRootRect(topLevelRect));
    199 
    200     if (paintingRect.isEmpty())
    201         return nullptr;
    202 
    203     elementRect = pixelSnappedIntRect(topLevelRect);
    204     imageRect = paintingRect;
    205 
    206     std::unique_ptr<ImageBuffer> snapshot = snapshotNode(frame, node);
    207     return createDragImageFromSnapshot(std::move(snapshot), &node);
    20863}
    20964
     
    21166DragImageRef createDragImageForLink(URL&, const String&, FontRenderingMode)
    21267{
    213     return nullptr;
     68    return 0;
    21469}
    21570#endif
  • trunk/Source/WebCore/platform/DragImage.h

    r159455 r159487  
    2727#define DragImage_h
    2828
    29 #include "FloatSize.h"
    3029#include "FontRenderingMode.h"
    31 #include "FrameSnapshotting.h"
    3230#include "ImageOrientation.h"
    3331#include "IntSize.h"
     32#include "FloatSize.h"
    3433#include <wtf/Forward.h>
    3534
     
    4342#endif
    4443
    45 // We need to #define YOffset as it needs to be shared with WebKit
     44//We need to #define YOffset as it needs to be shared with WebKit
    4645#define DragLabelBorderYOffset 2
    4746
    4847namespace WebCore {
    4948
    50 class Frame;
    51 class Image;
    52 class IntRect;
    53 class Node;
    54 class Range;
    55 class URL;
     49    class Image;
     50    class URL;
    5651
    5752#if PLATFORM(MAC)
    58 typedef RetainPtr<NSImage> DragImageRef;
     53    typedef RetainPtr<NSImage> DragImageRef;
    5954#elif PLATFORM(WIN)
    60 typedef HBITMAP DragImageRef;
     55    typedef HBITMAP DragImageRef;
    6156#elif PLATFORM(GTK) || PLATFORM(NIX)
    62 typedef cairo_surface_t* DragImageRef;
     57    typedef cairo_surface_t* DragImageRef;
    6358#elif PLATFORM(EFL) || PLATFORM(BLACKBERRY)
    64 typedef void* DragImageRef;
     59    typedef void* DragImageRef;
    6560#endif
    66 
    67 IntSize dragImageSize(DragImageRef);
    68 
    69 // These functions should be memory neutral, eg. if they return a newly allocated image,
    70 // they should release the input image. As a corollary these methods don't guarantee
    71 // the input image ref will still be valid after they have been called.
    72 DragImageRef fitDragImageToMaxSize(DragImageRef, const IntSize& srcSize, const IntSize& dstSize);
    73 DragImageRef scaleDragImage(DragImageRef, FloatSize scale);
    74 DragImageRef dissolveDragImageToFraction(DragImageRef, float delta);
    75 
    76 DragImageRef createDragImageFromImage(Image*, ImageOrientationDescription);
    77 DragImageRef createDragImageIconForCachedImageFilename(const String&);
    78 
    79 DragImageRef createDragImageForNode(Frame&, Node&);
    80 DragImageRef createDragImageForSelection(Frame&, bool forceBlackText = false);
    81 DragImageRef createDragImageForRange(Frame&, Range&, bool forceBlackText = false);
    82 DragImageRef createDragImageForImage(Frame&, Node&, IntRect& imageRect, IntRect& elementRect);
    83 DragImageRef createDragImageForLink(URL&, const String& label, FontRenderingMode);
    84 void deleteDragImage(DragImageRef);
     61   
     62    IntSize dragImageSize(DragImageRef);
     63   
     64    //These functions should be memory neutral, eg. if they return a newly allocated image,
     65    //they should release the input image.  As a corollary these methods don't guarantee
     66    //the input image ref will still be valid after they have been called
     67    DragImageRef fitDragImageToMaxSize(DragImageRef image, const IntSize& srcSize, const IntSize& size);
     68    DragImageRef scaleDragImage(DragImageRef, FloatSize scale);
     69    DragImageRef dissolveDragImageToFraction(DragImageRef image, float delta);
     70   
     71    DragImageRef createDragImageFromImage(Image*, ImageOrientationDescription);
     72    DragImageRef createDragImageIconForCachedImageFilename(const String&);
     73    DragImageRef createDragImageForLink(URL&, const String& label, FontRenderingMode);
     74    void deleteDragImage(DragImageRef);
    8575}
    8676
    87 #endif // DragImage_h
     77
     78#endif //!DragImage_h
  • trunk/Source/WebKit/ios/ChangeLog

    r159455 r159487  
     12013-11-18  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r159455.
     4        http://trac.webkit.org/changeset/159455
     5        https://bugs.webkit.org/show_bug.cgi?id=124568
     6
     7        broke two api tests (see bug 124564) (Requested by thorton on
     8        #webkit).
     9
     10        * WebCoreSupport/WebFrameIOS.mm:
     11
    1122013-11-18  Brian J. Burg  <burg@cs.washington.edu>
    213
  • trunk/Source/WebKit/ios/WebCoreSupport/WebFrameIOS.mm

    r159455 r159487  
    3434#import <WebCore/Frame.h>
    3535#import <WebCore/FrameSelection.h>
    36 #import <WebCore/FrameSnapshotting.h>
     36#import <WebCore/FrameSnapshottingMac.h>
    3737#import <WebCore/FrameView.h>
    3838#import <WebCore/HitTestResult.h>
  • trunk/Source/WebKit/mac/ChangeLog

    r159480 r159487  
     12013-11-18  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r159455.
     4        http://trac.webkit.org/changeset/159455
     5        https://bugs.webkit.org/show_bug.cgi?id=124568
     6
     7        broke two api tests (see bug 124564) (Requested by thorton on
     8        #webkit).
     9
     10        * WebView/WebHTMLView.mm:
     11        (-[WebHTMLView _selectionDraggingImage]):
     12        (-[WebHTMLView selectionImageForcingBlackText:]):
     13
    1142013-11-18  Mark Rowe  <mrowe@apple.com>
    215
  • trunk/Source/WebKit/mac/WebView/WebHTMLView.mm

    r159455 r159487  
    8686#import <WebCore/DocumentMarkerController.h>
    8787#import <WebCore/DragController.h>
    88 #import <WebCore/DragImage.h>
    8988#import <WebCore/Editor.h>
    9089#import <WebCore/EditorDeleteAction.h>
     
    9796#import <WebCore/FrameLoader.h>
    9897#import <WebCore/FrameSelection.h>
     98#import <WebCore/FrameSnapshottingMac.h>
    9999#import <WebCore/FrameView.h>
    100100#import <WebCore/HTMLConverter.h>
     
    18211821    if (![self _hasSelection])
    18221822        return nil;
    1823 
    1824     Frame* coreFrame = core([self _frame]);
    1825     if (!coreFrame)
    1826         return nil;
    1827 
    1828     NSImage *dragImage = [[createDragImageForSelection(*coreFrame) retain] autorelease];
     1823    NSImage *dragImage = selectionImage(core([self _frame]));
    18291824    [dragImage _web_dissolveToFraction:WebDragImageAlpha];
    18301825    return dragImage;
     
    59715966    if (![self _hasSelection])
    59725967        return nil;
    5973 
    5974     Frame* coreFrame = core([self _frame]);
    5975     if (!coreFrame)
    5976         return nil;
    5977     return [[createDragImageForSelection(*coreFrame, forceBlackText) retain] autorelease];
     5968    return selectionImage(core([self _frame]), forceBlackText);
    59785969}
    59795970
  • trunk/Source/WebKit/win/ChangeLog

    r159473 r159487  
     12013-11-18  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, rolling out r159455.
     4        http://trac.webkit.org/changeset/159455
     5        https://bugs.webkit.org/show_bug.cgi?id=124568
     6
     7        broke two api tests (see bug 124564) (Requested by thorton on
     8        #webkit).
     9
     10        * DOMCoreClasses.cpp:
     11        (DOMElement::renderedImage):
     12
    1132013-11-18  Commit Queue  <commit-queue@webkit.org>
    214
  • trunk/Source/WebKit/win/DOMCoreClasses.cpp

    r159455 r159487  
    3737#include <WebCore/DOMWindow.h>
    3838#include <WebCore/Document.h>
    39 #include <WebCore/DragImage.h>
    4039#include <WebCore/Element.h>
    4140#include <WebCore/Font.h>
    4241#include <WebCore/Frame.h>
     42#include <WebCore/SimpleFontData.h>
    4343#include <WebCore/HTMLFormElement.h>
    4444#include <WebCore/HTMLInputElement.h>
     
    5050#include <WebCore/RenderElement.h>
    5151#include <WebCore/RenderTreeAsText.h>
    52 #include <WebCore/SimpleFontData.h>
    5352
    5453#include <initguid.h>
     
    12811280        return E_FAIL;
    12821281
    1283     *image = createDragImageForNode(*frame, *m_element);
     1282    *image = frame->nodeImage(m_element);
    12841283    if (!*image)
    12851284        return E_FAIL;
Note: See TracChangeset for help on using the changeset viewer.