| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ui/base/clipboard/clipboard_aura.h" | 5 #include "ui/base/clipboard/clipboard_aura.h" |
| 6 | 6 |
| 7 #include <stdint.h> |
| 8 |
| 9 #include <limits> |
| 7 #include <list> | 10 #include <list> |
| 8 | 11 |
| 9 #include "base/basictypes.h" | |
| 10 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
| 11 #include "base/logging.h" | 13 #include "base/logging.h" |
| 12 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 13 #include "base/stl_util.h" | 15 #include "base/stl_util.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 16 #include "base/strings/utf_string_conversions.h" |
| 15 #include "third_party/skia/include/core/SkBitmap.h" | 17 #include "third_party/skia/include/core/SkBitmap.h" |
| 16 #include "ui/base/clipboard/custom_data_helper.h" | 18 #include "ui/base/clipboard/custom_data_helper.h" |
| 17 #include "ui/gfx/geometry/size.h" | 19 #include "ui/gfx/geometry/size.h" |
| 18 | 20 |
| 19 namespace ui { | 21 namespace ui { |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 *result = data->text(); | 205 *result = data->text(); |
| 204 else if (HasFormat(HTML)) | 206 else if (HasFormat(HTML)) |
| 205 *result = data->markup_data(); | 207 *result = data->markup_data(); |
| 206 else if (HasFormat(BOOKMARK)) | 208 else if (HasFormat(BOOKMARK)) |
| 207 *result = data->bookmark_url(); | 209 *result = data->bookmark_url(); |
| 208 } | 210 } |
| 209 | 211 |
| 210 // Reads HTML from the data at the top of clipboard stack. | 212 // Reads HTML from the data at the top of clipboard stack. |
| 211 void ReadHTML(base::string16* markup, | 213 void ReadHTML(base::string16* markup, |
| 212 std::string* src_url, | 214 std::string* src_url, |
| 213 uint32* fragment_start, | 215 uint32_t* fragment_start, |
| 214 uint32* fragment_end) const { | 216 uint32_t* fragment_end) const { |
| 215 markup->clear(); | 217 markup->clear(); |
| 216 if (src_url) | 218 if (src_url) |
| 217 src_url->clear(); | 219 src_url->clear(); |
| 218 *fragment_start = 0; | 220 *fragment_start = 0; |
| 219 *fragment_end = 0; | 221 *fragment_end = 0; |
| 220 | 222 |
| 221 if (!HasFormat(HTML)) | 223 if (!HasFormat(HTML)) |
| 222 return; | 224 return; |
| 223 | 225 |
| 224 const ClipboardData* data = GetData(); | 226 const ClipboardData* data = GetData(); |
| 225 *markup = base::UTF8ToUTF16(data->markup_data()); | 227 *markup = base::UTF8ToUTF16(data->markup_data()); |
| 226 *src_url = data->url(); | 228 *src_url = data->url(); |
| 227 | 229 |
| 228 *fragment_start = 0; | 230 *fragment_start = 0; |
| 229 DCHECK_LE(markup->length(), kuint32max); | 231 DCHECK_LE(markup->length(), std::numeric_limits<uint32_t>::max()); |
| 230 *fragment_end = static_cast<uint32>(markup->length()); | 232 *fragment_end = static_cast<uint32_t>(markup->length()); |
| 231 } | 233 } |
| 232 | 234 |
| 233 // Reads RTF from the data at the top of clipboard stack. | 235 // Reads RTF from the data at the top of clipboard stack. |
| 234 void ReadRTF(std::string* result) const { | 236 void ReadRTF(std::string* result) const { |
| 235 result->clear(); | 237 result->clear(); |
| 236 const ClipboardData* data = GetData(); | 238 const ClipboardData* data = GetData(); |
| 237 if (!HasFormat(RTF)) | 239 if (!HasFormat(RTF)) |
| 238 return; | 240 return; |
| 239 | 241 |
| 240 *result = data->rtf_data(); | 242 *result = data->rtf_data(); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 DCHECK(CalledOnValidThread()); | 523 DCHECK(CalledOnValidThread()); |
| 522 // Make sure clipboard is created. | 524 // Make sure clipboard is created. |
| 523 GetClipboard(); | 525 GetClipboard(); |
| 524 } | 526 } |
| 525 | 527 |
| 526 ClipboardAura::~ClipboardAura() { | 528 ClipboardAura::~ClipboardAura() { |
| 527 DCHECK(CalledOnValidThread()); | 529 DCHECK(CalledOnValidThread()); |
| 528 DeleteClipboard(); | 530 DeleteClipboard(); |
| 529 } | 531 } |
| 530 | 532 |
| 531 uint64 ClipboardAura::GetSequenceNumber(ClipboardType type) const { | 533 uint64_t ClipboardAura::GetSequenceNumber(ClipboardType type) const { |
| 532 DCHECK(CalledOnValidThread()); | 534 DCHECK(CalledOnValidThread()); |
| 533 return GetClipboard()->sequence_number(); | 535 return GetClipboard()->sequence_number(); |
| 534 } | 536 } |
| 535 | 537 |
| 536 bool ClipboardAura::IsFormatAvailable(const FormatType& format, | 538 bool ClipboardAura::IsFormatAvailable(const FormatType& format, |
| 537 ClipboardType type) const { | 539 ClipboardType type) const { |
| 538 DCHECK(CalledOnValidThread()); | 540 DCHECK(CalledOnValidThread()); |
| 539 DCHECK(IsSupportedClipboardType(type)); | 541 DCHECK(IsSupportedClipboardType(type)); |
| 540 AuraClipboard* clipboard = GetClipboard(); | 542 AuraClipboard* clipboard = GetClipboard(); |
| 541 if (GetPlainTextFormatType().Equals(format) || | 543 if (GetPlainTextFormatType().Equals(format) || |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 | 600 |
| 599 void ClipboardAura::ReadAsciiText(ClipboardType type, | 601 void ClipboardAura::ReadAsciiText(ClipboardType type, |
| 600 std::string* result) const { | 602 std::string* result) const { |
| 601 DCHECK(CalledOnValidThread()); | 603 DCHECK(CalledOnValidThread()); |
| 602 GetClipboard()->ReadAsciiText(result); | 604 GetClipboard()->ReadAsciiText(result); |
| 603 } | 605 } |
| 604 | 606 |
| 605 void ClipboardAura::ReadHTML(ClipboardType type, | 607 void ClipboardAura::ReadHTML(ClipboardType type, |
| 606 base::string16* markup, | 608 base::string16* markup, |
| 607 std::string* src_url, | 609 std::string* src_url, |
| 608 uint32* fragment_start, | 610 uint32_t* fragment_start, |
| 609 uint32* fragment_end) const { | 611 uint32_t* fragment_end) const { |
| 610 DCHECK(CalledOnValidThread()); | 612 DCHECK(CalledOnValidThread()); |
| 611 GetClipboard()->ReadHTML(markup, src_url, fragment_start, fragment_end); | 613 GetClipboard()->ReadHTML(markup, src_url, fragment_start, fragment_end); |
| 612 } | 614 } |
| 613 | 615 |
| 614 void ClipboardAura::ReadRTF(ClipboardType type, std::string* result) const { | 616 void ClipboardAura::ReadRTF(ClipboardType type, std::string* result) const { |
| 615 DCHECK(CalledOnValidThread()); | 617 DCHECK(CalledOnValidThread()); |
| 616 GetClipboard()->ReadRTF(result); | 618 GetClipboard()->ReadRTF(result); |
| 617 } | 619 } |
| 618 | 620 |
| 619 SkBitmap ClipboardAura::ReadImage(ClipboardType type) const { | 621 SkBitmap ClipboardAura::ReadImage(ClipboardType type) const { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 ClipboardDataBuilder::WriteBitmap(bitmap); | 682 ClipboardDataBuilder::WriteBitmap(bitmap); |
| 681 } | 683 } |
| 682 | 684 |
| 683 void ClipboardAura::WriteData(const FormatType& format, | 685 void ClipboardAura::WriteData(const FormatType& format, |
| 684 const char* data_data, | 686 const char* data_data, |
| 685 size_t data_len) { | 687 size_t data_len) { |
| 686 ClipboardDataBuilder::WriteData(format.ToString(), data_data, data_len); | 688 ClipboardDataBuilder::WriteData(format.ToString(), data_data, data_len); |
| 687 } | 689 } |
| 688 | 690 |
| 689 } // namespace ui | 691 } // namespace ui |
| OLD | NEW |