summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-30 02:19:50 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-30 02:19:50 +0000
commitf9ebecffb3c75e4506cc65243b6a88874cdb3f21 (patch)
tree1e556e0896422aa48c8d58b5da7bf44cdb443e9a /chrome/browser/cocoa
parentc69af9bb544ac41f5cb3bb600d40421fee7208d5 (diff)
downloadchromium_src-f9ebecffb3c75e4506cc65243b6a88874cdb3f21.zip
chromium_src-f9ebecffb3c75e4506cc65243b6a88874cdb3f21.tar.gz
chromium_src-f9ebecffb3c75e4506cc65243b6a88874cdb3f21.tar.bz2
Mac: add encoding meta-tag to HTML provided with NSHTMLPboardType.
Otherwise, US-ASCII is assumed. BUG=42661 TEST=dragging text from, e.g., Chinese-language web sites into TextEdit works Review URL: http://codereview.chromium.org/1820001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46029 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa')
-rw-r--r--chrome/browser/cocoa/web_drag_source.mm9
1 files changed, 8 insertions, 1 deletions
diff --git a/chrome/browser/cocoa/web_drag_source.mm b/chrome/browser/cocoa/web_drag_source.mm
index 70c144c..fdbb516 100644
--- a/chrome/browser/cocoa/web_drag_source.mm
+++ b/chrome/browser/cocoa/web_drag_source.mm
@@ -142,6 +142,12 @@ void PromiseWriterTask::Run() {
}
- (void)lazyWriteToPasteboard:(NSPasteboard*)pboard forType:(NSString*)type {
+ // NSHTMLPboardType requires the character set to be declared. Otherwise, it
+ // assumes US-ASCII. Awesome.
+ static const string16 kHtmlHeader =
+ ASCIIToUTF16("<meta http-equiv=\"Content-Type\" "
+ "content=\"text/html;charset=UTF-8\">");
+
// Be extra paranoid; avoid crashing.
if (!dropData_.get()) {
NOTREACHED() << "No drag-and-drop data available for lazy write.";
@@ -151,7 +157,8 @@ void PromiseWriterTask::Run() {
// HTML.
if ([type isEqualToString:NSHTMLPboardType]) {
DCHECK(!dropData_->text_html.empty());
- [pboard setString:SysUTF16ToNSString(dropData_->text_html)
+ // See comment on |kHtmlHeader| above.
+ [pboard setString:SysUTF16ToNSString(kHtmlHeader + dropData_->text_html)
forType:NSHTMLPboardType];
// URL.