Chromium Code Reviews| Index: ui/base/clipboard/clipboard_android.cc |
| diff --git a/ui/base/clipboard/clipboard_android.cc b/ui/base/clipboard/clipboard_android.cc |
| index 22f75c194eba4e98758a7abdabc2b3bb3d8aac85..f3d7c93c5435e58596a8ecfd359a0271819d5828 100644 |
| --- a/ui/base/clipboard/clipboard_android.cc |
| +++ b/ui/base/clipboard/clipboard_android.cc |
| @@ -97,10 +97,24 @@ void ClipboardMap::Set(const std::string& format, const std::string& data) { |
| map_[format] = data; |
| if (format == kPlainTextFormat) { |
| - ScopedJavaLocalRef<jstring> str = ConvertUTF8ToJavaString( |
| - env, data.c_str()); |
| - DCHECK(str.obj() && !ClearException(env)); |
| + ScopedJavaLocalRef<jstring> str = ConvertUTF8ToJavaString(env, data); |
| + DCHECK(str.obj()); |
| + |
| Java_Clipboard_setText(env, clipboard_manager_.obj(), str.obj()); |
| + } else if (format == kHTMLFormat) { |
| + // Android's API for storing HTML content on the clipboard requires a plain- |
| + // text representation to be available as well. Because of an std::map's |
| + // keys being ordered, any plain-text representation will be set already. |
|
bulach
2013/10/25 14:32:47
I'm not quite sure what std::map order has to do h
Peter Beverloo
2013/10/25 15:29:37
Done.
|
| + if (!ContainsKey(map_, kPlainTextFormat)) |
| + return; |
| + |
| + ScopedJavaLocalRef<jstring> html = ConvertUTF8ToJavaString(env, data); |
| + ScopedJavaLocalRef<jstring> text = ConvertUTF8ToJavaString( |
| + env, map_[kPlainTextFormat].c_str()); |
| + |
| + DCHECK(html.obj() && text.obj()); |
| + Java_Clipboard_setHTMLText( |
| + env, clipboard_manager_.obj(), html.obj(), text.obj()); |
| } |
| } |