diff options
author | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-16 01:28:17 +0000 |
---|---|---|
committer | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-16 01:28:17 +0000 |
commit | da41ae9be8d07ceca1b012c5e33a1dcd7987d400 (patch) | |
tree | 9da98f291d9b32407b1faf56040fce859897f9e2 /webkit/glue/webdropdata.cc | |
parent | cbdc8c2b4b46c7e7886c9e99bc595a0b9936b381 (diff) | |
download | chromium_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.cc | 23 |
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); } |