OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 // | |
5 // A struct for managing data being dropped on a webview. This represents a | |
6 // union of all the types of data that can be dropped in a platform neutral | |
7 // way. | |
8 | |
9 #ifndef WEBKIT_COMMON_WEBDROPDATA_H_ | |
10 #define WEBKIT_COMMON_WEBDROPDATA_H_ | |
11 | |
12 #include <map> | |
13 #include <string> | |
14 #include <vector> | |
15 | |
16 #include "base/strings/nullable_string16.h" | |
17 #include "base/strings/string16.h" | |
18 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" | |
19 #include "url/gurl.h" | |
20 #include "webkit/common/webkit_common_export.h" | |
21 | |
22 struct IDataObject; | |
23 | |
24 namespace WebKit { | |
25 class WebDragData; | |
26 } | |
27 | |
28 struct WEBKIT_COMMON_EXPORT WebDropData { | |
29 // The struct is used to represent a file in the drop data. | |
30 struct WEBKIT_COMMON_EXPORT FileInfo { | |
31 FileInfo(); | |
32 FileInfo(const base::string16& path, const base::string16& display_name); | |
33 | |
34 // The path of the file. | |
35 base::string16 path; | |
36 // The display name of the file. This field is optional. | |
37 base::string16 display_name; | |
38 }; | |
39 | |
40 // Construct from a WebDragData object. | |
41 explicit WebDropData(const WebKit::WebDragData&); | |
42 | |
43 WebDropData(); | |
44 | |
45 ~WebDropData(); | |
46 | |
47 // User is dragging a link into the webview. | |
48 GURL url; | |
49 base::string16 url_title; // The title associated with |url|. | |
50 | |
51 // User is dragging a link out-of the webview. | |
52 base::string16 download_metadata; | |
53 | |
54 // Referrer policy to use when dragging a link out of the webview results in | |
55 // a download. | |
56 WebKit::WebReferrerPolicy referrer_policy; | |
57 | |
58 // User is dropping one or more files on the webview. | |
59 std::vector<FileInfo> filenames; | |
60 | |
61 // Isolated filesystem ID for the files being dragged on the webview. | |
62 base::string16 filesystem_id; | |
63 | |
64 // User is dragging plain text into the webview. | |
65 base::NullableString16 text; | |
66 | |
67 // User is dragging text/html into the webview (e.g., out of Firefox). | |
68 // |html_base_url| is the URL that the html fragment is taken from (used to | |
69 // resolve relative links). It's ok for |html_base_url| to be empty. | |
70 base::NullableString16 html; | |
71 GURL html_base_url; | |
72 | |
73 // User is dragging data from the webview (e.g., an image). | |
74 base::string16 file_description_filename; | |
75 std::string file_contents; | |
76 | |
77 std::map<base::string16, base::string16> custom_data; | |
78 }; | |
79 | |
80 #endif // WEBKIT_COMMON_WEBDROPDATA_H_ | |
OLD | NEW |