| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/webclipboard_impl.h" | 5 #include "content/renderer/webclipboard_impl.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/pickle.h" | 8 #include "base/pickle.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 client_->ReadText(clipboard_type, &text); | 100 client_->ReadText(clipboard_type, &text); |
| 101 if (!text.empty()) | 101 if (!text.empty()) |
| 102 return text; | 102 return text; |
| 103 } | 103 } |
| 104 | 104 |
| 105 if (client_->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 105 if (client_->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), |
| 106 clipboard_type)) { | 106 clipboard_type)) { |
| 107 std::string text; | 107 std::string text; |
| 108 client_->ReadAsciiText(clipboard_type, &text); | 108 client_->ReadAsciiText(clipboard_type, &text); |
| 109 if (!text.empty()) | 109 if (!text.empty()) |
| 110 return ASCIIToUTF16(text); | 110 return base::ASCIIToUTF16(text); |
| 111 } | 111 } |
| 112 | 112 |
| 113 return WebString(); | 113 return WebString(); |
| 114 } | 114 } |
| 115 | 115 |
| 116 WebString WebClipboardImpl::readHTML(Buffer buffer, WebURL* source_url, | 116 WebString WebClipboardImpl::readHTML(Buffer buffer, WebURL* source_url, |
| 117 unsigned* fragment_start, | 117 unsigned* fragment_start, |
| 118 unsigned* fragment_end) { | 118 unsigned* fragment_end) { |
| 119 ui::ClipboardType clipboard_type; | 119 ui::ClipboardType clipboard_type; |
| 120 if (!ConvertBufferType(buffer, &clipboard_type)) | 120 if (!ConvertBufferType(buffer, &clipboard_type)) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 if (!url.isEmpty()) { | 180 if (!url.isEmpty()) { |
| 181 scw.WriteBookmark(title, url.spec()); | 181 scw.WriteBookmark(title, url.spec()); |
| 182 #if !defined(OS_MACOSX) | 182 #if !defined(OS_MACOSX) |
| 183 // When writing the image, we also write the image markup so that pasting | 183 // When writing the image, we also write the image markup so that pasting |
| 184 // into rich text editors, such as Gmail, reveals the image. We also don't | 184 // into rich text editors, such as Gmail, reveals the image. We also don't |
| 185 // want to call writeText(), since some applications (WordPad) don't pick | 185 // want to call writeText(), since some applications (WordPad) don't pick |
| 186 // the image if there is also a text format on the clipboard. | 186 // the image if there is also a text format on the clipboard. |
| 187 // We also don't want to write HTML on a Mac, since Mail.app prefers to use | 187 // We also don't want to write HTML on a Mac, since Mail.app prefers to use |
| 188 // the image markup over attaching the actual image. See | 188 // the image markup over attaching the actual image. See |
| 189 // http://crbug.com/33016 for details. | 189 // http://crbug.com/33016 for details. |
| 190 scw.WriteHTML(UTF8ToUTF16(URLToImageMarkup(url, title)), std::string()); | 190 scw.WriteHTML(base::UTF8ToUTF16(URLToImageMarkup(url, title)), |
| 191 std::string()); |
| 191 #endif | 192 #endif |
| 192 } | 193 } |
| 193 } | 194 } |
| 194 | 195 |
| 195 void WebClipboardImpl::writeDataObject(const WebDragData& data) { | 196 void WebClipboardImpl::writeDataObject(const WebDragData& data) { |
| 196 ScopedClipboardWriterGlue scw(client_); | 197 ScopedClipboardWriterGlue scw(client_); |
| 197 | 198 |
| 198 const DropData& data_object = DropDataBuilder::Build(data); | 199 const DropData& data_object = DropDataBuilder::Build(data); |
| 199 // TODO(dcheng): Properly support text/uri-list here. | 200 // TODO(dcheng): Properly support text/uri-list here. |
| 200 if (!data_object.text.is_null()) | 201 if (!data_object.text.is_null()) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 231 #endif | 232 #endif |
| 232 #endif | 233 #endif |
| 233 default: | 234 default: |
| 234 NOTREACHED(); | 235 NOTREACHED(); |
| 235 return false; | 236 return false; |
| 236 } | 237 } |
| 237 return true; | 238 return true; |
| 238 } | 239 } |
| 239 | 240 |
| 240 } // namespace content | 241 } // namespace content |
| OLD | NEW |