| 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 "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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |