Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Side by Side Diff: Source/core/page/DragData.h

Issue 193803002: Prevent web content from forging File entries in drag and drop. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 enum DragApplicationFlags { 44 enum DragApplicationFlags {
45 DragApplicationNone = 0, 45 DragApplicationNone = 0,
46 DragApplicationIsModal = 1, 46 DragApplicationIsModal = 1,
47 DragApplicationIsSource = 2, 47 DragApplicationIsSource = 2,
48 DragApplicationHasAttachedSheet = 4, 48 DragApplicationHasAttachedSheet = 4,
49 DragApplicationIsCopyKeyDown = 8 49 DragApplicationIsCopyKeyDown = 8
50 }; 50 };
51 51
52 class DragData { 52 class DragData {
53 public: 53 public:
54 // ConvertFilenames is only intended to be used when treating drags as a nav igation action.
54 enum FilenameConversionPolicy { DoNotConvertFilenames, ConvertFilenames }; 55 enum FilenameConversionPolicy { DoNotConvertFilenames, ConvertFilenames };
55 56
56 // clientPosition is taken to be the position of the drag event within the t arget window, with (0,0) at the top left 57 // clientPosition is taken to be the position of the drag event within the t arget window, with (0,0) at the top left
57 DragData(DataObject*, const IntPoint& clientPosition, const IntPoint& global Position, DragOperation, DragApplicationFlags = DragApplicationNone); 58 DragData(DataObject*, const IntPoint& clientPosition, const IntPoint& global Position, DragOperation, DragApplicationFlags = DragApplicationNone);
58 DragData(const String& dragStorageName, const IntPoint& clientPosition, cons t IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicatio nNone); 59 DragData(const String& dragStorageName, const IntPoint& clientPosition, cons t IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicatio nNone);
59 const IntPoint& clientPosition() const { return m_clientPosition; } 60 const IntPoint& clientPosition() const { return m_clientPosition; }
60 const IntPoint& globalPosition() const { return m_globalPosition; } 61 const IntPoint& globalPosition() const { return m_globalPosition; }
61 DragApplicationFlags flags() const { return m_applicationFlags; } 62 DragApplicationFlags flags() const { return m_applicationFlags; }
62 DataObject* platformData() const { return m_platformDragData; } 63 DataObject* platformData() const { return m_platformDragData; }
63 DragOperation draggingSourceOperationMask() const { return m_draggingSourceO perationMask; } 64 DragOperation draggingSourceOperationMask() const { return m_draggingSourceO perationMask; }
64 bool containsURL(FilenameConversionPolicy filenamePolicy = ConvertFilenames) const; 65 bool containsURL(FilenameConversionPolicy filenamePolicy = DoNotConvertFilen ames) const;
65 bool containsPlainText() const; 66 bool containsPlainText() const;
66 bool containsCompatibleContent() const; 67 bool containsCompatibleContent() const;
67 String asURL(FilenameConversionPolicy filenamePolicy = ConvertFilenames, Str ing* title = 0) const; 68 String asURL(FilenameConversionPolicy filenamePolicy = DoNotConvertFilenames , String* title = 0) const;
68 String asPlainText() const; 69 String asPlainText() const;
69 void asFilenames(Vector<String>&) const; 70 void asFilenames(Vector<String>&) const;
70 PassRefPtr<DocumentFragment> asFragment(LocalFrame*, PassRefPtr<Range> conte xt, bool allowPlainText, bool& chosePlainText) const; 71 PassRefPtr<DocumentFragment> asFragment(LocalFrame*, PassRefPtr<Range> conte xt, bool allowPlainText, bool& chosePlainText) const;
71 bool canSmartReplace() const; 72 bool canSmartReplace() const;
72 bool containsFiles() const; 73 bool containsFiles() const;
73 unsigned numberOfFiles() const; 74 unsigned numberOfFiles() const;
74 int modifierKeyState() const; 75 int modifierKeyState() const;
75 76
76 String droppedFileSystemId() const; 77 String droppedFileSystemId() const;
77 78
78 private: 79 private:
79 IntPoint m_clientPosition; 80 IntPoint m_clientPosition;
80 IntPoint m_globalPosition; 81 IntPoint m_globalPosition;
81 DataObject* m_platformDragData; 82 DataObject* m_platformDragData;
82 DragOperation m_draggingSourceOperationMask; 83 DragOperation m_draggingSourceOperationMask;
83 DragApplicationFlags m_applicationFlags; 84 DragApplicationFlags m_applicationFlags;
84 }; 85 };
85 86
86 } 87 }
87 88
88 #endif // !DragData_h 89 #endif // !DragData_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698