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

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

Issue 105193002: Replace string16 with base::string16. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
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 <list> 7 #include <list>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 } 140 }
141 141
142 jint ConvertJIntegerToJint(JNIEnv* env, jobject integer_obj) { 142 jint ConvertJIntegerToJint(JNIEnv* env, jobject integer_obj) {
143 ScopedJavaLocalRef<jclass> jinteger_clazz = 143 ScopedJavaLocalRef<jclass> jinteger_clazz =
144 GetClass(env, "java/lang/Integer"); 144 GetClass(env, "java/lang/Integer");
145 jmethodID int_value = MethodID::Get<MethodID::TYPE_INSTANCE>( 145 jmethodID int_value = MethodID::Get<MethodID::TYPE_INSTANCE>(
146 env, jinteger_clazz.obj(), "intValue", "()I"); 146 env, jinteger_clazz.obj(), "intValue", "()I");
147 return env->CallIntMethod(integer_obj, int_value, NULL); 147 return env->CallIntMethod(integer_obj, int_value, NULL);
148 } 148 }
149 149
150 std::vector<string16> ConvertJStringArrayToString16Array(JNIEnv* env, 150 std::vector<base::string16> ConvertJStringArrayToString16Array(
151 jobjectArray array) { 151 JNIEnv* env,
152 std::vector<string16> results; 152 jobjectArray array) {
153 std::vector<base::string16> results;
153 if (array) { 154 if (array) {
154 jsize len = env->GetArrayLength(array); 155 jsize len = env->GetArrayLength(array);
155 for (int i = 0; i < len; i++) { 156 for (int i = 0; i < len; i++) {
156 results.push_back(ConvertJavaStringToUTF16(env, 157 results.push_back(ConvertJavaStringToUTF16(env,
157 static_cast<jstring>(env->GetObjectArrayElement(array, i)))); 158 static_cast<jstring>(env->GetObjectArrayElement(array, i))));
158 } 159 }
159 } 160 }
160 return results; 161 return results;
161 } 162 }
162 163
163 // ------------- Utility methods used by tasks ------------- // 164 // ------------- Utility methods used by tasks ------------- //
164 165
165 // Parse the given url and return a GURL, appending the default scheme 166 // Parse the given url and return a GURL, appending the default scheme
166 // if one is not present. 167 // if one is not present.
167 GURL ParseAndMaybeAppendScheme(const string16& url, 168 GURL ParseAndMaybeAppendScheme(const base::string16& url,
168 const char* default_scheme) { 169 const char* default_scheme) {
169 GURL gurl(url); 170 GURL gurl(url);
170 if (!gurl.is_valid() && !gurl.has_scheme()) { 171 if (!gurl.is_valid() && !gurl.has_scheme()) {
171 string16 refined_url(ASCIIToUTF16(default_scheme)); 172 base::string16 refined_url(ASCIIToUTF16(default_scheme));
172 refined_url.append(url); 173 refined_url.append(url);
173 gurl = GURL(refined_url); 174 gurl = GURL(refined_url);
174 } 175 }
175 return gurl; 176 return gurl;
176 } 177 }
177 178
178 const BookmarkNode* GetChildFolderByTitle(const BookmarkNode* parent, 179 const BookmarkNode* GetChildFolderByTitle(const BookmarkNode* parent,
179 const string16& title) { 180 const base::string16& title) {
180 for (int i = 0; i < parent->child_count(); ++i) { 181 for (int i = 0; i < parent->child_count(); ++i) {
181 if (parent->GetChild(i)->is_folder() && 182 if (parent->GetChild(i)->is_folder() &&
182 parent->GetChild(i)->GetTitle() == title) { 183 parent->GetChild(i)->GetTitle() == title) {
183 return parent->GetChild(i); 184 return parent->GetChild(i);
184 } 185 }
185 } 186 }
186 return NULL; 187 return NULL;
187 } 188 }
188 189
189 // ------------- Synchronous task classes ------------- // 190 // ------------- Synchronous task classes ------------- //
190 191
191 // Utility task to add a bookmark. 192 // Utility task to add a bookmark.
192 class AddBookmarkTask : public BookmarkModelTask { 193 class AddBookmarkTask : public BookmarkModelTask {
193 public: 194 public:
194 explicit AddBookmarkTask(BookmarkModel* model) : BookmarkModelTask(model) {} 195 explicit AddBookmarkTask(BookmarkModel* model) : BookmarkModelTask(model) {}
195 196
196 int64 Run(const string16& title, 197 int64 Run(const base::string16& title,
197 const string16& url, 198 const base::string16& url,
198 const bool is_folder, 199 const bool is_folder,
199 const int64 parent_id) { 200 const int64 parent_id) {
200 int64 result = kInvalidBookmarkId; 201 int64 result = kInvalidBookmarkId;
201 RunOnUIThreadBlocking::Run( 202 RunOnUIThreadBlocking::Run(
202 base::Bind(&AddBookmarkTask::RunOnUIThread, 203 base::Bind(&AddBookmarkTask::RunOnUIThread,
203 model(), title, url, is_folder, parent_id, &result)); 204 model(), title, url, is_folder, parent_id, &result));
204 return result; 205 return result;
205 } 206 }
206 207
207 static void RunOnUIThread(BookmarkModel* model, 208 static void RunOnUIThread(BookmarkModel* model,
208 const string16& title, 209 const base::string16& title,
209 const string16& url, 210 const base::string16& url,
210 const bool is_folder, 211 const bool is_folder,
211 const int64 parent_id, 212 const int64 parent_id,
212 int64* result) { 213 int64* result) {
213 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 214 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
214 DCHECK(result); 215 DCHECK(result);
215 GURL gurl = ParseAndMaybeAppendScheme(url, kDefaultUrlScheme); 216 GURL gurl = ParseAndMaybeAppendScheme(url, kDefaultUrlScheme);
216 217
217 // Check if the bookmark already exists. 218 // Check if the bookmark already exists.
218 const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(gurl); 219 const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(gurl);
219 if (!node) { 220 if (!node) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 // Utility method to update a bookmark. 303 // Utility method to update a bookmark.
303 class UpdateBookmarkTask : public BookmarkModelObserverTask { 304 class UpdateBookmarkTask : public BookmarkModelObserverTask {
304 public: 305 public:
305 explicit UpdateBookmarkTask(BookmarkModel* model) 306 explicit UpdateBookmarkTask(BookmarkModel* model)
306 : BookmarkModelObserverTask(model), 307 : BookmarkModelObserverTask(model),
307 updated_(0), 308 updated_(0),
308 id_to_update_(kInvalidBookmarkId){} 309 id_to_update_(kInvalidBookmarkId){}
309 virtual ~UpdateBookmarkTask() {} 310 virtual ~UpdateBookmarkTask() {}
310 311
311 int Run(const int64 id, 312 int Run(const int64 id,
312 const string16& title, 313 const base::string16& title,
313 const string16& url, 314 const base::string16& url,
314 const int64 parent_id) { 315 const int64 parent_id) {
315 id_to_update_ = id; 316 id_to_update_ = id;
316 RunOnUIThreadBlocking::Run( 317 RunOnUIThreadBlocking::Run(
317 base::Bind(&UpdateBookmarkTask::RunOnUIThread, 318 base::Bind(&UpdateBookmarkTask::RunOnUIThread,
318 model(), id, title, url, parent_id)); 319 model(), id, title, url, parent_id));
319 return updated_; 320 return updated_;
320 } 321 }
321 322
322 static void RunOnUIThread(BookmarkModel* model, 323 static void RunOnUIThread(BookmarkModel* model,
323 const int64 id, 324 const int64 id,
324 const string16& title, 325 const base::string16& title,
325 const string16& url, 326 const base::string16& url,
326 const int64 parent_id) { 327 const int64 parent_id) {
327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 328 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
328 const BookmarkNode* node = model->GetNodeByID(id); 329 const BookmarkNode* node = model->GetNodeByID(id);
329 if (node) { 330 if (node) {
330 if (node->GetTitle() != title) 331 if (node->GetTitle() != title)
331 model->SetTitle(node, title); 332 model->SetTitle(node, title);
332 333
333 if (node->type() == BookmarkNode::URL) { 334 if (node->type() == BookmarkNode::URL) {
334 GURL bookmark_url = ParseAndMaybeAppendScheme(url, kDefaultUrlScheme); 335 GURL bookmark_url = ParseAndMaybeAppendScheme(url, kDefaultUrlScheme);
335 if (bookmark_url != node->url()) 336 if (bookmark_url != node->url())
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 }; 420 };
420 421
421 // Creates folder or retrieves its id if already exists. 422 // Creates folder or retrieves its id if already exists.
422 // An invalid parent id is assumed to represent the Mobile Bookmarks folder. 423 // An invalid parent id is assumed to represent the Mobile Bookmarks folder.
423 // Can only be used to create folders inside the Mobile Bookmarks branch. 424 // Can only be used to create folders inside the Mobile Bookmarks branch.
424 class CreateBookmarksFolderOnceTask : public BookmarkModelTask { 425 class CreateBookmarksFolderOnceTask : public BookmarkModelTask {
425 public: 426 public:
426 explicit CreateBookmarksFolderOnceTask(BookmarkModel* model) 427 explicit CreateBookmarksFolderOnceTask(BookmarkModel* model)
427 : BookmarkModelTask(model) {} 428 : BookmarkModelTask(model) {}
428 429
429 int64 Run(const string16& title, const int64 parent_id) { 430 int64 Run(const base::string16& title, const int64 parent_id) {
430 int64 result = kInvalidBookmarkId; 431 int64 result = kInvalidBookmarkId;
431 RunOnUIThreadBlocking::Run( 432 RunOnUIThreadBlocking::Run(
432 base::Bind(&CreateBookmarksFolderOnceTask::RunOnUIThread, 433 base::Bind(&CreateBookmarksFolderOnceTask::RunOnUIThread,
433 model(), title, parent_id, &result)); 434 model(), title, parent_id, &result));
434 return result; 435 return result;
435 } 436 }
436 437
437 static void RunOnUIThread(BookmarkModel* model, 438 static void RunOnUIThread(BookmarkModel* model,
438 const string16& title, 439 const base::string16& title,
439 const int64 parent_id, 440 const int64 parent_id,
440 int64* result) { 441 int64* result) {
441 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 442 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
442 DCHECK(result); 443 DCHECK(result);
443 444
444 // Invalid ids are assumed to refer to the Mobile Bookmarks folder. 445 // Invalid ids are assumed to refer to the Mobile Bookmarks folder.
445 const BookmarkNode* parent = parent_id >= 0 ? 446 const BookmarkNode* parent = parent_id >= 0 ?
446 model->GetNodeByID(parent_id) : model->mobile_node(); 447 model->GetNodeByID(parent_id) : model->mobile_node();
447 DCHECK(parent); 448 DCHECK(parent);
448 449
449 bool in_mobile_bookmarks; 450 bool in_mobile_bookmarks;
450 IsInMobileBookmarksBranchTask::RunOnUIThread(model, parent->id(), 451 IsInMobileBookmarksBranchTask::RunOnUIThread(model, parent->id(),
451 &in_mobile_bookmarks); 452 &in_mobile_bookmarks);
452 if (!in_mobile_bookmarks) { 453 if (!in_mobile_bookmarks) {
453 // The parent folder must be inside the Mobile Bookmarks folder. 454 // The parent folder must be inside the Mobile Bookmarks folder.
454 *result = kInvalidBookmarkId; 455 *result = kInvalidBookmarkId;
455 return; 456 return;
456 } 457 }
457 458
458 const BookmarkNode* node = GetChildFolderByTitle(parent, title); 459 const BookmarkNode* node = GetChildFolderByTitle(parent, title);
459 if (node) { 460 if (node) {
460 *result = node->id(); 461 *result = node->id();
461 return; 462 return;
462 } 463 }
463 464
464 AddBookmarkTask::RunOnUIThread(model, title, string16(), true, 465 AddBookmarkTask::RunOnUIThread(model, title, base::string16(), true,
465 parent->id(), result); 466 parent->id(), result);
466 } 467 }
467 468
468 private: 469 private:
469 DISALLOW_COPY_AND_ASSIGN(CreateBookmarksFolderOnceTask); 470 DISALLOW_COPY_AND_ASSIGN(CreateBookmarksFolderOnceTask);
470 }; 471 };
471 472
472 // Creates a Java BookmarkNode object for a node given its id. 473 // Creates a Java BookmarkNode object for a node given its id.
473 class GetAllBookmarkFoldersTask : public BookmarkModelTask { 474 class GetAllBookmarkFoldersTask : public BookmarkModelTask {
474 public: 475 public:
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 class QueryBookmarksFromAPITask : public HistoryProviderTask { 745 class QueryBookmarksFromAPITask : public HistoryProviderTask {
745 public: 746 public:
746 QueryBookmarksFromAPITask(AndroidHistoryProviderService* service, 747 QueryBookmarksFromAPITask(AndroidHistoryProviderService* service,
747 CancelableRequestConsumer* cancelable_consumer) 748 CancelableRequestConsumer* cancelable_consumer)
748 : HistoryProviderTask(service, cancelable_consumer), 749 : HistoryProviderTask(service, cancelable_consumer),
749 result_(NULL) {} 750 result_(NULL) {}
750 751
751 history::AndroidStatement* Run( 752 history::AndroidStatement* Run(
752 const std::vector<history::HistoryAndBookmarkRow::ColumnID>& projections, 753 const std::vector<history::HistoryAndBookmarkRow::ColumnID>& projections,
753 const std::string& selection, 754 const std::string& selection,
754 const std::vector<string16>& selection_args, 755 const std::vector<base::string16>& selection_args,
755 const std::string& sort_order) { 756 const std::string& sort_order) {
756 RunAsyncRequestOnUIThreadBlocking( 757 RunAsyncRequestOnUIThreadBlocking(
757 base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks, 758 base::Bind(&AndroidHistoryProviderService::QueryHistoryAndBookmarks,
758 base::Unretained(service()), projections, selection, 759 base::Unretained(service()), projections, selection,
759 selection_args, sort_order, cancelable_consumer(), 760 selection_args, sort_order, cancelable_consumer(),
760 base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried, 761 base::Bind(&QueryBookmarksFromAPITask::OnBookmarksQueried,
761 base::Unretained(this)))); 762 base::Unretained(this))));
762 return result_; 763 return result_;
763 } 764 }
764 765
(...skipping 13 matching lines...) Expand all
778 // Updates bookmarks from the API. 779 // Updates bookmarks from the API.
779 class UpdateBookmarksFromAPITask : public HistoryProviderTask { 780 class UpdateBookmarksFromAPITask : public HistoryProviderTask {
780 public: 781 public:
781 UpdateBookmarksFromAPITask(AndroidHistoryProviderService* service, 782 UpdateBookmarksFromAPITask(AndroidHistoryProviderService* service,
782 CancelableRequestConsumer* cancelable_consumer) 783 CancelableRequestConsumer* cancelable_consumer)
783 : HistoryProviderTask(service, cancelable_consumer), 784 : HistoryProviderTask(service, cancelable_consumer),
784 result_(0) {} 785 result_(0) {}
785 786
786 int Run(const history::HistoryAndBookmarkRow& row, 787 int Run(const history::HistoryAndBookmarkRow& row,
787 const std::string& selection, 788 const std::string& selection,
788 const std::vector<string16>& selection_args) { 789 const std::vector<base::string16>& selection_args) {
789 RunAsyncRequestOnUIThreadBlocking( 790 RunAsyncRequestOnUIThreadBlocking(
790 base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks, 791 base::Bind(&AndroidHistoryProviderService::UpdateHistoryAndBookmarks,
791 base::Unretained(service()), row, selection, 792 base::Unretained(service()), row, selection,
792 selection_args, cancelable_consumer(), 793 selection_args, cancelable_consumer(),
793 base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated, 794 base::Bind(&UpdateBookmarksFromAPITask::OnBookmarksUpdated,
794 base::Unretained(this)))); 795 base::Unretained(this))));
795 return result_; 796 return result_;
796 } 797 }
797 798
798 private: 799 private:
(...skipping 11 matching lines...) Expand all
810 811
811 // Removes bookmarks from the API. 812 // Removes bookmarks from the API.
812 class RemoveBookmarksFromAPITask : public HistoryProviderTask { 813 class RemoveBookmarksFromAPITask : public HistoryProviderTask {
813 public: 814 public:
814 RemoveBookmarksFromAPITask(AndroidHistoryProviderService* service, 815 RemoveBookmarksFromAPITask(AndroidHistoryProviderService* service,
815 CancelableRequestConsumer* cancelable_consumer) 816 CancelableRequestConsumer* cancelable_consumer)
816 : HistoryProviderTask(service, cancelable_consumer), 817 : HistoryProviderTask(service, cancelable_consumer),
817 result_(0) {} 818 result_(0) {}
818 819
819 int Run(const std::string& selection, 820 int Run(const std::string& selection,
820 const std::vector<string16>& selection_args) { 821 const std::vector<base::string16>& selection_args) {
821 RunAsyncRequestOnUIThreadBlocking( 822 RunAsyncRequestOnUIThreadBlocking(
822 base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks, 823 base::Bind(&AndroidHistoryProviderService::DeleteHistoryAndBookmarks,
823 base::Unretained(service()), selection, selection_args, 824 base::Unretained(service()), selection, selection_args,
824 cancelable_consumer(), 825 cancelable_consumer(),
825 base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved, 826 base::Bind(&RemoveBookmarksFromAPITask::OnBookmarksRemoved,
826 base::Unretained(this)))); 827 base::Unretained(this))));
827 return result_; 828 return result_;
828 } 829 }
829 830
830 private: 831 private:
(...skipping 11 matching lines...) Expand all
842 843
843 // Removes history from the API. 844 // Removes history from the API.
844 class RemoveHistoryFromAPITask : public HistoryProviderTask { 845 class RemoveHistoryFromAPITask : public HistoryProviderTask {
845 public: 846 public:
846 RemoveHistoryFromAPITask(AndroidHistoryProviderService* service, 847 RemoveHistoryFromAPITask(AndroidHistoryProviderService* service,
847 CancelableRequestConsumer* cancelable_consumer) 848 CancelableRequestConsumer* cancelable_consumer)
848 : HistoryProviderTask(service, cancelable_consumer), 849 : HistoryProviderTask(service, cancelable_consumer),
849 result_(0) {} 850 result_(0) {}
850 851
851 int Run(const std::string& selection, 852 int Run(const std::string& selection,
852 const std::vector<string16>& selection_args) { 853 const std::vector<base::string16>& selection_args) {
853 RunAsyncRequestOnUIThreadBlocking( 854 RunAsyncRequestOnUIThreadBlocking(
854 base::Bind(&AndroidHistoryProviderService::DeleteHistory, 855 base::Bind(&AndroidHistoryProviderService::DeleteHistory,
855 base::Unretained(service()), selection, 856 base::Unretained(service()), selection,
856 selection_args, cancelable_consumer(), 857 selection_args, cancelable_consumer(),
857 base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved, 858 base::Bind(&RemoveHistoryFromAPITask::OnHistoryRemoved,
858 base::Unretained(this)))); 859 base::Unretained(this))));
859 return result_; 860 return result_;
860 } 861 }
861 862
862 private: 863 private:
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 public: 955 public:
955 QuerySearchTermsFromAPITask(AndroidHistoryProviderService* service, 956 QuerySearchTermsFromAPITask(AndroidHistoryProviderService* service,
956 CancelableRequestConsumer* cancelable_consumer, 957 CancelableRequestConsumer* cancelable_consumer,
957 Profile* profile) 958 Profile* profile)
958 : SearchTermTask(service, cancelable_consumer, profile), 959 : SearchTermTask(service, cancelable_consumer, profile),
959 result_(NULL) {} 960 result_(NULL) {}
960 961
961 history::AndroidStatement* Run( 962 history::AndroidStatement* Run(
962 const std::vector<history::SearchRow::ColumnID>& projections, 963 const std::vector<history::SearchRow::ColumnID>& projections,
963 const std::string& selection, 964 const std::string& selection,
964 const std::vector<string16>& selection_args, 965 const std::vector<base::string16>& selection_args,
965 const std::string& sort_order) { 966 const std::string& sort_order) {
966 RunAsyncRequestOnUIThreadBlocking( 967 RunAsyncRequestOnUIThreadBlocking(
967 base::Bind(&AndroidHistoryProviderService::QuerySearchTerms, 968 base::Bind(&AndroidHistoryProviderService::QuerySearchTerms,
968 base::Unretained(service()), projections, selection, 969 base::Unretained(service()), projections, selection,
969 selection_args, sort_order, cancelable_consumer(), 970 selection_args, sort_order, cancelable_consumer(),
970 base::Bind( 971 base::Bind(
971 &QuerySearchTermsFromAPITask::OnSearchTermsQueried, 972 &QuerySearchTermsFromAPITask::OnSearchTermsQueried,
972 base::Unretained(this)))); 973 base::Unretained(this))));
973 return result_; 974 return result_;
974 } 975 }
(...skipping 16 matching lines...) Expand all
991 class UpdateSearchTermsFromAPITask : public SearchTermTask { 992 class UpdateSearchTermsFromAPITask : public SearchTermTask {
992 public: 993 public:
993 UpdateSearchTermsFromAPITask(AndroidHistoryProviderService* service, 994 UpdateSearchTermsFromAPITask(AndroidHistoryProviderService* service,
994 CancelableRequestConsumer* cancelable_consumer, 995 CancelableRequestConsumer* cancelable_consumer,
995 Profile* profile) 996 Profile* profile)
996 : SearchTermTask(service, cancelable_consumer, profile), 997 : SearchTermTask(service, cancelable_consumer, profile),
997 result_(0) {} 998 result_(0) {}
998 999
999 int Run(const history::SearchRow& row, 1000 int Run(const history::SearchRow& row,
1000 const std::string& selection, 1001 const std::string& selection,
1001 const std::vector<string16>& selection_args) { 1002 const std::vector<base::string16>& selection_args) {
1002 RunAsyncRequestOnUIThreadBlocking( 1003 RunAsyncRequestOnUIThreadBlocking(
1003 base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread, 1004 base::Bind(&UpdateSearchTermsFromAPITask::MakeRequestOnUIThread,
1004 base::Unretained(this), row, selection, selection_args)); 1005 base::Unretained(this), row, selection, selection_args));
1005 return result_; 1006 return result_;
1006 } 1007 }
1007 1008
1008 private: 1009 private:
1009 void MakeRequestOnUIThread(const history::SearchRow& row, 1010 void MakeRequestOnUIThread(
1010 const std::string& selection, 1011 const history::SearchRow& row,
1011 const std::vector<string16>& selection_args) { 1012 const std::string& selection,
1013 const std::vector<base::string16>& selection_args) {
1012 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1014 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1013 history::SearchRow internal_row = row; 1015 history::SearchRow internal_row = row;
1014 BuildSearchRow(&internal_row); 1016 BuildSearchRow(&internal_row);
1015 service()->UpdateSearchTerms( 1017 service()->UpdateSearchTerms(
1016 internal_row, 1018 internal_row,
1017 selection, 1019 selection,
1018 selection_args, 1020 selection_args,
1019 cancelable_consumer(), 1021 cancelable_consumer(),
1020 base::Bind(&UpdateSearchTermsFromAPITask::OnSearchTermsUpdated, 1022 base::Bind(&UpdateSearchTermsFromAPITask::OnSearchTermsUpdated,
1021 base::Unretained(this))); 1023 base::Unretained(this)));
(...skipping 14 matching lines...) Expand all
1036 1038
1037 // Removes search terms from the API. 1039 // Removes search terms from the API.
1038 class RemoveSearchTermsFromAPITask : public SearchTermTask { 1040 class RemoveSearchTermsFromAPITask : public SearchTermTask {
1039 public: 1041 public:
1040 RemoveSearchTermsFromAPITask(AndroidHistoryProviderService* service, 1042 RemoveSearchTermsFromAPITask(AndroidHistoryProviderService* service,
1041 CancelableRequestConsumer* cancelable_consumer, 1043 CancelableRequestConsumer* cancelable_consumer,
1042 Profile* profile) 1044 Profile* profile)
1043 : SearchTermTask(service, cancelable_consumer, profile), result_() {} 1045 : SearchTermTask(service, cancelable_consumer, profile), result_() {}
1044 1046
1045 int Run(const std::string& selection, 1047 int Run(const std::string& selection,
1046 const std::vector<string16>& selection_args) { 1048 const std::vector<base::string16>& selection_args) {
1047 RunAsyncRequestOnUIThreadBlocking( 1049 RunAsyncRequestOnUIThreadBlocking(
1048 base::Bind(&AndroidHistoryProviderService::DeleteSearchTerms, 1050 base::Bind(&AndroidHistoryProviderService::DeleteSearchTerms,
1049 base::Unretained(service()), selection, selection_args, 1051 base::Unretained(service()), selection, selection_args,
1050 cancelable_consumer(), 1052 cancelable_consumer(),
1051 base::Bind( 1053 base::Bind(
1052 &RemoveSearchTermsFromAPITask::OnSearchTermsDeleted, 1054 &RemoveSearchTermsFromAPITask::OnSearchTermsDeleted,
1053 base::Unretained(this)))); 1055 base::Unretained(this))));
1054 return result_; 1056 return result_;
1055 } 1057 }
1056 1058
(...skipping 22 matching lines...) Expand all
1079 jbyteArray favicon, 1081 jbyteArray favicon,
1080 jstring title, 1082 jstring title,
1081 jobject visits, 1083 jobject visits,
1082 jlong parent_id, 1084 jlong parent_id,
1083 history::HistoryAndBookmarkRow* row, 1085 history::HistoryAndBookmarkRow* row,
1084 BookmarkModel* model) { 1086 BookmarkModel* model) {
1085 // Needed because of the internal bookmark model task invocation. 1087 // Needed because of the internal bookmark model task invocation.
1086 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI)); 1088 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI));
1087 1089
1088 if (url) { 1090 if (url) {
1089 string16 raw_url = ConvertJavaStringToUTF16(env, url); 1091 base::string16 raw_url = ConvertJavaStringToUTF16(env, url);
1090 // GURL doesn't accept the URL without protocol, but the Android CTS 1092 // GURL doesn't accept the URL without protocol, but the Android CTS
1091 // allows it. We are trying to prefix with 'http://' to see whether 1093 // allows it. We are trying to prefix with 'http://' to see whether
1092 // GURL thinks it is a valid URL. The original url will be stored in 1094 // GURL thinks it is a valid URL. The original url will be stored in
1093 // history::BookmarkRow.raw_url_. 1095 // history::BookmarkRow.raw_url_.
1094 GURL gurl = ParseAndMaybeAppendScheme(raw_url, kDefaultUrlScheme); 1096 GURL gurl = ParseAndMaybeAppendScheme(raw_url, kDefaultUrlScheme);
1095 row->set_url(gurl); 1097 row->set_url(gurl);
1096 row->set_raw_url(UTF16ToUTF8(raw_url)); 1098 row->set_raw_url(UTF16ToUTF8(raw_url));
1097 } 1099 }
1098 1100
1099 if (created) 1101 if (created)
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 } 1189 }
1188 1190
1189 // ------------- Provider public APIs ------------- // 1191 // ------------- Provider public APIs ------------- //
1190 1192
1191 jlong ChromeBrowserProvider::AddBookmark(JNIEnv* env, 1193 jlong ChromeBrowserProvider::AddBookmark(JNIEnv* env,
1192 jobject, 1194 jobject,
1193 jstring jurl, 1195 jstring jurl,
1194 jstring jtitle, 1196 jstring jtitle,
1195 jboolean is_folder, 1197 jboolean is_folder,
1196 jlong parent_id) { 1198 jlong parent_id) {
1197 string16 url; 1199 base::string16 url;
1198 if (jurl) 1200 if (jurl)
1199 url = ConvertJavaStringToUTF16(env, jurl); 1201 url = ConvertJavaStringToUTF16(env, jurl);
1200 string16 title = ConvertJavaStringToUTF16(env, jtitle); 1202 base::string16 title = ConvertJavaStringToUTF16(env, jtitle);
1201 1203
1202 AddBookmarkTask task(bookmark_model_); 1204 AddBookmarkTask task(bookmark_model_);
1203 return task.Run(title, url, is_folder, parent_id); 1205 return task.Run(title, url, is_folder, parent_id);
1204 } 1206 }
1205 1207
1206 jint ChromeBrowserProvider::RemoveBookmark(JNIEnv*, jobject, jlong id) { 1208 jint ChromeBrowserProvider::RemoveBookmark(JNIEnv*, jobject, jlong id) {
1207 RemoveBookmarkTask task(bookmark_model_); 1209 RemoveBookmarkTask task(bookmark_model_);
1208 return task.Run(id); 1210 return task.Run(id);
1209 } 1211 }
1210 1212
1211 jint ChromeBrowserProvider::UpdateBookmark(JNIEnv* env, 1213 jint ChromeBrowserProvider::UpdateBookmark(JNIEnv* env,
1212 jobject, 1214 jobject,
1213 jlong id, 1215 jlong id,
1214 jstring jurl, 1216 jstring jurl,
1215 jstring jtitle, 1217 jstring jtitle,
1216 jlong parent_id) { 1218 jlong parent_id) {
1217 string16 url; 1219 base::string16 url;
1218 if (jurl) 1220 if (jurl)
1219 url = ConvertJavaStringToUTF16(env, jurl); 1221 url = ConvertJavaStringToUTF16(env, jurl);
1220 string16 title = ConvertJavaStringToUTF16(env, jtitle); 1222 base::string16 title = ConvertJavaStringToUTF16(env, jtitle);
1221 1223
1222 UpdateBookmarkTask task(bookmark_model_); 1224 UpdateBookmarkTask task(bookmark_model_);
1223 return task.Run(id, title, url, parent_id); 1225 return task.Run(id, title, url, parent_id);
1224 } 1226 }
1225 1227
1226 // Add the bookmark with the given column values. 1228 // Add the bookmark with the given column values.
1227 jlong ChromeBrowserProvider::AddBookmarkFromAPI(JNIEnv* env, 1229 jlong ChromeBrowserProvider::AddBookmarkFromAPI(JNIEnv* env,
1228 jobject obj, 1230 jobject obj,
1229 jstring url, 1231 jstring url,
1230 jobject created, 1232 jobject created,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 if (id == history::HistoryAndBookmarkRow::COLUMN_END) { 1274 if (id == history::HistoryAndBookmarkRow::COLUMN_END) {
1273 // Ignore the unknown column; As Android platform will send us 1275 // Ignore the unknown column; As Android platform will send us
1274 // the non public column. 1276 // the non public column.
1275 continue; 1277 continue;
1276 } 1278 }
1277 query_columns.push_back(id); 1279 query_columns.push_back(id);
1278 columns_name.push_back(name); 1280 columns_name.push_back(name);
1279 } 1281 }
1280 } 1282 }
1281 1283
1282 std::vector<string16> where_args = 1284 std::vector<base::string16> where_args =
1283 ConvertJStringArrayToString16Array(env, selection_args); 1285 ConvertJStringArrayToString16Array(env, selection_args);
1284 1286
1285 std::string where_clause; 1287 std::string where_clause;
1286 if (selections) { 1288 if (selections) {
1287 where_clause = ConvertJavaStringToUTF8(env, selections); 1289 where_clause = ConvertJavaStringToUTF8(env, selections);
1288 } 1290 }
1289 1291
1290 std::string sort_clause; 1292 std::string sort_clause;
1291 if (sort_order) { 1293 if (sort_order) {
1292 sort_clause = ConvertJavaStringToUTF8(env, sort_order); 1294 sort_clause = ConvertJavaStringToUTF8(env, sort_order);
(...skipping 22 matching lines...) Expand all
1315 jbyteArray favicon, 1317 jbyteArray favicon,
1316 jstring title, 1318 jstring title,
1317 jobject visits, 1319 jobject visits,
1318 jlong parent_id, 1320 jlong parent_id,
1319 jstring selections, 1321 jstring selections,
1320 jobjectArray selection_args) { 1322 jobjectArray selection_args) {
1321 history::HistoryAndBookmarkRow row; 1323 history::HistoryAndBookmarkRow row;
1322 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title, 1324 FillBookmarkRow(env, obj, url, created, isBookmark, date, favicon, title,
1323 visits, parent_id, &row, bookmark_model_); 1325 visits, parent_id, &row, bookmark_model_);
1324 1326
1325 std::vector<string16> where_args = 1327 std::vector<base::string16> where_args =
1326 ConvertJStringArrayToString16Array(env, selection_args); 1328 ConvertJStringArrayToString16Array(env, selection_args);
1327 1329
1328 std::string where_clause; 1330 std::string where_clause;
1329 if (selections) 1331 if (selections)
1330 where_clause = ConvertJavaStringToUTF8(env, selections); 1332 where_clause = ConvertJavaStringToUTF8(env, selections);
1331 1333
1332 UpdateBookmarksFromAPITask task(service_.get(), &android_history_consumer_); 1334 UpdateBookmarksFromAPITask task(service_.get(), &android_history_consumer_);
1333 return task.Run(row, where_clause, where_args); 1335 return task.Run(row, where_clause, where_args);
1334 } 1336 }
1335 1337
1336 jint ChromeBrowserProvider::RemoveBookmarkFromAPI(JNIEnv* env, 1338 jint ChromeBrowserProvider::RemoveBookmarkFromAPI(JNIEnv* env,
1337 jobject obj, 1339 jobject obj,
1338 jstring selections, 1340 jstring selections,
1339 jobjectArray selection_args) { 1341 jobjectArray selection_args) {
1340 std::vector<string16> where_args = 1342 std::vector<base::string16> where_args =
1341 ConvertJStringArrayToString16Array(env, selection_args); 1343 ConvertJStringArrayToString16Array(env, selection_args);
1342 1344
1343 std::string where_clause; 1345 std::string where_clause;
1344 if (selections) 1346 if (selections)
1345 where_clause = ConvertJavaStringToUTF8(env, selections); 1347 where_clause = ConvertJavaStringToUTF8(env, selections);
1346 1348
1347 RemoveBookmarksFromAPITask task(service_.get(), &android_history_consumer_); 1349 RemoveBookmarksFromAPITask task(service_.get(), &android_history_consumer_);
1348 return task.Run(where_clause, where_args); 1350 return task.Run(where_clause, where_args);
1349 } 1351 }
1350 1352
1351 jint ChromeBrowserProvider::RemoveHistoryFromAPI(JNIEnv* env, 1353 jint ChromeBrowserProvider::RemoveHistoryFromAPI(JNIEnv* env,
1352 jobject obj, 1354 jobject obj,
1353 jstring selections, 1355 jstring selections,
1354 jobjectArray selection_args) { 1356 jobjectArray selection_args) {
1355 std::vector<string16> where_args = 1357 std::vector<base::string16> where_args =
1356 ConvertJStringArrayToString16Array(env, selection_args); 1358 ConvertJStringArrayToString16Array(env, selection_args);
1357 1359
1358 std::string where_clause; 1360 std::string where_clause;
1359 if (selections) 1361 if (selections)
1360 where_clause = ConvertJavaStringToUTF8(env, selections); 1362 where_clause = ConvertJavaStringToUTF8(env, selections);
1361 1363
1362 RemoveHistoryFromAPITask task(service_.get(), &android_history_consumer_); 1364 RemoveHistoryFromAPITask task(service_.get(), &android_history_consumer_);
1363 return task.Run(where_clause, where_args); 1365 return task.Run(where_clause, where_args);
1364 } 1366 }
1365 1367
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 history::SearchRow::GetColumnID(name); 1408 history::SearchRow::GetColumnID(name);
1407 if (id == history::SearchRow::COLUMN_END) { 1409 if (id == history::SearchRow::COLUMN_END) {
1408 LOG(ERROR) << "Can not find " << name; 1410 LOG(ERROR) << "Can not find " << name;
1409 return ScopedJavaLocalRef<jobject>(); 1411 return ScopedJavaLocalRef<jobject>();
1410 } 1412 }
1411 query_columns.push_back(id); 1413 query_columns.push_back(id);
1412 columns_name.push_back(name); 1414 columns_name.push_back(name);
1413 } 1415 }
1414 } 1416 }
1415 1417
1416 std::vector<string16> where_args = 1418 std::vector<base::string16> where_args =
1417 ConvertJStringArrayToString16Array(env, selection_args); 1419 ConvertJStringArrayToString16Array(env, selection_args);
1418 1420
1419 std::string where_clause; 1421 std::string where_clause;
1420 if (selections) { 1422 if (selections) {
1421 where_clause = ConvertJavaStringToUTF8(env, selections); 1423 where_clause = ConvertJavaStringToUTF8(env, selections);
1422 } 1424 }
1423 1425
1424 std::string sort_clause; 1426 std::string sort_clause;
1425 if (sort_order) { 1427 if (sort_order) {
1426 sort_clause = ConvertJavaStringToUTF8(env, sort_order); 1428 sort_clause = ConvertJavaStringToUTF8(env, sort_order);
(...skipping 12 matching lines...) Expand all
1439 } 1441 }
1440 1442
1441 // Updates the search terms with the given column values. The value is not 1443 // Updates the search terms with the given column values. The value is not
1442 // given if it is NULL. 1444 // given if it is NULL.
1443 jint ChromeBrowserProvider::UpdateSearchTermFromAPI( 1445 jint ChromeBrowserProvider::UpdateSearchTermFromAPI(
1444 JNIEnv* env, jobject obj, jstring search_term, jobject date, 1446 JNIEnv* env, jobject obj, jstring search_term, jobject date,
1445 jstring selections, jobjectArray selection_args) { 1447 jstring selections, jobjectArray selection_args) {
1446 history::SearchRow row; 1448 history::SearchRow row;
1447 FillSearchRow(env, obj, search_term, date, &row); 1449 FillSearchRow(env, obj, search_term, date, &row);
1448 1450
1449 std::vector<string16> where_args = ConvertJStringArrayToString16Array( 1451 std::vector<base::string16> where_args = ConvertJStringArrayToString16Array(
1450 env, selection_args); 1452 env, selection_args);
1451 1453
1452 std::string where_clause; 1454 std::string where_clause;
1453 if (selections) 1455 if (selections)
1454 where_clause = ConvertJavaStringToUTF8(env, selections); 1456 where_clause = ConvertJavaStringToUTF8(env, selections);
1455 1457
1456 UpdateSearchTermsFromAPITask task(service_.get(), &android_history_consumer_, 1458 UpdateSearchTermsFromAPITask task(service_.get(), &android_history_consumer_,
1457 profile_); 1459 profile_);
1458 return task.Run(row, where_clause, where_args); 1460 return task.Run(row, where_clause, where_args);
1459 } 1461 }
1460 1462
1461 jint ChromeBrowserProvider::RemoveSearchTermFromAPI( 1463 jint ChromeBrowserProvider::RemoveSearchTermFromAPI(
1462 JNIEnv* env, jobject obj, jstring selections, jobjectArray selection_args) { 1464 JNIEnv* env, jobject obj, jstring selections, jobjectArray selection_args) {
1463 std::vector<string16> where_args = 1465 std::vector<base::string16> where_args =
1464 ConvertJStringArrayToString16Array(env, selection_args); 1466 ConvertJStringArrayToString16Array(env, selection_args);
1465 1467
1466 std::string where_clause; 1468 std::string where_clause;
1467 if (selections) 1469 if (selections)
1468 where_clause = ConvertJavaStringToUTF8(env, selections); 1470 where_clause = ConvertJavaStringToUTF8(env, selections);
1469 1471
1470 RemoveSearchTermsFromAPITask task(service_.get(), &android_history_consumer_, 1472 RemoveSearchTermsFromAPITask task(service_.get(), &android_history_consumer_,
1471 profile_); 1473 profile_);
1472 return task.Run(where_clause, where_args); 1474 return task.Run(where_clause, where_args);
1473 } 1475 }
1474 1476
1475 // ------------- Provider custom APIs ------------- // 1477 // ------------- Provider custom APIs ------------- //
1476 1478
1477 jboolean ChromeBrowserProvider::BookmarkNodeExists( 1479 jboolean ChromeBrowserProvider::BookmarkNodeExists(
1478 JNIEnv* env, 1480 JNIEnv* env,
1479 jobject obj, 1481 jobject obj,
1480 jlong id) { 1482 jlong id) {
1481 BookmarkNodeExistsTask task(bookmark_model_); 1483 BookmarkNodeExistsTask task(bookmark_model_);
1482 return task.Run(id); 1484 return task.Run(id);
1483 } 1485 }
1484 1486
1485 jlong ChromeBrowserProvider::CreateBookmarksFolderOnce( 1487 jlong ChromeBrowserProvider::CreateBookmarksFolderOnce(
1486 JNIEnv* env, 1488 JNIEnv* env,
1487 jobject obj, 1489 jobject obj,
1488 jstring jtitle, 1490 jstring jtitle,
1489 jlong parent_id) { 1491 jlong parent_id) {
1490 string16 title = ConvertJavaStringToUTF16(env, jtitle); 1492 base::string16 title = ConvertJavaStringToUTF16(env, jtitle);
1491 if (title.empty()) 1493 if (title.empty())
1492 return kInvalidBookmarkId; 1494 return kInvalidBookmarkId;
1493 1495
1494 CreateBookmarksFolderOnceTask task(bookmark_model_); 1496 CreateBookmarksFolderOnceTask task(bookmark_model_);
1495 return task.Run(title, parent_id); 1497 return task.Run(title, parent_id);
1496 } 1498 }
1497 1499
1498 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::GetAllBookmarkFolders( 1500 ScopedJavaLocalRef<jobject> ChromeBrowserProvider::GetAllBookmarkFolders(
1499 JNIEnv* env, 1501 JNIEnv* env,
1500 jobject obj) { 1502 jobject obj) {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 Java_ChromeBrowserProvider_onBookmarkChanged(env, obj.obj()); 1613 Java_ChromeBrowserProvider_onBookmarkChanged(env, obj.obj());
1612 } else if (type == 1614 } else if (type ==
1613 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) { 1615 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) {
1614 JNIEnv* env = AttachCurrentThread(); 1616 JNIEnv* env = AttachCurrentThread();
1615 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env); 1617 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env);
1616 if (obj.is_null()) 1618 if (obj.is_null())
1617 return; 1619 return;
1618 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj()); 1620 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj());
1619 } 1621 }
1620 } 1622 }
OLDNEW
« no previous file with comments | « chrome/browser/android/password_ui_view_android.cc ('k') | chrome/browser/android/shortcut_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698