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

Side by Side Diff: chrome/browser/android/provider/chrome_browser_provider.cc

Issue 370603003: Code cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cancelable_task_tracker.7
Patch Set: Rebase Created 6 years, 5 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
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 "chrome/browser/android/provider/chrome_browser_provider.h" 5 #include "chrome/browser/android/provider/chrome_browser_provider.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <list> 8 #include <list>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 }; 625 };
626 626
627 // ------------- Aynchronous requests classes ------------- // 627 // ------------- Aynchronous requests classes ------------- //
628 628
629 // Base class for asynchronous blocking requests to Chromium services. 629 // Base class for asynchronous blocking requests to Chromium services.
630 // Service: type of the service to use (e.g. HistoryService, FaviconService). 630 // Service: type of the service to use (e.g. HistoryService, FaviconService).
631 template <typename Service> 631 template <typename Service>
632 class AsyncServiceRequest : protected BlockingUIThreadAsyncRequest { 632 class AsyncServiceRequest : protected BlockingUIThreadAsyncRequest {
633 public: 633 public:
634 AsyncServiceRequest(Service* service, 634 AsyncServiceRequest(Service* service,
635 CancelableRequestConsumer* cancelable_consumer,
636 base::CancelableTaskTracker* cancelable_tracker) 635 base::CancelableTaskTracker* cancelable_tracker)
637 : service_(service), 636 : service_(service), cancelable_tracker_(cancelable_tracker) {}
638 cancelable_consumer_(cancelable_consumer),
639 cancelable_tracker_(cancelable_tracker) {}
640 637
641 Service* service() const { return service_; } 638 Service* service() const { return service_; }
642 639
643 CancelableRequestConsumer* cancelable_consumer() const {
644 return cancelable_consumer_;
645 }
646
647 base::CancelableTaskTracker* cancelable_tracker() const { 640 base::CancelableTaskTracker* cancelable_tracker() const {
648 return cancelable_tracker_; 641 return cancelable_tracker_;
649 } 642 }
650 643
651 private: 644 private:
652 Service* service_; 645 Service* service_;
653 CancelableRequestConsumer* cancelable_consumer_;
654 base::CancelableTaskTracker* cancelable_tracker_; 646 base::CancelableTaskTracker* cancelable_tracker_;
655 647
656 DISALLOW_COPY_AND_ASSIGN(AsyncServiceRequest); 648 DISALLOW_COPY_AND_ASSIGN(AsyncServiceRequest);
657 }; 649 };
658 650
659 // Base class for all asynchronous blocking tasks that use the favicon service. 651 // Base class for all asynchronous blocking tasks that use the favicon service.
660 class FaviconServiceTask : public AsyncServiceRequest<FaviconService> { 652 class FaviconServiceTask : public AsyncServiceRequest<FaviconService> {
661 public: 653 public:
662 FaviconServiceTask(FaviconService* service, 654 FaviconServiceTask(FaviconService* service,
663 Profile* profile, 655 base::CancelableTaskTracker* cancelable_tracker,
664 CancelableRequestConsumer* cancelable_consumer, 656 Profile* profile)
665 base::CancelableTaskTracker* cancelable_tracker) 657 : AsyncServiceRequest<FaviconService>(service, cancelable_tracker),
666 : AsyncServiceRequest<FaviconService>(service,
667 cancelable_consumer,
668 cancelable_tracker),
669 profile_(profile) {} 658 profile_(profile) {}
670 659
671 Profile* profile() const { return profile_; } 660 Profile* profile() const { return profile_; }
672 661
673 private: 662 private:
674 Profile* profile_; 663 Profile* profile_;
675 664
676 DISALLOW_COPY_AND_ASSIGN(FaviconServiceTask); 665 DISALLOW_COPY_AND_ASSIGN(FaviconServiceTask);
677 }; 666 };
678 667
679 // Retrieves the favicon or touch icon for a URL from the FaviconService. 668 // Retrieves the favicon or touch icon for a URL from the FaviconService.
680 class BookmarkIconFetchTask : public FaviconServiceTask { 669 class BookmarkIconFetchTask : public FaviconServiceTask {
681 public: 670 public:
682 BookmarkIconFetchTask(FaviconService* favicon_service, 671 BookmarkIconFetchTask(FaviconService* favicon_service,
683 Profile* profile, 672 base::CancelableTaskTracker* cancelable_tracker,
684 CancelableRequestConsumer* cancelable_consumer, 673 Profile* profile)
685 base::CancelableTaskTracker* cancelable_tracker) 674 : FaviconServiceTask(favicon_service, cancelable_tracker, profile) {}
686 : FaviconServiceTask(favicon_service,
687 profile,
688 cancelable_consumer,
689 cancelable_tracker) {}
690 675
691 favicon_base::FaviconRawBitmapResult Run(const GURL& url) { 676 favicon_base::FaviconRawBitmapResult Run(const GURL& url) {
692 float max_scale = ui::GetScaleForScaleFactor( 677 float max_scale = ui::GetScaleForScaleFactor(
693 ResourceBundle::GetSharedInstance().GetMaxScaleFactor()); 678 ResourceBundle::GetSharedInstance().GetMaxScaleFactor());
694 int desired_size_in_pixel = std::ceil(gfx::kFaviconSize * max_scale); 679 int desired_size_in_pixel = std::ceil(gfx::kFaviconSize * max_scale);
695 RunAsyncRequestOnUIThreadBlocking( 680 RunAsyncRequestOnUIThreadBlocking(
696 base::Bind(&FaviconService::GetRawFaviconForPageURL, 681 base::Bind(&FaviconService::GetRawFaviconForPageURL,
697 base::Unretained(service()), 682 base::Unretained(service()),
698 url, 683 url,
699 favicon_base::FAVICON | favicon_base::TOUCH_ICON, 684 favicon_base::FAVICON | favicon_base::TOUCH_ICON,
(...skipping 15 matching lines...) Expand all
715 700
716 DISALLOW_COPY_AND_ASSIGN(BookmarkIconFetchTask); 701 DISALLOW_COPY_AND_ASSIGN(BookmarkIconFetchTask);
717 }; 702 };
718 703
719 // Base class for all asynchronous blocking tasks that use the Android history 704 // Base class for all asynchronous blocking tasks that use the Android history
720 // provider service. 705 // provider service.
721 class HistoryProviderTask 706 class HistoryProviderTask
722 : public AsyncServiceRequest<AndroidHistoryProviderService> { 707 : public AsyncServiceRequest<AndroidHistoryProviderService> {
723 public: 708 public:
724 HistoryProviderTask(AndroidHistoryProviderService* service, 709 HistoryProviderTask(AndroidHistoryProviderService* service,
725 CancelableRequestConsumer* cancelable_consumer,
726 base::CancelableTaskTracker* cancelable_tracker) 710 base::CancelableTaskTracker* cancelable_tracker)
727 : AsyncServiceRequest<AndroidHistoryProviderService>(service, 711 : AsyncServiceRequest<AndroidHistoryProviderService>(service,
728 cancelable_consumer,
729 cancelable_tracker) { 712 cancelable_tracker) {
730 } 713 }
731 714
732 private: 715 private:
733 DISALLOW_COPY_AND_ASSIGN(HistoryProviderTask); 716 DISALLOW_COPY_AND_ASSIGN(HistoryProviderTask);
734 }; 717 };
735 718
736 // Adds a bookmark from the API. 719 // Adds a bookmark from the API.
737 class AddBookmarkFromAPITask : public HistoryProviderTask { 720 class AddBookmarkFromAPITask : public HistoryProviderTask {
738 public: 721 public:
739 AddBookmarkFromAPITask(AndroidHistoryProviderService* service, 722 AddBookmarkFromAPITask(AndroidHistoryProviderService* service,
740 CancelableRequestConsumer* cancelable_consumer,
741 base::CancelableTaskTracker* cancelable_tracker) 723 base::CancelableTaskTracker* cancelable_tracker)
742 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker) {} 724 : HistoryProviderTask(service, cancelable_tracker) {}
743 725
744 history::URLID Run(const history::HistoryAndBookmarkRow& row) { 726 history::URLID Run(const history::HistoryAndBookmarkRow& row) {
745 RunAsyncRequestOnUIThreadBlocking( 727 RunAsyncRequestOnUIThreadBlocking(
746 base::Bind(&AndroidHistoryProviderService::InsertHistoryAndBookmark, 728 base::Bind(&AndroidHistoryProviderService::InsertHistoryAndBookmark,
747 base::Unretained(service()), 729 base::Unretained(service()),
748 row, 730 row,
749 base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted, 731 base::Bind(&AddBookmarkFromAPITask::OnBookmarkInserted,
750 base::Unretained(this)), 732 base::Unretained(this)),
751 cancelable_tracker())); 733 cancelable_tracker()));
752 return result_; 734 return result_;
753 } 735 }
754 736
755 private: 737 private:
756 void OnBookmarkInserted(history::URLID id) { 738 void OnBookmarkInserted(history::URLID id) {
757 // Note that here 0 means an invalid id. 739 // Note that here 0 means an invalid id.
758 // This is because it represents a SQLite database row id. 740 // This is because it represents a SQLite database row id.
759 result_ = id; 741 result_ = id;
760 RequestCompleted(); 742 RequestCompleted();
761 } 743 }
762 744
763 history::URLID result_; 745 history::URLID result_;
764 746
765 DISALLOW_COPY_AND_ASSIGN(AddBookmarkFromAPITask); 747 DISALLOW_COPY_AND_ASSIGN(AddBookmarkFromAPITask);
766 }; 748 };
767 749
768 // Queries bookmarks from the API. 750 // Queries bookmarks from the API.
769 class QueryBookmarksFromAPITask : public HistoryProviderTask { 751 class QueryBookmarksFromAPITask : public HistoryProviderTask {
770 public: 752 public:
771 QueryBookmarksFromAPITask(AndroidHistoryProviderService* service, 753 QueryBookmarksFromAPITask(AndroidHistoryProviderService* service,
772 CancelableRequestConsumer* cancelable_consumer,
773 base::CancelableTaskTracker* cancelable_tracker) 754 base::CancelableTaskTracker* cancelable_tracker)
774 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker), 755 : HistoryProviderTask(service, cancelable_tracker), result_(NULL) {}
775 result_(NULL) {}
776 756
777 history::AndroidStatement* Run( 757 history::AndroidStatement* Run(
778 const std::vector<history::HistoryAndBookmarkRow::ColumnID>& projections, 758 const std::vector<history::HistoryAndBookmarkRow::ColumnID>& projections,
779 const std::string& selection, 759 const std::string& selection,
780 const std::vector<base::string16>& selection_args, 760 const std::vector<base::string16>& selection_args,
781 const std::string& sort_order) { 761 const std::string& sort_order) {
782 RunAsyncRequestOnUIThreadBlocking( 762 RunAsyncRequestOnUIThreadBlocking(
783 base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks, 763 base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks,
784 base::Unretained(service()), 764 base::Unretained(service()),
785 projections, 765 projections,
(...skipping 14 matching lines...) Expand all
800 780
801 history::AndroidStatement* result_; 781 history::AndroidStatement* result_;
802 782
803 DISALLOW_COPY_AND_ASSIGN(QueryBookmarksFromAPITask); 783 DISALLOW_COPY_AND_ASSIGN(QueryBookmarksFromAPITask);
804 }; 784 };
805 785
806 // Updates bookmarks from the API. 786 // Updates bookmarks from the API.
807 class UpdateBookmarksFromAPITask : public HistoryProviderTask { 787 class UpdateBookmarksFromAPITask : public HistoryProviderTask {
808 public: 788 public:
809 UpdateBookmarksFromAPITask(AndroidHistoryProviderService* service, 789 UpdateBookmarksFromAPITask(AndroidHistoryProviderService* service,
810 CancelableRequestConsumer* cancelable_consumer,
811 base::CancelableTaskTracker* cancelable_tracker) 790 base::CancelableTaskTracker* cancelable_tracker)
812 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker), 791 : HistoryProviderTask(service, cancelable_tracker), result_(0) {}
813 result_(0) {}
814 792
815 int Run(const history::HistoryAndBookmarkRow& row, 793 int Run(const history::HistoryAndBookmarkRow& row,
816 const std::string& selection, 794 const std::string& selection,
817 const std::vector<base::string16>& selection_args) { 795 const std::vector<base::string16>& selection_args) {
818 RunAsyncRequestOnUIThreadBlocking( 796 RunAsyncRequestOnUIThreadBlocking(
819 base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks, 797 base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks,
820 base::Unretained(service()), 798 base::Unretained(service()),
821 row, 799 row,
822 selection, 800 selection,
823 selection_args, 801 selection_args,
(...skipping 11 matching lines...) Expand all
835 813
836 int result_; 814 int result_;
837 815
838 DISALLOW_COPY_AND_ASSIGN(UpdateBookmarksFromAPITask); 816 DISALLOW_COPY_AND_ASSIGN(UpdateBookmarksFromAPITask);
839 }; 817 };
840 818
841 // Removes bookmarks from the API. 819 // Removes bookmarks from the API.
842 class RemoveBookmarksFromAPITask : public HistoryProviderTask { 820 class RemoveBookmarksFromAPITask : public HistoryProviderTask {
843 public: 821 public:
844 RemoveBookmarksFromAPITask(AndroidHistoryProviderService* service, 822 RemoveBookmarksFromAPITask(AndroidHistoryProviderService* service,
845 CancelableRequestConsumer* cancelable_consumer,
846 base::CancelableTaskTracker* cancelable_tracker) 823 base::CancelableTaskTracker* cancelable_tracker)
847 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker), 824 : HistoryProviderTask(service, cancelable_tracker), result_(0) {}
848 result_(0) {}
849 825
850 int Run(const std::string& selection, 826 int Run(const std::string& selection,
851 const std::vector<base::string16>& selection_args) { 827 const std::vector<base::string16>& selection_args) {
852 RunAsyncRequestOnUIThreadBlocking( 828 RunAsyncRequestOnUIThreadBlocking(
853 base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks, 829 base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks,
854 base::Unretained(service()), 830 base::Unretained(service()),
855 selection, 831 selection,
856 selection_args, 832 selection_args,
857 base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved, 833 base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved,
858 base::Unretained(this)), 834 base::Unretained(this)),
859 cancelable_tracker())); 835 cancelable_tracker()));
860 return result_; 836 return result_;
861 } 837 }
862 838
863 private: 839 private:
864 void OnBookmarksRemoved(int removed_row_count) { 840 void OnBookmarksRemoved(int removed_row_count) {
865 result_ = removed_row_count; 841 result_ = removed_row_count;
866 RequestCompleted(); 842 RequestCompleted();
867 } 843 }
868 844
869 int result_; 845 int result_;
870 846
871 DISALLOW_COPY_AND_ASSIGN(RemoveBookmarksFromAPITask); 847 DISALLOW_COPY_AND_ASSIGN(RemoveBookmarksFromAPITask);
872 }; 848 };
873 849
874 // Removes history from the API. 850 // Removes history from the API.
875 class RemoveHistoryFromAPITask : public HistoryProviderTask { 851 class RemoveHistoryFromAPITask : public HistoryProviderTask {
876 public: 852 public:
877 RemoveHistoryFromAPITask(AndroidHistoryProviderService* service, 853 RemoveHistoryFromAPITask(AndroidHistoryProviderService* service,
878 CancelableRequestConsumer* cancelable_consumer,
879 base::CancelableTaskTracker* cancelable_tracker) 854 base::CancelableTaskTracker* cancelable_tracker)
880 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker), 855 : HistoryProviderTask(service, cancelable_tracker), result_(0) {}
881 result_(0) {}
882 856
883 int Run(const std::string& selection, 857 int Run(const std::string& selection,
884 const std::vector<base::string16>& selection_args) { 858 const std::vector<base::string16>& selection_args) {
885 RunAsyncRequestOnUIThreadBlocking( 859 RunAsyncRequestOnUIThreadBlocking(
886 base::Bind(&AndroidHistoryProviderService::DeleteHistory, 860 base::Bind(&AndroidHistoryProviderService::DeleteHistory,
887 base::Unretained(service()), 861 base::Unretained(service()),
888 selection, 862 selection,
889 selection_args, 863 selection_args,
890 base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved, 864 base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved,
891 base::Unretained(this)), 865 base::Unretained(this)),
892 cancelable_tracker())); 866 cancelable_tracker()));
893 return result_; 867 return result_;
894 } 868 }
895 869
896 private: 870 private:
897 void OnHistoryRemoved(int removed_row_count) { 871 void OnHistoryRemoved(int removed_row_count) {
898 result_ = removed_row_count; 872 result_ = removed_row_count;
899 RequestCompleted(); 873 RequestCompleted();
900 } 874 }
901 875
902 int result_; 876 int result_;
903 877
904 DISALLOW_COPY_AND_ASSIGN(RemoveHistoryFromAPITask); 878 DISALLOW_COPY_AND_ASSIGN(RemoveHistoryFromAPITask);
905 }; 879 };
906 880
907 // This class provides the common method for the SearchTermAPIHelper. 881 // This class provides the common method for the SearchTermAPIHelper.
908 class SearchTermTask : public HistoryProviderTask { 882 class SearchTermTask : public HistoryProviderTask {
909 protected: 883 protected:
910 SearchTermTask(AndroidHistoryProviderService* service, 884 SearchTermTask(AndroidHistoryProviderService* service,
911 CancelableRequestConsumer* cancelable_consumer,
912 base::CancelableTaskTracker* cancelable_tracker, 885 base::CancelableTaskTracker* cancelable_tracker,
913 Profile* profile) 886 Profile* profile)
914 : HistoryProviderTask(service, cancelable_consumer, cancelable_tracker), 887 : HistoryProviderTask(service, cancelable_tracker), profile_(profile) {}
915 profile_(profile) {}
916 888
917 // Fill SearchRow's keyword_id and url fields according the given 889 // Fill SearchRow's keyword_id and url fields according the given
918 // search_term. Return true if succeeded. 890 // search_term. Return true if succeeded.
919 void BuildSearchRow(history::SearchRow* row) { 891 void BuildSearchRow(history::SearchRow* row) {
920 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 892 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
921 893
922 TemplateURLService* template_service = 894 TemplateURLService* template_service =
923 TemplateURLServiceFactory::GetForProfile(profile_); 895 TemplateURLServiceFactory::GetForProfile(profile_);
924 template_service->Load(); 896 template_service->Load();
925 897
(...skipping 15 matching lines...) Expand all
941 private: 913 private:
942 Profile* profile_; 914 Profile* profile_;
943 915
944 DISALLOW_COPY_AND_ASSIGN(SearchTermTask); 916 DISALLOW_COPY_AND_ASSIGN(SearchTermTask);
945 }; 917 };
946 918
947 // Adds a search term from the API. 919 // Adds a search term from the API.
948 class AddSearchTermFromAPITask : public SearchTermTask { 920 class AddSearchTermFromAPITask : public SearchTermTask {
949 public: 921 public:
950 AddSearchTermFromAPITask(AndroidHistoryProviderService* service, 922 AddSearchTermFromAPITask(AndroidHistoryProviderService* service,
951 CancelableRequestConsumer* cancelable_consumer,
952 base::CancelableTaskTracker* cancelable_tracker, 923 base::CancelableTaskTracker* cancelable_tracker,
953 Profile* profile) 924 Profile* profile)
954 : SearchTermTask(service, 925 : SearchTermTask(service, cancelable_tracker, profile) {}
955 cancelable_consumer,
956 cancelable_tracker,
957 profile) {}
958 926
959 history::URLID Run(const history::SearchRow& row) { 927 history::URLID Run(const history::SearchRow& row) {
960 RunAsyncRequestOnUIThreadBlocking( 928 RunAsyncRequestOnUIThreadBlocking(
961 base::Bind(&AddSearchTermFromAPITask::MakeRequestOnUIThread, 929 base::Bind(&AddSearchTermFromAPITask::MakeRequestOnUIThread,
962 base::Unretained(this), row)); 930 base::Unretained(this), row));
963 return result_; 931 return result_;
964 } 932 }
965 933
966 private: 934 private:
967 void MakeRequestOnUIThread(const history::SearchRow& row) { 935 void MakeRequestOnUIThread(const history::SearchRow& row) {
(...skipping 16 matching lines...) Expand all
984 952
985 history::URLID result_; 953 history::URLID result_;
986 954
987 DISALLOW_COPY_AND_ASSIGN(AddSearchTermFromAPITask); 955 DISALLOW_COPY_AND_ASSIGN(AddSearchTermFromAPITask);
988 }; 956 };
989 957
990 // Queries search terms from the API. 958 // Queries search terms from the API.
991 class QuerySearchTermsFromAPITask : public SearchTermTask { 959 class QuerySearchTermsFromAPITask : public SearchTermTask {
992 public: 960 public:
993 QuerySearchTermsFromAPITask(AndroidHistoryProviderService* service, 961 QuerySearchTermsFromAPITask(AndroidHistoryProviderService* service,
994 CancelableRequestConsumer* cancelable_consumer,
995 base::CancelableTaskTracker* cancelable_tracker, 962 base::CancelableTaskTracker* cancelable_tracker,
996 Profile* profile) 963 Profile* profile)
997 : SearchTermTask(service, 964 : SearchTermTask(service, cancelable_tracker, profile), result_(NULL) {}
998 cancelable_consumer,
999 cancelable_tracker,
1000 profile),
1001 result_(NULL) {}
1002 965
1003 history::AndroidStatement* Run( 966 history::AndroidStatement* Run(
1004 const std::vector<history::SearchRow::ColumnID>& projections, 967 const std::vector<history::SearchRow::ColumnID>& projections,
1005 const std::string& selection, 968 const std::string& selection,
1006 const std::vector<base::string16>& selection_args, 969 const std::vector<base::string16>& selection_args,
1007 const std::string& sort_order) { 970 const std::string& sort_order) {
1008 RunAsyncRequestOnUIThreadBlocking(base::Bind( 971 RunAsyncRequestOnUIThreadBlocking(base::Bind(
1009 &AndroidHistoryProviderService::QuerySearchTerms, 972 &AndroidHistoryProviderService::QuerySearchTerms,
1010 base::Unretained(service()), 973 base::Unretained(service()),
1011 projections, 974 projections,
(...skipping 15 matching lines...) Expand all
1027 990
1028 history::AndroidStatement* result_; 991 history::AndroidStatement* result_;
1029 992
1030 DISALLOW_COPY_AND_ASSIGN(QuerySearchTermsFromAPITask); 993 DISALLOW_COPY_AND_ASSIGN(QuerySearchTermsFromAPITask);
1031 }; 994 };
1032 995
1033 // Updates search terms from the API. 996 // Updates search terms from the API.
1034 class UpdateSearchTermsFromAPITask : public SearchTermTask { 997 class UpdateSearchTermsFromAPITask : public SearchTermTask {
1035 public: 998 public:
1036 UpdateSearchTermsFromAPITask(AndroidHistoryProviderService* service, 999 UpdateSearchTermsFromAPITask(AndroidHistoryProviderService* service,
1037 CancelableRequestConsumer* cancelable_consumer,
1038 base::CancelableTaskTracker* cancelable_tracker, 1000 base::CancelableTaskTracker* cancelable_tracker,
1039 Profile* profile) 1001 Profile* profile)
1040 : SearchTermTask(service, 1002 : SearchTermTask(service, cancelable_tracker, profile), result_(0) {}
1041 cancelable_consumer,
1042 cancelable_tracker,
1043 profile),
1044 result_(0) {}
1045 1003
1046 int Run(const history::SearchRow& row, 1004 int Run(const history::SearchRow& row,
1047 const std::string& selection, 1005 const std::string& selection,
1048 const std::vector<base::string16>& selection_args) { 1006 const std::vector<base::string16>& selection_args) {
1049 RunAsyncRequestOnUIThreadBlocking( 1007 RunAsyncRequestOnUIThreadBlocking(
1050 base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread, 1008 base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread,
1051 base::Unretained(this), row, selection, selection_args)); 1009 base::Unretained(this), row, selection, selection_args));
1052 return result_; 1010 return result_;
1053 } 1011 }
1054 1012
(...skipping 21 matching lines...) Expand all
1076 1034
1077 int result_; 1035 int result_;
1078 1036
1079 DISALLOW_COPY_AND_ASSIGN(UpdateSearchTermsFromAPITask); 1037 DISALLOW_COPY_AND_ASSIGN(UpdateSearchTermsFromAPITask);
1080 }; 1038 };
1081 1039
1082 // Removes search terms from the API. 1040 // Removes search terms from the API.
1083 class RemoveSearchTermsFromAPITask : public SearchTermTask { 1041 class RemoveSearchTermsFromAPITask : public SearchTermTask {
1084 public: 1042 public:
1085 RemoveSearchTermsFromAPITask(AndroidHistoryProviderService* service, 1043 RemoveSearchTermsFromAPITask(AndroidHistoryProviderService* service,
1086 CancelableRequestConsumer* cancelable_consumer,
1087 base::CancelableTaskTracker* cancelable_tracker, 1044 base::CancelableTaskTracker* cancelable_tracker,
1088 Profile* profile) 1045 Profile* profile)
1089 : SearchTermTask(service, 1046 : SearchTermTask(service, cancelable_tracker, profile), result_() {}
1090 cancelable_consumer,
1091 cancelable_tracker,
1092 profile),
1093 result_() {}
1094 1047
1095 int Run(const std::string& selection, 1048 int Run(const std::string& selection,
1096 const std::vector<base::string16>& selection_args) { 1049 const std::vector<base::string16>& selection_args) {
1097 RunAsyncRequestOnUIThreadBlocking(base::Bind( 1050 RunAsyncRequestOnUIThreadBlocking(base::Bind(
1098 &AndroidHistoryProviderService::DeleteSearchTerms, 1051 &AndroidHistoryProviderService::DeleteSearchTerms,
1099 base::Unretained(service()), 1052 base::Unretained(service()),
1100 selection, 1053 selection,
1101 selection_args, 1054 selection_args,
1102 base::Bind(&RemoveSearchTermsFromAPITask::OnSearchTermsDeleted, 1055 base::Bind(&RemoveSearchTermsFromAPITask::OnSearchTermsDeleted,
1103 base::Unretained(this)), 1056 base::Unretained(this)),
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
1288 history::HistoryAndBookmarkRow row; 1241 history::HistoryAndBookmarkRow row;
1289 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title, 1242 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title,
1290 visits, parent_id, &row, bookmark_model_); 1243 visits, parent_id, &row, bookmark_model_);
1291 1244
1292 // URL must be valid. 1245 // URL must be valid.
1293 if (row.url().is_empty()) { 1246 if (row.url().is_empty()) {
1294 LOG(ERROR) << "Not a valid URL " << row.raw_url(); 1247 LOG(ERROR) << "Not a valid URL " << row.raw_url();
1295 return kInvalidContentProviderId; 1248 return kInvalidContentProviderId;
1296 } 1249 }
1297 1250
1298 AddBookmarkFromAPITask task( 1251 AddBookmarkFromAPITask task(service_.get(), &cancelable_task_tracker_);
1299 service_.get(), &android_history_consumer_, &cancelable_task_tracker_);
1300 return task.Run(row); 1252 return task.Run(row);
1301 } 1253 }
1302 1254
1303 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::QueryBookmarkFromAPI( 1255 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::QueryBookmarkFromAPI(
1304 JNIEnv* env, 1256 JNIEnv* env,
1305 jobject obj, 1257 jobject obj,
1306 jobjectArray projection, 1258 jobjectArray projection,
1307 jstring selections, 1259 jstring selections,
1308 jobjectArray selection_args, 1260 jobjectArray selection_args,
1309 jstring sort_order) { 1261 jstring sort_order) {
(...skipping 25 matching lines...) Expand all
1335 std::string where_clause; 1287 std::string where_clause;
1336 if (selections) { 1288 if (selections) {
1337 where_clause = ConvertJavaStringToUTF8(env, selections); 1289 where_clause = ConvertJavaStringToUTF8(env, selections);
1338 } 1290 }
1339 1291
1340 std::string sort_clause; 1292 std::string sort_clause;
1341 if (sort_order) { 1293 if (sort_order) {
1342 sort_clause = ConvertJavaStringToUTF8(env, sort_order); 1294 sort_clause = ConvertJavaStringToUTF8(env, sort_order);
1343 } 1295 }
1344 1296
1345 QueryBookmarksFromAPITask task( 1297 QueryBookmarksFromAPITask task(service_.get(), &cancelable_task_tracker_);
1346 service_.get(), &android_history_consumer_, &cancelable_task_tracker_);
1347 history::AndroidStatement* statement = task.Run( 1298 history::AndroidStatement* statement = task.Run(
1348 query_columns, where_clause, where_args, sort_clause); 1299 query_columns, where_clause, where_args, sort_clause);
1349 if (!statement) 1300 if (!statement)
1350 return ScopedJavaLocalRef<jobject>(); 1301 return ScopedJavaLocalRef<jobject>();
1351 1302
1352 // Creates and returns org.chromium.chrome.browser.database.SQLiteCursor 1303 // Creates and returns org.chromium.chrome.browser.database.SQLiteCursor
1353 // Java object. 1304 // Java object.
1354 return SQLiteCursor::NewJavaSqliteCursor(env, columns_name, statement, 1305 return SQLiteCursor::NewJavaSqliteCursor(env, columns_name, statement,
1355 service_.get(), favicon_service_.get()); 1306 service_.get(), favicon_service_.get());
1356 } 1307 }
(...skipping 16 matching lines...) Expand all
1373 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title, 1324 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title,
1374 visits, parent_id, &row, bookmark_model_); 1325 visits, parent_id, &row, bookmark_model_);
1375 1326
1376 std::vector<base::string16> where_args = 1327 std::vector<base::string16> where_args =
1377 ConvertJStringArrayToString16Array(env, selection_args); 1328 ConvertJStringArrayToString16Array(env, selection_args);
1378 1329
1379 std::string where_clause; 1330 std::string where_clause;
1380 if (selections) 1331 if (selections)
1381 where_clause = ConvertJavaStringToUTF8(env, selections); 1332 where_clause = ConvertJavaStringToUTF8(env, selections);
1382 1333
1383 UpdateBookmarksFromAPITask task( 1334 UpdateBookmarksFromAPITask task(service_.get(), &cancelable_task_tracker_);
1384 service_.get(), &android_history_consumer_, &cancelable_task_tracker_);
1385 return task.Run(row, where_clause, where_args); 1335 return task.Run(row, where_clause, where_args);
1386 } 1336 }
1387 1337
1388 jint ChromeBrowserProvider::RemoveBookmarkFromAPI(JNIEnv* env, 1338 jint ChromeBrowserProvider::RemoveBookmarkFromAPI(JNIEnv* env,
1389 jobject obj, 1339 jobject obj,
1390 jstring selections, 1340 jstring selections,
1391 jobjectArray selection_args) { 1341 jobjectArray selection_args) {
1392 std::vector<base::string16> where_args = 1342 std::vector<base::string16> where_args =
1393 ConvertJStringArrayToString16Array(env, selection_args); 1343 ConvertJStringArrayToString16Array(env, selection_args);
1394 1344
1395 std::string where_clause; 1345 std::string where_clause;
1396 if (selections) 1346 if (selections)
1397 where_clause = ConvertJavaStringToUTF8(env, selections); 1347 where_clause = ConvertJavaStringToUTF8(env, selections);
1398 1348
1399 RemoveBookmarksFromAPITask task( 1349 RemoveBookmarksFromAPITask task(service_.get(), &cancelable_task_tracker_);
1400 service_.get(), &android_history_consumer_, &cancelable_task_tracker_);
1401 return task.Run(where_clause, where_args); 1350 return task.Run(where_clause, where_args);
1402 } 1351 }
1403 1352
1404 jint ChromeBrowserProvider::RemoveHistoryFromAPI(JNIEnv* env, 1353 jint ChromeBrowserProvider::RemoveHistoryFromAPI(JNIEnv* env,
1405 jobject obj, 1354 jobject obj,
1406 jstring selections, 1355 jstring selections,
1407 jobjectArray selection_args) { 1356 jobjectArray selection_args) {
1408 std::vector<base::string16> where_args = 1357 std::vector<base::string16> where_args =
1409 ConvertJStringArrayToString16Array(env, selection_args); 1358 ConvertJStringArrayToString16Array(env, selection_args);
1410 1359
1411 std::string where_clause; 1360 std::string where_clause;
1412 if (selections) 1361 if (selections)
1413 where_clause = ConvertJavaStringToUTF8(env, selections); 1362 where_clause = ConvertJavaStringToUTF8(env, selections);
1414 1363
1415 RemoveHistoryFromAPITask task( 1364 RemoveHistoryFromAPITask task(service_.get(), &cancelable_task_tracker_);
1416 service_.get(), &android_history_consumer_, &cancelable_task_tracker_);
1417 return task.Run(where_clause, where_args); 1365 return task.Run(where_clause, where_args);
1418 } 1366 }
1419 1367
1420 // Add the search term with the given column values. The value is not given if 1368 // Add the search term with the given column values. The value is not given if
1421 // it is NULL. 1369 // it is NULL.
1422 jlong ChromeBrowserProvider::AddSearchTermFromAPI(JNIEnv* env, 1370 jlong ChromeBrowserProvider::AddSearchTermFromAPI(JNIEnv* env,
1423 jobject obj, 1371 jobject obj,
1424 jstring search_term, 1372 jstring search_term,
1425 jobject date) { 1373 jobject date) {
1426 DCHECK(search_term); 1374 DCHECK(search_term);
1427 1375
1428 history::SearchRow row; 1376 history::SearchRow row;
1429 FillSearchRow(env, obj, search_term, date, &row); 1377 FillSearchRow(env, obj, search_term, date, &row);
1430 1378
1431 // URL must be valid. 1379 // URL must be valid.
1432 if (row.search_term().empty()) { 1380 if (row.search_term().empty()) {
1433 LOG(ERROR) << "Search term is empty."; 1381 LOG(ERROR) << "Search term is empty.";
1434 return kInvalidContentProviderId; 1382 return kInvalidContentProviderId;
1435 } 1383 }
1436 1384
1437 AddSearchTermFromAPITask task(service_.get(), 1385 AddSearchTermFromAPITask task(service_.get(),
1438 &android_history_consumer_,
1439 &cancelable_task_tracker_, 1386 &cancelable_task_tracker_,
1440 profile_); 1387 profile_);
1441 return task.Run(row); 1388 return task.Run(row);
1442 } 1389 }
1443 1390
1444 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::QuerySearchTermFromAPI( 1391 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::QuerySearchTermFromAPI(
1445 JNIEnv* env, 1392 JNIEnv* env,
1446 jobject obj, 1393 jobject obj,
1447 jobjectArray projection, 1394 jobjectArray projection,
1448 jstring selections, 1395 jstring selections,
(...skipping 27 matching lines...) Expand all
1476 if (selections) { 1423 if (selections) {
1477 where_clause = ConvertJavaStringToUTF8(env, selections); 1424 where_clause = ConvertJavaStringToUTF8(env, selections);
1478 } 1425 }
1479 1426
1480 std::string sort_clause; 1427 std::string sort_clause;
1481 if (sort_order) { 1428 if (sort_order) {
1482 sort_clause = ConvertJavaStringToUTF8(env, sort_order); 1429 sort_clause = ConvertJavaStringToUTF8(env, sort_order);
1483 } 1430 }
1484 1431
1485 QuerySearchTermsFromAPITask task(service_.get(), 1432 QuerySearchTermsFromAPITask task(service_.get(),
1486 &android_history_consumer_,
1487 &cancelable_task_tracker_, 1433 &cancelable_task_tracker_,
1488 profile_); 1434 profile_);
1489 history::AndroidStatement* statement = task.Run( 1435 history::AndroidStatement* statement = task.Run(
1490 query_columns, where_clause, where_args, sort_clause); 1436 query_columns, where_clause, where_args, sort_clause);
1491 if (!statement) 1437 if (!statement)
1492 return ScopedJavaLocalRef<jobject>(); 1438 return ScopedJavaLocalRef<jobject>();
1493 // Creates and returns org.chromium.chrome.browser.database.SQLiteCursor 1439 // Creates and returns org.chromium.chrome.browser.database.SQLiteCursor
1494 // Java object. 1440 // Java object.
1495 return SQLiteCursor::NewJavaSqliteCursor(env, columns_name, statement, 1441 return SQLiteCursor::NewJavaSqliteCursor(env, columns_name, statement,
1496 service_.get(), favicon_service_.get()); 1442 service_.get(), favicon_service_.get());
1497 } 1443 }
1498 1444
1499 // Updates the search terms with the given column values. The value is not 1445 // Updates the search terms with the given column values. The value is not
1500 // given if it is NULL. 1446 // given if it is NULL.
1501 jint ChromeBrowserProvider::UpdateSearchTermFromAPI( 1447 jint ChromeBrowserProvider::UpdateSearchTermFromAPI(
1502 JNIEnv* env, jobject obj, jstring search_term, jobject date, 1448 JNIEnv* env, jobject obj, jstring search_term, jobject date,
1503 jstring selections, jobjectArray selection_args) { 1449 jstring selections, jobjectArray selection_args) {
1504 history::SearchRow row; 1450 history::SearchRow row;
1505 FillSearchRow(env, obj, search_term, date, &row); 1451 FillSearchRow(env, obj, search_term, date, &row);
1506 1452
1507 std::vector<base::string16> where_args = ConvertJStringArrayToString16Array( 1453 std::vector<base::string16> where_args = ConvertJStringArrayToString16Array(
1508 env, selection_args); 1454 env, selection_args);
1509 1455
1510 std::string where_clause; 1456 std::string where_clause;
1511 if (selections) 1457 if (selections)
1512 where_clause = ConvertJavaStringToUTF8(env, selections); 1458 where_clause = ConvertJavaStringToUTF8(env, selections);
1513 1459
1514 UpdateSearchTermsFromAPITask task(service_.get(), 1460 UpdateSearchTermsFromAPITask task(service_.get(),
1515 &android_history_consumer_,
1516 &cancelable_task_tracker_, 1461 &cancelable_task_tracker_,
1517 profile_); 1462 profile_);
1518 return task.Run(row, where_clause, where_args); 1463 return task.Run(row, where_clause, where_args);
1519 } 1464 }
1520 1465
1521 jint ChromeBrowserProvider::RemoveSearchTermFromAPI( 1466 jint ChromeBrowserProvider::RemoveSearchTermFromAPI(
1522 JNIEnv* env, jobject obj, jstring selections, jobjectArray selection_args) { 1467 JNIEnv* env, jobject obj, jstring selections, jobjectArray selection_args) {
1523 std::vector<base::string16> where_args = 1468 std::vector<base::string16> where_args =
1524 ConvertJStringArrayToString16Array(env, selection_args); 1469 ConvertJStringArrayToString16Array(env, selection_args);
1525 1470
1526 std::string where_clause; 1471 std::string where_clause;
1527 if (selections) 1472 if (selections)
1528 where_clause = ConvertJavaStringToUTF8(env, selections); 1473 where_clause = ConvertJavaStringToUTF8(env, selections);
1529 1474
1530 RemoveSearchTermsFromAPITask task(service_.get(), 1475 RemoveSearchTermsFromAPITask task(service_.get(),
1531 &android_history_consumer_,
1532 &cancelable_task_tracker_, 1476 &cancelable_task_tracker_,
1533 profile_); 1477 profile_);
1534 return task.Run(where_clause, where_args); 1478 return task.Run(where_clause, where_args);
1535 } 1479 }
1536 1480
1537 // ------------- Provider custom APIs ------------- // 1481 // ------------- Provider custom APIs ------------- //
1538 1482
1539 jboolean ChromeBrowserProvider::BookmarkNodeExists( 1483 jboolean ChromeBrowserProvider::BookmarkNodeExists(
1540 JNIEnv* env, 1484 JNIEnv* env,
1541 jobject obj, 1485 jobject obj,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 IsInMobileBookmarksBranchTask task(bookmark_model_); 1543 IsInMobileBookmarksBranchTask task(bookmark_model_);
1600 return task.Run(id); 1544 return task.Run(id);
1601 } 1545 }
1602 1546
1603 ScopedJavaLocalRef<jbyteArray> ChromeBrowserProvider::GetFaviconOrTouchIcon( 1547 ScopedJavaLocalRef<jbyteArray> ChromeBrowserProvider::GetFaviconOrTouchIcon(
1604 JNIEnv* env, jobject obj, jstring jurl) { 1548 JNIEnv* env, jobject obj, jstring jurl) {
1605 if (!jurl) 1549 if (!jurl)
1606 return ScopedJavaLocalRef<jbyteArray>(); 1550 return ScopedJavaLocalRef<jbyteArray>();
1607 1551
1608 GURL url = GURL(ConvertJavaStringToUTF16(env, jurl)); 1552 GURL url = GURL(ConvertJavaStringToUTF16(env, jurl));
1609 BookmarkIconFetchTask favicon_task(favicon_service_.get(), 1553 BookmarkIconFetchTask favicon_task(
1610 profile_, 1554 favicon_service_.get(), &cancelable_task_tracker_, profile_);
1611 &favicon_consumer_,
1612 &cancelable_task_tracker_);
1613 favicon_base::FaviconRawBitmapResult bitmap_result = favicon_task.Run(url); 1555 favicon_base::FaviconRawBitmapResult bitmap_result = favicon_task.Run(url);
1614 1556
1615 if (!bitmap_result.is_valid() || !bitmap_result.bitmap_data.get()) 1557 if (!bitmap_result.is_valid() || !bitmap_result.bitmap_data.get())
1616 return ScopedJavaLocalRef<jbyteArray>(); 1558 return ScopedJavaLocalRef<jbyteArray>();
1617 1559
1618 return base::android::ToJavaByteArray(env, bitmap_result.bitmap_data->front(), 1560 return base::android::ToJavaByteArray(env, bitmap_result.bitmap_data->front(),
1619 bitmap_result.bitmap_data->size()); 1561 bitmap_result.bitmap_data->size());
1620 } 1562 }
1621 1563
1622 ScopedJavaLocalRef<jbyteArray> ChromeBrowserProvider::GetThumbnail( 1564 ScopedJavaLocalRef<jbyteArray> ChromeBrowserProvider::GetThumbnail(
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 Java_ChromeBrowserProvider_onBookmarkChanged(env, obj.obj()); 1618 Java_ChromeBrowserProvider_onBookmarkChanged(env, obj.obj());
1677 } else if (type == 1619 } else if (type ==
1678 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) { 1620 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) {
1679 JNIEnv* env = AttachCurrentThread(); 1621 JNIEnv* env = AttachCurrentThread();
1680 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env); 1622 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env);
1681 if (obj.is_null()) 1623 if (obj.is_null())
1682 return; 1624 return;
1683 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj()); 1625 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj());
1684 } 1626 }
1685 } 1627 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698