Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Side by Side Diff: ui/base/clipboard/clipboard_aura.cc

Issue 658963003: Change Clipboard to use virtual methods for testing purposes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/base/clipboard/clipboard_aura.h ('k') | ui/base/clipboard/clipboard_aurax11.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.h" 5 #include "ui/base/clipboard/clipboard_aura.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "third_party/skia/include/core/SkBitmap.h" 15 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 return current_data_; 399 return current_data_;
400 } 400 }
401 401
402 static ClipboardData* current_data_; 402 static ClipboardData* current_data_;
403 }; 403 };
404 404
405 ClipboardData* ClipboardDataBuilder::current_data_ = NULL; 405 ClipboardData* ClipboardDataBuilder::current_data_ = NULL;
406 406
407 } // namespace 407 } // namespace
408 408
409 // Clipboard FormatType implementation. 409 // Clipboard::FormatType implementation.
410 Clipboard::FormatType::FormatType() { 410 Clipboard::FormatType::FormatType() {
411 } 411 }
412 412
413 Clipboard::FormatType::FormatType(const std::string& native_format) 413 Clipboard::FormatType::FormatType(const std::string& native_format)
414 : data_(native_format) { 414 : data_(native_format) {
415 } 415 }
416 416
417 Clipboard::FormatType::~FormatType() { 417 Clipboard::FormatType::~FormatType() {
418 } 418 }
419 419
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData)); 504 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypeWebCustomData));
505 return type; 505 return type;
506 } 506 }
507 507
508 // static 508 // static
509 const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() { 509 const Clipboard::FormatType& Clipboard::GetPepperCustomDataFormatType() {
510 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData)); 510 CR_DEFINE_STATIC_LOCAL(FormatType, type, (kMimeTypePepperCustomData));
511 return type; 511 return type;
512 } 512 }
513 513
514 // Clipboard implementation. 514 // Clipboard factory method.
515 Clipboard::Clipboard() { 515 Clipboard* Clipboard::Create() {
516 return new ClipboardAura;
517 }
518
519 // ClipboardAura implementation.
520 ClipboardAura::ClipboardAura() {
516 DCHECK(CalledOnValidThread()); 521 DCHECK(CalledOnValidThread());
517 // Make sure clipboard is created. 522 // Make sure clipboard is created.
518 GetClipboard(); 523 GetClipboard();
519 } 524 }
520 525
521 Clipboard::~Clipboard() { 526 ClipboardAura::~ClipboardAura() {
522 DCHECK(CalledOnValidThread()); 527 DCHECK(CalledOnValidThread());
523 DeleteClipboard(); 528 DeleteClipboard();
524 } 529 }
525 530
526 uint64 Clipboard::GetSequenceNumber(ClipboardType type) { 531 uint64 ClipboardAura::GetSequenceNumber(ClipboardType type) {
527 DCHECK(CalledOnValidThread()); 532 DCHECK(CalledOnValidThread());
528 return GetClipboard()->sequence_number(); 533 return GetClipboard()->sequence_number();
529 } 534 }
530 535
531 bool Clipboard::IsFormatAvailable(const FormatType& format, 536 bool ClipboardAura::IsFormatAvailable(const FormatType& format,
532 ClipboardType type) const { 537 ClipboardType type) const {
533 DCHECK(CalledOnValidThread()); 538 DCHECK(CalledOnValidThread());
534 DCHECK(IsSupportedClipboardType(type)); 539 DCHECK(IsSupportedClipboardType(type));
535 AuraClipboard* clipboard = GetClipboard(); 540 AuraClipboard* clipboard = GetClipboard();
536 if (GetPlainTextFormatType().Equals(format) || 541 if (GetPlainTextFormatType().Equals(format) ||
537 GetUrlFormatType().Equals(format)) 542 GetUrlFormatType().Equals(format))
538 return clipboard->IsFormatAvailable(TEXT); 543 return clipboard->IsFormatAvailable(TEXT);
539 else if (GetHtmlFormatType().Equals(format)) 544 else if (GetHtmlFormatType().Equals(format))
540 return clipboard->IsFormatAvailable(HTML); 545 return clipboard->IsFormatAvailable(HTML);
541 else if (GetRtfFormatType().Equals(format)) 546 else if (GetRtfFormatType().Equals(format))
542 return clipboard->IsFormatAvailable(RTF); 547 return clipboard->IsFormatAvailable(RTF);
543 else if (GetBitmapFormatType().Equals(format)) 548 else if (GetBitmapFormatType().Equals(format))
544 return clipboard->IsFormatAvailable(BITMAP); 549 return clipboard->IsFormatAvailable(BITMAP);
545 else if (GetWebKitSmartPasteFormatType().Equals(format)) 550 else if (GetWebKitSmartPasteFormatType().Equals(format))
546 return clipboard->IsFormatAvailable(WEB); 551 return clipboard->IsFormatAvailable(WEB);
547 else { 552 else {
548 const ClipboardData* data = clipboard->GetData(); 553 const ClipboardData* data = clipboard->GetData();
549 if (data && data->custom_data_format() == format.ToString()) 554 if (data && data->custom_data_format() == format.ToString())
550 return true; 555 return true;
551 } 556 }
552 return false; 557 return false;
553 } 558 }
554 559
555 void Clipboard::Clear(ClipboardType type) { 560 void ClipboardAura::Clear(ClipboardType type) {
556 DCHECK(CalledOnValidThread()); 561 DCHECK(CalledOnValidThread());
557 DCHECK(IsSupportedClipboardType(type)); 562 DCHECK(IsSupportedClipboardType(type));
558 AuraClipboard* clipboard = GetClipboard(); 563 AuraClipboard* clipboard = GetClipboard();
559 clipboard->Clear(); 564 clipboard->Clear();
560 } 565 }
561 566
562 void Clipboard::ReadAvailableTypes(ClipboardType type, 567 void ClipboardAura::ReadAvailableTypes(ClipboardType type,
563 std::vector<base::string16>* types, 568 std::vector<base::string16>* types,
564 bool* contains_filenames) const { 569 bool* contains_filenames) const {
565 DCHECK(CalledOnValidThread()); 570 DCHECK(CalledOnValidThread());
566 if (!types || !contains_filenames) { 571 if (!types || !contains_filenames) {
567 NOTREACHED(); 572 NOTREACHED();
568 return; 573 return;
569 } 574 }
570 575
571 types->clear(); 576 types->clear();
572 *contains_filenames = false; 577 *contains_filenames = false;
573 if (IsFormatAvailable(GetPlainTextFormatType(), type)) 578 if (IsFormatAvailable(GetPlainTextFormatType(), type))
574 types->push_back(base::UTF8ToUTF16(GetPlainTextFormatType().ToString())); 579 types->push_back(base::UTF8ToUTF16(GetPlainTextFormatType().ToString()));
575 if (IsFormatAvailable(GetHtmlFormatType(), type)) 580 if (IsFormatAvailable(GetHtmlFormatType(), type))
576 types->push_back(base::UTF8ToUTF16(GetHtmlFormatType().ToString())); 581 types->push_back(base::UTF8ToUTF16(GetHtmlFormatType().ToString()));
577 if (IsFormatAvailable(GetRtfFormatType(), type)) 582 if (IsFormatAvailable(GetRtfFormatType(), type))
578 types->push_back(base::UTF8ToUTF16(GetRtfFormatType().ToString())); 583 types->push_back(base::UTF8ToUTF16(GetRtfFormatType().ToString()));
579 if (IsFormatAvailable(GetBitmapFormatType(), type)) 584 if (IsFormatAvailable(GetBitmapFormatType(), type))
580 types->push_back(base::UTF8ToUTF16(kMimeTypePNG)); 585 types->push_back(base::UTF8ToUTF16(kMimeTypePNG));
581 586
582 AuraClipboard* clipboard = GetClipboard(); 587 AuraClipboard* clipboard = GetClipboard();
583 if (clipboard->IsFormatAvailable(CUSTOM) && clipboard->GetData()) { 588 if (clipboard->IsFormatAvailable(CUSTOM) && clipboard->GetData()) {
584 ui::ReadCustomDataTypes(clipboard->GetData()->custom_data_data().c_str(), 589 ui::ReadCustomDataTypes(clipboard->GetData()->custom_data_data().c_str(),
585 clipboard->GetData()->custom_data_data().size(), types); 590 clipboard->GetData()->custom_data_data().size(), types);
586 } 591 }
587 } 592 }
588 593
589 void Clipboard::ReadText(ClipboardType type, base::string16* result) const { 594 void ClipboardAura::ReadText(ClipboardType type, base::string16* result) const {
590 DCHECK(CalledOnValidThread()); 595 DCHECK(CalledOnValidThread());
591 GetClipboard()->ReadText(result); 596 GetClipboard()->ReadText(result);
592 } 597 }
593 598
594 void Clipboard::ReadAsciiText(ClipboardType type, std::string* result) const { 599 void ClipboardAura::ReadAsciiText(ClipboardType type,
600 std::string* result) const {
595 DCHECK(CalledOnValidThread()); 601 DCHECK(CalledOnValidThread());
596 GetClipboard()->ReadAsciiText(result); 602 GetClipboard()->ReadAsciiText(result);
597 } 603 }
598 604
599 void Clipboard::ReadHTML(ClipboardType type, 605 void ClipboardAura::ReadHTML(ClipboardType type,
600 base::string16* markup, 606 base::string16* markup,
601 std::string* src_url, 607 std::string* src_url,
602 uint32* fragment_start, 608 uint32* fragment_start,
603 uint32* fragment_end) const { 609 uint32* fragment_end) const {
604 DCHECK(CalledOnValidThread()); 610 DCHECK(CalledOnValidThread());
605 GetClipboard()->ReadHTML(markup, src_url, fragment_start, fragment_end); 611 GetClipboard()->ReadHTML(markup, src_url, fragment_start, fragment_end);
606 } 612 }
607 613
608 void Clipboard::ReadRTF(ClipboardType type, std::string* result) const { 614 void ClipboardAura::ReadRTF(ClipboardType type, std::string* result) const {
609 DCHECK(CalledOnValidThread()); 615 DCHECK(CalledOnValidThread());
610 GetClipboard()->ReadRTF(result); 616 GetClipboard()->ReadRTF(result);
611 } 617 }
612 618
613 SkBitmap Clipboard::ReadImage(ClipboardType type) const { 619 SkBitmap ClipboardAura::ReadImage(ClipboardType type) const {
614 DCHECK(CalledOnValidThread()); 620 DCHECK(CalledOnValidThread());
615 return GetClipboard()->ReadImage(); 621 return GetClipboard()->ReadImage();
616 } 622 }
617 623
618 void Clipboard::ReadCustomData(ClipboardType clipboard_type, 624 void ClipboardAura::ReadCustomData(ClipboardType clipboard_type,
619 const base::string16& type, 625 const base::string16& type,
620 base::string16* result) const { 626 base::string16* result) const {
621 DCHECK(CalledOnValidThread()); 627 DCHECK(CalledOnValidThread());
622 GetClipboard()->ReadCustomData(type, result); 628 GetClipboard()->ReadCustomData(type, result);
623 } 629 }
624 630
625 void Clipboard::ReadBookmark(base::string16* title, std::string* url) const { 631 void ClipboardAura::ReadBookmark(base::string16* title,
632 std::string* url) const {
626 DCHECK(CalledOnValidThread()); 633 DCHECK(CalledOnValidThread());
627 GetClipboard()->ReadBookmark(title, url); 634 GetClipboard()->ReadBookmark(title, url);
628 } 635 }
629 636
630 void Clipboard::ReadData(const FormatType& format, std::string* result) const { 637 void ClipboardAura::ReadData(const FormatType& format,
638 std::string* result) const {
631 DCHECK(CalledOnValidThread()); 639 DCHECK(CalledOnValidThread());
632 GetClipboard()->ReadData(format.ToString(), result); 640 GetClipboard()->ReadData(format.ToString(), result);
633 } 641 }
634 642
635 void Clipboard::WriteObjects(ClipboardType type, const ObjectMap& objects) { 643 void ClipboardAura::WriteObjects(ClipboardType type, const ObjectMap& objects) {
636 DCHECK(CalledOnValidThread()); 644 DCHECK(CalledOnValidThread());
637 DCHECK(IsSupportedClipboardType(type)); 645 DCHECK(IsSupportedClipboardType(type));
638 for (ObjectMap::const_iterator iter = objects.begin(); 646 for (ObjectMap::const_iterator iter = objects.begin(); iter != objects.end();
639 iter != objects.end(); ++iter) { 647 ++iter) {
640 DispatchObject(static_cast<ObjectType>(iter->first), iter->second); 648 DispatchObject(static_cast<ObjectType>(iter->first), iter->second);
641 } 649 }
642 ClipboardDataBuilder::CommitToClipboard(); 650 ClipboardDataBuilder::CommitToClipboard();
643 } 651 }
644 652
645 void Clipboard::WriteText(const char* text_data, size_t text_len) { 653 void ClipboardAura::WriteText(const char* text_data, size_t text_len) {
646 ClipboardDataBuilder::WriteText(text_data, text_len); 654 ClipboardDataBuilder::WriteText(text_data, text_len);
647 } 655 }
648 656
649 void Clipboard::WriteHTML(const char* markup_data, 657 void ClipboardAura::WriteHTML(const char* markup_data,
650 size_t markup_len, 658 size_t markup_len,
651 const char* url_data, 659 const char* url_data,
652 size_t url_len) { 660 size_t url_len) {
653 ClipboardDataBuilder::WriteHTML(markup_data, markup_len, url_data, url_len); 661 ClipboardDataBuilder::WriteHTML(markup_data, markup_len, url_data, url_len);
654 } 662 }
655 663
656 void Clipboard::WriteRTF(const char* rtf_data, size_t data_len) { 664 void ClipboardAura::WriteRTF(const char* rtf_data, size_t data_len) {
657 ClipboardDataBuilder::WriteRTF(rtf_data, data_len); 665 ClipboardDataBuilder::WriteRTF(rtf_data, data_len);
658 } 666 }
659 667
660 void Clipboard::WriteBookmark(const char* title_data, 668 void ClipboardAura::WriteBookmark(const char* title_data,
661 size_t title_len, 669 size_t title_len,
662 const char* url_data, 670 const char* url_data,
663 size_t url_len) { 671 size_t url_len) {
664 ClipboardDataBuilder::WriteBookmark(title_data, title_len, url_data, url_len); 672 ClipboardDataBuilder::WriteBookmark(title_data, title_len, url_data, url_len);
665 } 673 }
666 674
667 void Clipboard::WriteWebSmartPaste() { 675 void ClipboardAura::WriteWebSmartPaste() {
668 ClipboardDataBuilder::WriteWebSmartPaste(); 676 ClipboardDataBuilder::WriteWebSmartPaste();
669 } 677 }
670 678
671 void Clipboard::WriteBitmap(const SkBitmap& bitmap) { 679 void ClipboardAura::WriteBitmap(const SkBitmap& bitmap) {
672 ClipboardDataBuilder::WriteBitmap(bitmap); 680 ClipboardDataBuilder::WriteBitmap(bitmap);
673 } 681 }
674 682
675 void Clipboard::WriteData(const FormatType& format, 683 void ClipboardAura::WriteData(const FormatType& format,
676 const char* data_data, 684 const char* data_data,
677 size_t data_len) { 685 size_t data_len) {
678 ClipboardDataBuilder::WriteData(format.ToString(), data_data, data_len); 686 ClipboardDataBuilder::WriteData(format.ToString(), data_data, data_len);
679 } 687 }
680 688
681 } // namespace ui 689 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/clipboard/clipboard_aura.h ('k') | ui/base/clipboard/clipboard_aurax11.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698