summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webdropdata.cc
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-16 01:28:17 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-16 01:28:17 +0000
commitda41ae9be8d07ceca1b012c5e33a1dcd7987d400 (patch)
tree9da98f291d9b32407b1faf56040fce859897f9e2 /webkit/glue/webdropdata.cc
parentcbdc8c2b4b46c7e7886c9e99bc595a0b9936b381 (diff)
downloadchromium_src-da41ae9be8d07ceca1b012c5e33a1dcd7987d400.zip
chromium_src-da41ae9be8d07ceca1b012c5e33a1dcd7987d400.tar.gz
chromium_src-da41ae9be8d07ceca1b012c5e33a1dcd7987d400.tar.bz2
Allow empty strings to be written to the clipboard
BUG=109810 TEST=manual testing Review URL: https://chromiumcodereview.appspot.com/10532168 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142554 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webdropdata.cc')
-rw-r--r--webkit/glue/webdropdata.cc23
1 files changed, 14 insertions, 9 deletions
diff --git a/webkit/glue/webdropdata.cc b/webkit/glue/webdropdata.cc
index 73c89fa..398bc31 100644
--- a/webkit/glue/webdropdata.cc
+++ b/webkit/glue/webdropdata.cc
@@ -31,14 +31,16 @@ WebDropData::FileInfo::FileInfo(const string16& path,
}
WebDropData::WebDropData(const WebDragData& drag_data)
- : referrer_policy(WebKit::WebReferrerPolicyDefault) {
+ : referrer_policy(WebKit::WebReferrerPolicyDefault),
+ text(NullableString16(true)),
+ html(NullableString16(true)) {
const WebVector<WebDragData::Item>& item_list = drag_data.items();
for (size_t i = 0; i < item_list.size(); ++i) {
const WebDragData::Item& item = item_list[i];
switch (item.storageType) {
case WebDragData::Item::StorageTypeString: {
if (EqualsASCII(item.stringType, ui::Clipboard::kMimeTypeText)) {
- plain_text = item.stringData;
+ text = NullableString16(item.stringData, false);
break;
}
if (EqualsASCII(item.stringType, ui::Clipboard::kMimeTypeURIList)) {
@@ -51,7 +53,7 @@ WebDropData::WebDropData(const WebDragData& drag_data)
break;
}
if (EqualsASCII(item.stringType, ui::Clipboard::kMimeTypeHTML)) {
- text_html = item.stringData;
+ html = NullableString16(item.stringData, false);
html_base_url = item.baseURL;
break;
}
@@ -73,7 +75,9 @@ WebDropData::WebDropData(const WebDragData& drag_data)
}
WebDropData::WebDropData()
- : referrer_policy(WebKit::WebReferrerPolicyDefault) {
+ : referrer_policy(WebKit::WebReferrerPolicyDefault),
+ text(NullableString16(true)),
+ html(NullableString16(true)) {
}
WebDropData::~WebDropData() {
@@ -87,15 +91,16 @@ WebDragData WebDropData::ToDragData() const {
DCHECK(file_contents.empty());
DCHECK(file_description_filename.empty());
- // TODO(dcheng): We need a way to distinguish between null and empty strings.
- if (!plain_text.empty()) {
+ if (!text.is_null()) {
WebDragData::Item item;
item.storageType = WebDragData::Item::StorageTypeString;
item.stringType = WebString::fromUTF8(ui::Clipboard::kMimeTypeText);
- item.stringData = plain_text;
+ item.stringData = text.string();
item_list.push_back(item);
}
+ // TODO(dcheng): Do we need to distinguish between null and empty URLs? Is it
+ // meaningful to write an empty URL to the clipboard?
if (!url.is_empty()) {
WebDragData::Item item;
item.storageType = WebDragData::Item::StorageTypeString;
@@ -105,11 +110,11 @@ WebDragData WebDropData::ToDragData() const {
item_list.push_back(item);
}
- if (!text_html.empty()) {
+ if (!html.is_null()) {
WebDragData::Item item;
item.storageType = WebDragData::Item::StorageTypeString;
item.stringType = WebString::fromUTF8(ui::Clipboard::kMimeTypeHTML);
- item.stringData = text_html;
+ item.stringData = html.string();
item.baseURL = html_base_url;
item_list.push_back(item);
}