Changeset 173686 in webkit
- Timestamp:
- Sep 16, 2014, 11:27:46 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 15 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/page/DragController.cpp (modified) (8 diffs)
-
WebCore/page/DragController.h (modified) (3 diffs)
-
WebCore/page/efl/DragControllerEfl.cpp (modified) (3 diffs)
-
WebCore/page/gtk/DragControllerGtk.cpp (modified) (4 diffs)
-
WebCore/page/mac/DragControllerMac.mm (modified) (4 diffs)
-
WebCore/page/win/DragControllerWin.cpp (modified) (3 diffs)
-
WebCore/platform/DragData.h (modified) (2 diffs)
-
WebCore/platform/efl/DragDataEfl.cpp (modified) (3 diffs)
-
WebCore/platform/gtk/DragDataGtk.cpp (modified) (4 diffs)
-
WebCore/platform/mac/DragDataMac.mm (modified) (8 diffs)
-
WebCore/platform/win/ClipboardUtilitiesWin.h (modified) (1 diff)
-
WebCore/platform/win/DragDataWin.cpp (modified) (6 diffs)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/UIProcess/WebPageProxy.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r173684 r173686 1 2014-09-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 DragData should not depend on Clipboard, DocumentFragment, and Document 4 https://bugs.webkit.org/show_bug.cgi?id=21358 5 6 Reviewed by Darin Adler. 7 8 Refactor DragData to not depend on Frame, DocumentFragment, 9 Document and Range. DragData::asFragment() has been moved to 10 DragController and implemented in the platform specific file. 11 DragData methods using Frame has been reworked in Mac to not use 12 Frame, since all other ports were ignoreing the frame parameter. 13 14 * page/DragController.cpp: 15 (WebCore::DragController::documentFragmentFromDragData): Make it 16 a static member to be able to use createFragmentFromDragData(). 17 (WebCore::DragController::performDragOperation): Update to 18 DragData API changes. 19 (WebCore::DragController::dispatchTextInputEventFor): Ditto. 20 (WebCore::DragController::concludeEditDrag): Ditto. 21 (WebCore::documentFragmentFromDragData): Deleted. 22 * page/DragController.h: 23 * page/efl/DragControllerEfl.cpp: 24 (WebCore::DragController::createFragmentFromDragData): Move 25 DragData::asFragment() implementation here. 26 * page/gtk/DragControllerGtk.cpp: 27 (WebCore::DragController::dragOperation): 28 (WebCore::DragController::createFragmentFromDragData): Ditto. 29 * page/mac/DragControllerMac.mm: 30 (WebCore::DragController::dragOperation): 31 (WebCore::DragController::createFragmentFromDragData): Ditto. 32 * page/win/DragControllerWin.cpp: 33 (WebCore::DragController::createFragmentFromDragData): Ditto. 34 * platform/DragData.h: 35 * platform/efl/DragDataEfl.cpp: 36 (WebCore::DragData::asPlainText): Remove Frame parameter. 37 (WebCore::DragData::containsURL): Ditto. 38 (WebCore::DragData::asURL): Ditto. 39 (WebCore::DragData::asFragment): Deleted. 40 * platform/gtk/DragDataGtk.cpp: 41 (WebCore::DragData::asPlainText): Remove Frame parameter. 42 (WebCore::DragData::containsCompatibleContent): 43 (WebCore::DragData::containsURL): Ditto. 44 (WebCore::DragData::asURL): Ditto. 45 (WebCore::DragData::asFragment): Deleted. 46 * platform/mac/DragDataMac.mm: 47 (WebCore::DragData::asPlainText): Same implementation as the 48 Editor. 49 (WebCore::DragData::containsURL): Remove Frame parameter. 50 (WebCore::DragData::asURL): Use URLByCanonicalizingURL() instead 51 of using the Editor client. 52 (WebCore::DragData::asFragment): Deleted. 53 * platform/win/DragDataWin.cpp: 54 (WebCore::DragData::containsURL): Remove Frame parameter. 55 (WebCore::DragData::asURL): Ditto. 56 (WebCore::DragData::asPlainText): Ditto. 57 (WebCore::DragData::containsCompatibleContent): 58 (WebCore::DragData::asFragment): Deleted. 59 1 60 2014-09-16 Chris Dumez <cdumez@apple.com> 2 61 -
trunk/Source/WebCore/page/DragController.cpp
r173664 r173686 115 115 } 116 116 117 static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData& dragData, Frame*frame, Range& context, bool allowPlainText, bool& chosePlainText)117 PassRefPtr<DocumentFragment> DragController::documentFragmentFromDragData(DragData& dragData, Frame& frame, Range& context, bool allowPlainText, bool& chosePlainText) 118 118 { 119 119 chosePlainText = false; … … 121 121 Document& document = context.ownerDocument(); 122 122 if (dragData.containsCompatibleContent()) { 123 if (PassRefPtr<DocumentFragment> fragment = dragData.asFragment(frame, context, allowPlainText, chosePlainText))123 if (PassRefPtr<DocumentFragment> fragment = createFragmentFromDragData(dragData, frame, context, allowPlainText, chosePlainText)) 124 124 return fragment; 125 125 126 if (dragData.containsURL( frame,DragData::DoNotConvertFilenames)) {126 if (dragData.containsURL(DragData::DoNotConvertFilenames)) { 127 127 String title; 128 String url = dragData.asURL( frame,DragData::DoNotConvertFilenames, &title);128 String url = dragData.asURL(DragData::DoNotConvertFilenames, &title); 129 129 if (!url.isEmpty()) { 130 130 RefPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(document); … … 133 133 // Try the plain text first because the url might be normalized or escaped. 134 134 if (dragData.containsPlainText()) 135 title = dragData.asPlainText( frame);135 title = dragData.asPlainText(); 136 136 if (title.isEmpty()) 137 137 title = url; … … 147 147 if (allowPlainText && dragData.containsPlainText()) { 148 148 chosePlainText = true; 149 return createFragmentFromText(context, dragData.asPlainText( frame)).get();149 return createFragmentFromText(context, dragData.asPlainText()).get(); 150 150 } 151 151 … … 235 235 236 236 m_client.willPerformDragDestinationAction(DragDestinationActionLoad, dragData); 237 m_page.mainFrame().loader().load(FrameLoadRequest(&m_page.mainFrame(), ResourceRequest(dragData.asURL( &m_page.mainFrame()))));237 m_page.mainFrame().loader().load(FrameLoadRequest(&m_page.mainFrame(), ResourceRequest(dragData.asURL()))); 238 238 return true; 239 239 } … … 426 426 { 427 427 ASSERT(m_page.dragCaretController().hasCaret()); 428 String text = m_page.dragCaretController().isContentRichlyEditable() ? emptyString() : dragData.asPlainText( innerFrame);428 String text = m_page.dragCaretController().isContentRichlyEditable() ? emptyString() : dragData.asPlainText(); 429 429 Node* target = innerFrame->editor().findEventTargetFrom(m_page.dragCaretController().caretPosition()); 430 430 return target->dispatchEvent(TextEvent::createForDrop(innerFrame->document()->domWindow(), text), IGNORE_EXCEPTION); … … 495 495 if (dragIsMove(innerFrame->selection(), dragData) || dragCaret.isContentRichlyEditable()) { 496 496 bool chosePlainText = false; 497 RefPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, innerFrame.get(), *range, true, chosePlainText);497 RefPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, *innerFrame, *range, true, chosePlainText); 498 498 if (!fragment || !innerFrame->editor().shouldInsertFragment(fragment, range, EditorInsertActionDropped)) { 499 499 return false; … … 518 518 } 519 519 } else { 520 String text = dragData.asPlainText( innerFrame.get());520 String text = dragData.asPlainText(); 521 521 if (text.isEmpty() || !innerFrame->editor().shouldInsertText(text, range.get(), EditorInsertActionDropped)) { 522 522 return false; -
trunk/Source/WebCore/page/DragController.h
r172814 r173686 36 36 class DataTransfer; 37 37 class Document; 38 class DocumentFragment; 38 39 class DragClient; 39 40 class DragData; … … 45 46 class Page; 46 47 class PlatformMouseEvent; 48 class Range; 47 49 48 50 struct DragState; … … 114 116 void declareAndWriteDragImage(DataTransfer&, Element&, const URL&, const String& label); 115 117 118 // FIXME: Move createFragmentFromDragData implementation to the Editor and make documentFragmentFromDragData a static function again. 119 static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData&, Frame&, Range&, bool allowPlainText, bool& chosePlainText); 120 static PassRefPtr<DocumentFragment> createFragmentFromDragData(DragData&, Frame&, Range&, bool allowPlainText, bool& chosePlainText); 121 116 122 Page& m_page; 117 123 DragClient& m_client; -
trunk/Source/WebCore/page/efl/DragControllerEfl.cpp
r166991 r173686 30 30 #include "DragController.h" 31 31 32 #include "Document.h" 33 #include "DocumentFragment.h" 32 34 #include "DragData.h" 33 35 #include "Frame.h" … … 51 53 DragOperation DragController::dragOperation(DragData& dragData) 52 54 { 53 if (dragData.containsURL( 0))55 if (dragData.containsURL()) 54 56 return DragOperationCopy; 55 57 … … 72 74 } 73 75 76 PassRefPtr<DocumentFragment> DragController::createFragmentFromDragData(DragData&, Frame&, Range&, bool /*allowPlainText*/, bool& /*chosePlainText*/) 77 { 78 return nullptr; 74 79 } 80 81 } -
trunk/Source/WebCore/page/gtk/DragControllerGtk.cpp
r166965 r173686 27 27 #include "DragController.h" 28 28 29 #include "DataObjectGtk.h" 29 30 #include "DataTransfer.h" 31 #include "Document.h" 32 #include "DocumentFragment.h" 30 33 #include "DragData.h" 31 34 #include "Element.h" … … 34 37 #include "Page.h" 35 38 #include "Pasteboard.h" 39 #include "markup.h" 36 40 37 41 namespace WebCore { … … 54 58 { 55 59 // FIXME: This logic is incomplete 56 if (dragData.containsURL( 0))60 if (dragData.containsURL()) 57 61 return DragOperationCopy; 58 62 … … 75 79 } 76 80 81 PassRefPtr<DocumentFragment> DragController::createFragmentFromDragData(DragData& dragData, Frame& frame, Range&, bool /*allowPlainText*/, bool& /*chosePlainText*/) 82 { 83 if (!dragData.platformData()->hasMarkup() || !frame.document()) 84 return nullptr; 85 86 return createFragmentFromMarkup(*frame.document(), dragData.platformData()->markup(), ""); 77 87 } 88 89 } -
trunk/Source/WebCore/page/mac/DragControllerMac.mm
r166965 r173686 30 30 31 31 #import "DataTransfer.h" 32 #import "Document.h" 33 #import "DocumentFragment.h" 32 34 #import "DragClient.h" 33 35 #import "DragData.h" 36 #import "Editor.h" 37 #import "EditorClient.h" 34 38 #import "Element.h" 35 39 #import "FrameView.h" … … 37 41 #import "Page.h" 38 42 #import "Pasteboard.h" 43 #import "Range.h" 39 44 40 45 namespace WebCore { … … 55 60 DragOperation DragController::dragOperation(DragData& dragData) 56 61 { 57 if ((dragData.flags() & DragApplicationIsModal) || !dragData.containsURL( &m_page.mainFrame()))62 if ((dragData.flags() & DragApplicationIsModal) || !dragData.containsURL()) 58 63 return DragOperationNone; 59 64 … … 88 93 } 89 94 95 PassRefPtr<DocumentFragment> DragController::createFragmentFromDragData(DragData& dragData, Frame& frame, Range& context, bool allowPlainText, bool& chosePlainText) 96 { 97 Pasteboard pasteboard(dragData.pasteboardName()); 98 return frame.editor().webContentFromPasteboard(pasteboard, context, allowPlainText, chosePlainText); 99 } 100 90 101 } // namespace WebCore 91 102 -
trunk/Source/WebCore/page/win/DragControllerWin.cpp
r166965 r173686 27 27 #include "DragController.h" 28 28 29 #include "ClipboardUtilitiesWin.h" 29 30 #include "DataTransfer.h" 31 #include "Document.h" 32 #include "DocumentFragment.h" 30 33 #include "DragData.h" 31 34 #include "Element.h" 35 #include "Frame.h" 32 36 #include "FrameSelection.h" 33 37 #include "Pasteboard.h" … … 51 55 //If this can be determined from within WebCore operationForDrag can be pulled into 52 56 //WebCore itself 53 return dragData.containsURL( 0) && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;57 return dragData.containsURL() && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone; 54 58 } 55 59 … … 84 88 } 85 89 90 template <typename PlatformDragData> 91 static PassRefPtr<DocumentFragment> createFragmentFromPlatformData(PlatformDragData* platformDragData, Frame& frame) 92 { 93 if (containsFilenames(platformDragData)) { 94 if (PassRefPtr<DocumentFragment> fragment = fragmentFromFilenames(frame.document(), platformDragData)) 95 return fragment; 96 } 97 98 if (containsHTML(platformDragData)) { 99 if (PassRefPtr<DocumentFragment> fragment = fragmentFromHTML(frame.document(), platformDragData)) 100 return fragment; 101 } 102 return nullptr; 86 103 } 104 105 PassRefPtr<DocumentFragment> DragController::createFragmentFromDragData(DragData& dragData, Frame& frame, Range&, bool /*allowPlainText*/, bool& /*chosePlainText*/) 106 { 107 if (DragDataRef platformDragData = dragData.platformData()) 108 return createFragmentFromPlatformData(platformDragData, frame); 109 110 return createFragmentFromPlatformData(&dragData.dragDataMap(), frame); 111 } 112 113 } -
trunk/Source/WebCore/platform/DragData.h
r172814 r173686 61 61 namespace WebCore { 62 62 63 class Frame;64 class DocumentFragment;65 63 class URL; 66 class Range;67 64 68 65 enum DragApplicationFlags { … … 96 93 DragDataRef platformData() const { return m_platformDragData; } 97 94 DragOperation draggingSourceOperationMask() const { return m_draggingSourceOperationMask; } 98 bool containsURL(F rame*, FilenameConversionPolicy filenamePolicy = ConvertFilenames) const;95 bool containsURL(FilenameConversionPolicy = ConvertFilenames) const; 99 96 bool containsPlainText() const; 100 97 bool containsCompatibleContent() const; 101 String asURL(F rame*, FilenameConversionPolicy filenamePolicy = ConvertFilenames, String* title = 0) const;102 String asPlainText( Frame*) const;98 String asURL(FilenameConversionPolicy = ConvertFilenames, String* title = nullptr) const; 99 String asPlainText() const; 103 100 void asFilenames(Vector<String>&) const; 104 101 Color asColor() const; 105 PassRefPtr<DocumentFragment> asFragment(Frame*, Range& context, bool allowPlainText, bool& chosePlainText) const;106 102 bool canSmartReplace() const; 107 103 bool containsColor() const; -
trunk/Source/WebCore/platform/efl/DragDataEfl.cpp
r157058 r173686 22 22 #include "DragData.h" 23 23 24 #include "Document.h" 25 #include "DocumentFragment.h" 24 #include <wtf/text/WTFString.h> 26 25 27 26 namespace WebCore { … … 56 55 } 57 56 58 String DragData::asPlainText( Frame*) const57 String DragData::asPlainText() const 59 58 { 60 59 return String(); … … 71 70 } 72 71 73 bool DragData::containsURL(F rame*, FilenameConversionPolicy) const72 bool DragData::containsURL(FilenameConversionPolicy) const 74 73 { 75 74 return false; 76 75 } 77 76 78 String DragData::asURL(F rame*, FilenameConversionPolicy, String*) const77 String DragData::asURL(FilenameConversionPolicy, String*) const 79 78 { 80 79 return String(); 81 80 } 82 81 83 PassRefPtr<DocumentFragment> DragData::asFragment(Frame*, Range&, bool, bool&) const84 {85 return 0;86 82 } 87 88 } -
trunk/Source/WebCore/platform/gtk/DragDataGtk.cpp
r157058 r173686 19 19 20 20 #include "DataObjectGtk.h" 21 #include "Document.h"22 #include "DocumentFragment.h"23 #include "Frame.h"24 #include "markup.h"25 21 26 22 namespace WebCore { … … 56 52 } 57 53 58 String DragData::asPlainText( Frame*) const54 String DragData::asPlainText() const 59 55 { 60 56 return m_platformDragData->text(); … … 68 64 bool DragData::containsCompatibleContent() const 69 65 { 70 return containsPlainText() || containsURL( 0) || m_platformDragData->hasMarkup() || containsColor() || containsFiles();66 return containsPlainText() || containsURL() || m_platformDragData->hasMarkup() || containsColor() || containsFiles(); 71 67 } 72 68 73 bool DragData::containsURL(F rame* frame, FilenameConversionPolicy filenamePolicy) const69 bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const 74 70 { 75 return !asURL(f rame, filenamePolicy).isEmpty();71 return !asURL(filenamePolicy).isEmpty(); 76 72 } 77 73 78 String DragData::asURL(F rame*, FilenameConversionPolicy filenamePolicy, String* title) const74 String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const 79 75 { 80 76 if (!m_platformDragData->hasURL()) … … 92 88 } 93 89 94 95 PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, Range&, bool, bool&) const96 {97 if (!m_platformDragData->hasMarkup())98 return nullptr;99 100 if (!frame->document())101 return nullptr;102 103 return createFragmentFromMarkup(*frame->document(), m_platformDragData->markup(), "");104 90 } 105 106 } -
trunk/Source/WebCore/platform/mac/DragDataMac.mm
r165676 r173686 28 28 29 29 #if ENABLE(DRAG_SUPPORT) 30 #import "Document.h"31 #import "DocumentFragment.h"32 #import "DOMDocumentFragment.h"33 #import "DOMDocumentFragmentInternal.h"34 #import "Editor.h"35 #import "EditorClient.h"36 #import "Frame.h"37 30 #import "MIMETypeRegistry.h" 38 31 #import "Pasteboard.h" 39 32 #import "PasteboardStrategy.h" 40 33 #import "PlatformStrategies.h" 41 #import " Range.h"34 #import "WebCoreNSURLExtras.h" 42 35 43 36 namespace WebCore { … … 108 101 } 109 102 110 String DragData::asPlainText( Frame *frame) const103 String DragData::asPlainText() const 111 104 { 112 return frame->editor().readPlainTextFromPasteboard(*Pasteboard::create(m_pasteboardName)); 105 Pasteboard pasteboard(m_pasteboardName); 106 PasteboardPlainText text; 107 pasteboard.read(text); 108 String string = text.text; 109 110 // FIXME: It's not clear this is 100% correct since we know -[NSURL URLWithString:] does not handle 111 // all the same cases we handle well in the URL code for creating an NSURL. 112 if (text.isURL) 113 return userVisibleString([NSURL URLWithString:string]); 114 115 // FIXME: WTF should offer a non-Mac-specific way to convert string to precomposed form so we can do it for all platforms. 116 return [(NSString *)string precomposedStringWithCanonicalMapping]; 113 117 } 114 118 … … 135 139 } 136 140 137 bool DragData::containsURL(F rame* frame, FilenameConversionPolicy filenamePolicy) const141 bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const 138 142 { 139 return !asURL(f rame, filenamePolicy).isEmpty();143 return !asURL(filenamePolicy).isEmpty(); 140 144 } 141 145 142 String DragData::asURL(F rame* frame, FilenameConversionPolicy, String* title) const146 String DragData::asURL(FilenameConversionPolicy, String* title) const 143 147 { 144 148 // FIXME: Use filenamePolicy. … … 152 156 Vector<String> types; 153 157 platformStrategies()->pasteboardStrategy()->getTypes(types, m_pasteboardName); 154 155 // FIXME: using the editorClient to call into WebKit, for now, since 156 // calling webkit_canonicalize from WebCore involves migrating a sizable amount of 157 // helper code that should either be done in a separate patch or figured out in another way. 158 158 159 159 if (types.contains(String(NSURLPboardType))) { 160 160 NSURL *URLFromPasteboard = [NSURL URLWithString:platformStrategies()->pasteboardStrategy()->stringForType(String(NSURLPboardType), m_pasteboardName)]; … … 162 162 // Cannot drop other schemes unless <rdar://problem/10562662> and <rdar://problem/11187315> are fixed. 163 163 if ([scheme isEqualToString:@"http"] || [scheme isEqualToString:@"https"]) 164 return [ frame->editor().client()->canonicalizeURL(URLFromPasteboard) absoluteString];164 return [URLByCanonicalizingURL(URLFromPasteboard) absoluteString]; 165 165 } 166 166 … … 172 172 // FIXME: Should we allow only http family schemes, or anything non-local? 173 173 if ([scheme isEqualToString:@"http"] || [scheme isEqualToString:@"https"]) 174 return [ frame->editor().client()->canonicalizeURL(URLFromPasteboard) absoluteString];174 return [URLByCanonicalizingURL(URLFromPasteboard) absoluteString]; 175 175 } 176 176 … … 182 182 if ([[NSFileManager defaultManager] fileExistsAtPath:files[0] isDirectory:&isDirectory] && isDirectory) 183 183 return String(); 184 return [ frame->editor().client()->canonicalizeURL([NSURL fileURLWithPath:files[0]]) absoluteString];184 return [URLByCanonicalizingURL([NSURL fileURLWithPath:files[0]]) absoluteString]; 185 185 } 186 186 } … … 189 189 } 190 190 191 PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, Range& range, bool allowPlainText, bool& chosePlainText) const192 {193 Pasteboard pasteboard(m_pasteboardName);194 return frame->editor().webContentFromPasteboard(pasteboard, range, allowPlainText, chosePlainText);195 }196 197 191 } // namespace WebCore 198 192 -
trunk/Source/WebCore/platform/win/ClipboardUtilitiesWin.h
r165676 r173686 34 34 35 35 class Document; 36 class DocumentFragment; 36 37 class URL; 37 38 -
trunk/Source/WebCore/platform/win/DragDataWin.cpp
r165676 r173686 30 30 #include "COMPtr.h" 31 31 #include "ClipboardUtilitiesWin.h" 32 #include "Frame.h"33 #include "DocumentFragment.h"34 #include "Markup.h"35 #include "Range.h"36 32 #include "TextEncoding.h" 37 33 #include <objidl.h> … … 57 53 } 58 54 59 bool DragData::containsURL(F rame*, FilenameConversionPolicy filenamePolicy) const55 bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const 60 56 { 61 57 if (m_platformDragData) … … 102 98 } 103 99 104 String DragData::asURL(F rame*, FilenameConversionPolicy filenamePolicy, String* title) const100 String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const 105 101 { 106 102 return (m_platformDragData) ? getURL(m_platformDragData, filenamePolicy, title) : getURL(&m_dragDataMap, filenamePolicy, title); … … 182 178 } 183 179 184 String DragData::asPlainText( Frame*) const180 String DragData::asPlainText() const 185 181 { 186 182 return (m_platformDragData) ? getPlainText(m_platformDragData) : getPlainText(&m_dragDataMap); … … 201 197 bool DragData::containsCompatibleContent() const 202 198 { 203 return containsPlainText() || containsURL( 0)199 return containsPlainText() || containsURL() 204 200 || ((m_platformDragData) ? (containsHTML(m_platformDragData) || containsFilenames(m_platformDragData)) 205 201 : (containsHTML(&m_dragDataMap) || containsFilenames(&m_dragDataMap))) … … 207 203 } 208 204 209 PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, Range&, bool, bool&) const210 {211 /*212 * Order is richest format first. On OSX this is:213 * * Web Archive214 * * Filenames215 * * HTML216 * * RTF217 * * TIFF218 * * PICT219 */220 221 if (m_platformDragData) {222 if (containsFilenames(m_platformDragData)) {223 if (PassRefPtr<DocumentFragment> fragment = fragmentFromFilenames(frame->document(), m_platformDragData))224 return fragment;225 }226 227 if (containsHTML(m_platformDragData)) {228 if (PassRefPtr<DocumentFragment> fragment = fragmentFromHTML(frame->document(), m_platformDragData))229 return fragment;230 }231 } else {232 if (containsFilenames(&m_dragDataMap)) {233 if (PassRefPtr<DocumentFragment> fragment = fragmentFromFilenames(frame->document(), &m_dragDataMap))234 return fragment;235 }236 237 if (containsHTML(&m_dragDataMap)) {238 if (PassRefPtr<DocumentFragment> fragment = fragmentFromHTML(frame->document(), &m_dragDataMap))239 return fragment;240 }241 }242 return 0;243 }244 245 205 Color DragData::asColor() const 246 206 { -
trunk/Source/WebKit2/ChangeLog
r173673 r173686 1 2014-09-16 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 DragData should not depend on Clipboard, DocumentFragment, and Document 4 https://bugs.webkit.org/show_bug.cgi?id=21358 5 6 Reviewed by Darin Adler. 7 8 * UIProcess/WebPageProxy.cpp: 9 (WebKit::WebPageProxy::performDragControllerAction): Update to API 10 change in DragData::asURL(). 11 1 12 2014-09-16 Daniel Bates <dabates@apple.com> 2 13 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r173121 r173686 1370 1370 UNUSED_PARAM(sandboxExtensionsForUpload); 1371 1371 1372 String url = dragData.asURL( nullptr);1372 String url = dragData.asURL(); 1373 1373 if (!url.isEmpty()) 1374 1374 m_process->assumeReadAccessToBaseURL(url);
Note:
See TracChangeset
for help on using the changeset viewer.