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

Side by Side Diff: chrome/browser/extensions/api/bookmarks/bookmarks_api.cc

Issue 252653002: Rename (Chrome)SyncExtensionFunction::RunImpl to RunSync so that the RunImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix bookmarks Created 6 years, 7 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 | 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/extensions/api/bookmarks/bookmarks_api.h" 5 #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/i18n/file_util_icu.h" 9 #include "base/i18n/file_util_icu.h"
10 #include "base/i18n/time_formatting.h" 10 #include "base/i18n/time_formatting.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 91
92 file_util::ReplaceIllegalCharactersInPath(&filename, '_'); 92 file_util::ReplaceIllegalCharactersInPath(&filename, '_');
93 93
94 base::FilePath default_path; 94 base::FilePath default_path;
95 PathService::Get(chrome::DIR_USER_DOCUMENTS, &default_path); 95 PathService::Get(chrome::DIR_USER_DOCUMENTS, &default_path);
96 return default_path.Append(filename); 96 return default_path.Append(filename);
97 } 97 }
98 98
99 } // namespace 99 } // namespace
100 100
101 void BookmarksFunction::Run() { 101 bool BookmarksFunction::RunImpl() {
102 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 102 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
103 if (!model->loaded()) { 103 if (!model->loaded()) {
104 // Bookmarks are not ready yet. We'll wait. 104 // Bookmarks are not ready yet. We'll wait.
105 model->AddObserver(this); 105 model->AddObserver(this);
106 AddRef(); // Balanced in Loaded(). 106 AddRef(); // Balanced in Loaded().
107 return; 107 return true;
108 } 108 }
109 109
110 bool success = RunImpl(); 110 bool success = RunOnReady();
111 if (success) { 111 if (success) {
112 content::NotificationService::current()->Notify( 112 content::NotificationService::current()->Notify(
113 chrome::NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED, 113 chrome::NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED,
114 content::Source<const Extension>(GetExtension()), 114 content::Source<const Extension>(GetExtension()),
115 content::Details<const BookmarksFunction>(this)); 115 content::Details<const BookmarksFunction>(this));
116 } 116 }
117 SendResponse(success); 117 SendResponse(success);
118 return true;
118 } 119 }
119 120
120 bool BookmarksFunction::GetBookmarkIdAsInt64(const std::string& id_string, 121 bool BookmarksFunction::GetBookmarkIdAsInt64(const std::string& id_string,
121 int64* id) { 122 int64* id) {
122 if (base::StringToInt64(id_string, id)) 123 if (base::StringToInt64(id_string, id))
123 return true; 124 return true;
124 125
125 error_ = keys::kInvalidIdError; 126 error_ = keys::kInvalidIdError;
126 return false; 127 return false;
127 } 128 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 error_ = keys::kEditBookmarksDisabled; 211 error_ = keys::kEditBookmarksDisabled;
211 return false; 212 return false;
212 } 213 }
213 214
214 void BookmarksFunction::BookmarkModelChanged() { 215 void BookmarksFunction::BookmarkModelChanged() {
215 } 216 }
216 217
217 void BookmarksFunction::BookmarkModelLoaded(BookmarkModel* model, 218 void BookmarksFunction::BookmarkModelLoaded(BookmarkModel* model,
218 bool ids_reassigned) { 219 bool ids_reassigned) {
219 model->RemoveObserver(this); 220 model->RemoveObserver(this);
220 Run(); 221 RunOnReady();
221 Release(); // Balanced in Run(). 222 Release(); // Balanced in RunOnReady().
222 } 223 }
223 224
224 BookmarkEventRouter::BookmarkEventRouter(BrowserContext* context, 225 BookmarkEventRouter::BookmarkEventRouter(BrowserContext* context,
225 BookmarkModel* model) 226 BookmarkModel* model)
226 : browser_context_(context), model_(model) { 227 : browser_context_(context), model_(model) {
227 model_->AddObserver(this); 228 model_->AddObserver(this);
228 } 229 }
229 230
230 BookmarkEventRouter::~BookmarkEventRouter() { 231 BookmarkEventRouter::~BookmarkEventRouter() {
231 if (model_) { 232 if (model_) {
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 } 380 }
380 381
381 void BookmarksAPI::OnListenerAdded(const EventListenerInfo& details) { 382 void BookmarksAPI::OnListenerAdded(const EventListenerInfo& details) {
382 bookmark_event_router_.reset(new BookmarkEventRouter( 383 bookmark_event_router_.reset(new BookmarkEventRouter(
383 browser_context_, 384 browser_context_,
384 BookmarkModelFactory::GetForProfile( 385 BookmarkModelFactory::GetForProfile(
385 Profile::FromBrowserContext(browser_context_)))); 386 Profile::FromBrowserContext(browser_context_))));
386 EventRouter::Get(browser_context_)->UnregisterObserver(this); 387 EventRouter::Get(browser_context_)->UnregisterObserver(this);
387 } 388 }
388 389
389 bool BookmarksGetFunction::RunImpl() { 390 bool BookmarksGetFunction::RunOnReady() {
390 scoped_ptr<bookmarks::Get::Params> params( 391 scoped_ptr<bookmarks::Get::Params> params(
391 bookmarks::Get::Params::Create(*args_)); 392 bookmarks::Get::Params::Create(*args_));
392 EXTENSION_FUNCTION_VALIDATE(params.get()); 393 EXTENSION_FUNCTION_VALIDATE(params.get());
393 394
394 std::vector<linked_ptr<BookmarkTreeNode> > nodes; 395 std::vector<linked_ptr<BookmarkTreeNode> > nodes;
395 if (params->id_or_id_list.as_strings) { 396 if (params->id_or_id_list.as_strings) {
396 std::vector<std::string>& ids = *params->id_or_id_list.as_strings; 397 std::vector<std::string>& ids = *params->id_or_id_list.as_strings;
397 size_t count = ids.size(); 398 size_t count = ids.size();
398 EXTENSION_FUNCTION_VALIDATE(count > 0); 399 EXTENSION_FUNCTION_VALIDATE(count > 0);
399 for (size_t i = 0; i < count; ++i) { 400 for (size_t i = 0; i < count; ++i) {
400 const BookmarkNode* node = GetBookmarkNodeFromId(ids[i]); 401 const BookmarkNode* node = GetBookmarkNodeFromId(ids[i]);
401 if (!node) 402 if (!node)
402 return false; 403 return false;
403 bookmark_api_helpers::AddNode(node, &nodes, false); 404 bookmark_api_helpers::AddNode(node, &nodes, false);
404 } 405 }
405 } else { 406 } else {
406 const BookmarkNode* node = 407 const BookmarkNode* node =
407 GetBookmarkNodeFromId(*params->id_or_id_list.as_string); 408 GetBookmarkNodeFromId(*params->id_or_id_list.as_string);
408 if (!node) 409 if (!node)
409 return false; 410 return false;
410 bookmark_api_helpers::AddNode(node, &nodes, false); 411 bookmark_api_helpers::AddNode(node, &nodes, false);
411 } 412 }
412 413
413 results_ = bookmarks::Get::Results::Create(nodes); 414 results_ = bookmarks::Get::Results::Create(nodes);
414 return true; 415 return true;
415 } 416 }
416 417
417 bool BookmarksGetChildrenFunction::RunImpl() { 418 bool BookmarksGetChildrenFunction::RunOnReady() {
418 scoped_ptr<bookmarks::GetChildren::Params> params( 419 scoped_ptr<bookmarks::GetChildren::Params> params(
419 bookmarks::GetChildren::Params::Create(*args_)); 420 bookmarks::GetChildren::Params::Create(*args_));
420 EXTENSION_FUNCTION_VALIDATE(params.get()); 421 EXTENSION_FUNCTION_VALIDATE(params.get());
421 422
422 const BookmarkNode* node = GetBookmarkNodeFromId(params->id); 423 const BookmarkNode* node = GetBookmarkNodeFromId(params->id);
423 if (!node) 424 if (!node)
424 return false; 425 return false;
425 426
426 std::vector<linked_ptr<BookmarkTreeNode> > nodes; 427 std::vector<linked_ptr<BookmarkTreeNode> > nodes;
427 int child_count = node->child_count(); 428 int child_count = node->child_count();
428 for (int i = 0; i < child_count; ++i) { 429 for (int i = 0; i < child_count; ++i) {
429 const BookmarkNode* child = node->GetChild(i); 430 const BookmarkNode* child = node->GetChild(i);
430 bookmark_api_helpers::AddNode(child, &nodes, false); 431 bookmark_api_helpers::AddNode(child, &nodes, false);
431 } 432 }
432 433
433 results_ = bookmarks::GetChildren::Results::Create(nodes); 434 results_ = bookmarks::GetChildren::Results::Create(nodes);
434 return true; 435 return true;
435 } 436 }
436 437
437 bool BookmarksGetRecentFunction::RunImpl() { 438 bool BookmarksGetRecentFunction::RunOnReady() {
438 scoped_ptr<bookmarks::GetRecent::Params> params( 439 scoped_ptr<bookmarks::GetRecent::Params> params(
439 bookmarks::GetRecent::Params::Create(*args_)); 440 bookmarks::GetRecent::Params::Create(*args_));
440 EXTENSION_FUNCTION_VALIDATE(params.get()); 441 EXTENSION_FUNCTION_VALIDATE(params.get());
441 if (params->number_of_items < 1) 442 if (params->number_of_items < 1)
442 return false; 443 return false;
443 444
444 std::vector<const BookmarkNode*> nodes; 445 std::vector<const BookmarkNode*> nodes;
445 bookmark_utils::GetMostRecentlyAddedEntries( 446 bookmark_utils::GetMostRecentlyAddedEntries(
446 BookmarkModelFactory::GetForProfile(GetProfile()), 447 BookmarkModelFactory::GetForProfile(GetProfile()),
447 params->number_of_items, 448 params->number_of_items,
448 &nodes); 449 &nodes);
449 450
450 std::vector<linked_ptr<BookmarkTreeNode> > tree_nodes; 451 std::vector<linked_ptr<BookmarkTreeNode> > tree_nodes;
451 std::vector<const BookmarkNode*>::iterator i = nodes.begin(); 452 std::vector<const BookmarkNode*>::iterator i = nodes.begin();
452 for (; i != nodes.end(); ++i) { 453 for (; i != nodes.end(); ++i) {
453 const BookmarkNode* node = *i; 454 const BookmarkNode* node = *i;
454 bookmark_api_helpers::AddNode(node, &tree_nodes, false); 455 bookmark_api_helpers::AddNode(node, &tree_nodes, false);
455 } 456 }
456 457
457 results_ = bookmarks::GetRecent::Results::Create(tree_nodes); 458 results_ = bookmarks::GetRecent::Results::Create(tree_nodes);
458 return true; 459 return true;
459 } 460 }
460 461
461 bool BookmarksGetTreeFunction::RunImpl() { 462 bool BookmarksGetTreeFunction::RunOnReady() {
462 std::vector<linked_ptr<BookmarkTreeNode> > nodes; 463 std::vector<linked_ptr<BookmarkTreeNode> > nodes;
463 const BookmarkNode* node = 464 const BookmarkNode* node =
464 BookmarkModelFactory::GetForProfile(GetProfile())->root_node(); 465 BookmarkModelFactory::GetForProfile(GetProfile())->root_node();
465 bookmark_api_helpers::AddNode(node, &nodes, true); 466 bookmark_api_helpers::AddNode(node, &nodes, true);
466 results_ = bookmarks::GetTree::Results::Create(nodes); 467 results_ = bookmarks::GetTree::Results::Create(nodes);
467 return true; 468 return true;
468 } 469 }
469 470
470 bool BookmarksGetSubTreeFunction::RunImpl() { 471 bool BookmarksGetSubTreeFunction::RunOnReady() {
471 scoped_ptr<bookmarks::GetSubTree::Params> params( 472 scoped_ptr<bookmarks::GetSubTree::Params> params(
472 bookmarks::GetSubTree::Params::Create(*args_)); 473 bookmarks::GetSubTree::Params::Create(*args_));
473 EXTENSION_FUNCTION_VALIDATE(params.get()); 474 EXTENSION_FUNCTION_VALIDATE(params.get());
474 475
475 const BookmarkNode* node = GetBookmarkNodeFromId(params->id); 476 const BookmarkNode* node = GetBookmarkNodeFromId(params->id);
476 if (!node) 477 if (!node)
477 return false; 478 return false;
478 479
479 std::vector<linked_ptr<BookmarkTreeNode> > nodes; 480 std::vector<linked_ptr<BookmarkTreeNode> > nodes;
480 bookmark_api_helpers::AddNode(node, &nodes, true); 481 bookmark_api_helpers::AddNode(node, &nodes, true);
481 results_ = bookmarks::GetSubTree::Results::Create(nodes); 482 results_ = bookmarks::GetSubTree::Results::Create(nodes);
482 return true; 483 return true;
483 } 484 }
484 485
485 bool BookmarksSearchFunction::RunImpl() { 486 bool BookmarksSearchFunction::RunOnReady() {
486 scoped_ptr<bookmarks::Search::Params> params( 487 scoped_ptr<bookmarks::Search::Params> params(
487 bookmarks::Search::Params::Create(*args_)); 488 bookmarks::Search::Params::Create(*args_));
488 EXTENSION_FUNCTION_VALIDATE(params.get()); 489 EXTENSION_FUNCTION_VALIDATE(params.get());
489 490
490 PrefService* prefs = user_prefs::UserPrefs::Get(GetProfile()); 491 PrefService* prefs = user_prefs::UserPrefs::Get(GetProfile());
491 std::string lang = prefs->GetString(prefs::kAcceptLanguages); 492 std::string lang = prefs->GetString(prefs::kAcceptLanguages);
492 std::vector<const BookmarkNode*> nodes; 493 std::vector<const BookmarkNode*> nodes;
493 if (params->query.as_string) { 494 if (params->query.as_string) {
494 bookmark_utils::QueryFields query; 495 bookmark_utils::QueryFields query;
495 query.word_phrase_query.reset( 496 query.word_phrase_query.reset(
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 if (!args->GetString(0, &id_string)) 540 if (!args->GetString(0, &id_string))
540 return false; 541 return false;
541 int64 id; 542 int64 id;
542 if (base::StringToInt64(id_string, &id)) 543 if (base::StringToInt64(id_string, &id))
543 ids->push_back(id); 544 ids->push_back(id);
544 else 545 else
545 *invalid_id = true; 546 *invalid_id = true;
546 return true; 547 return true;
547 } 548 }
548 549
549 bool BookmarksRemoveFunction::RunImpl() { 550 bool BookmarksRemoveFunction::RunOnReady() {
550 if (!EditBookmarksEnabled()) 551 if (!EditBookmarksEnabled())
551 return false; 552 return false;
552 553
553 scoped_ptr<bookmarks::Remove::Params> params( 554 scoped_ptr<bookmarks::Remove::Params> params(
554 bookmarks::Remove::Params::Create(*args_)); 555 bookmarks::Remove::Params::Create(*args_));
555 EXTENSION_FUNCTION_VALIDATE(params.get()); 556 EXTENSION_FUNCTION_VALIDATE(params.get());
556 557
557 int64 id; 558 int64 id;
558 if (!GetBookmarkIdAsInt64(params->id, &id)) 559 if (!GetBookmarkIdAsInt64(params->id, &id))
559 return false; 560 return false;
560 561
561 bool recursive = false; 562 bool recursive = false;
562 if (name() == BookmarksRemoveTreeFunction::function_name()) 563 if (name() == BookmarksRemoveTreeFunction::function_name())
563 recursive = true; 564 recursive = true;
564 565
565 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 566 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
566 if (!bookmark_api_helpers::RemoveNode(model, id, recursive, &error_)) 567 if (!bookmark_api_helpers::RemoveNode(model, id, recursive, &error_))
567 return false; 568 return false;
568 569
569 return true; 570 return true;
570 } 571 }
571 572
572 bool BookmarksCreateFunction::RunImpl() { 573 bool BookmarksCreateFunction::RunOnReady() {
573 if (!EditBookmarksEnabled()) 574 if (!EditBookmarksEnabled())
574 return false; 575 return false;
575 576
576 scoped_ptr<bookmarks::Create::Params> params( 577 scoped_ptr<bookmarks::Create::Params> params(
577 bookmarks::Create::Params::Create(*args_)); 578 bookmarks::Create::Params::Create(*args_));
578 EXTENSION_FUNCTION_VALIDATE(params.get()); 579 EXTENSION_FUNCTION_VALIDATE(params.get());
579 580
580 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); 581 BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
581 const BookmarkNode* node = CreateBookmarkNode(model, params->bookmark, NULL); 582 const BookmarkNode* node = CreateBookmarkNode(model, params->bookmark, NULL);
582 if (!node) 583 if (!node)
583 return false; 584 return false;
584 585
585 scoped_ptr<BookmarkTreeNode> ret( 586 scoped_ptr<BookmarkTreeNode> ret(
586 bookmark_api_helpers::GetBookmarkTreeNode(node, false, false)); 587 bookmark_api_helpers::GetBookmarkTreeNode(node, false, false));
587 results_ = bookmarks::Create::Results::Create(*ret); 588 results_ = bookmarks::Create::Results::Create(*ret);
588 589
589 return true; 590 return true;
590 } 591 }
591 592
592 // static 593 // static
593 bool BookmarksMoveFunction::ExtractIds(const base::ListValue* args, 594 bool BookmarksMoveFunction::ExtractIds(const base::ListValue* args,
594 std::list<int64>* ids, 595 std::list<int64>* ids,
595 bool* invalid_id) { 596 bool* invalid_id) {
596 // For now, Move accepts ID parameters in the same way as an Update. 597 // For now, Move accepts ID parameters in the same way as an Update.
597 return BookmarksUpdateFunction::ExtractIds(args, ids, invalid_id); 598 return BookmarksUpdateFunction::ExtractIds(args, ids, invalid_id);
598 } 599 }
599 600
600 bool BookmarksMoveFunction::RunImpl() { 601 bool BookmarksMoveFunction::RunOnReady() {
601 if (!EditBookmarksEnabled()) 602 if (!EditBookmarksEnabled())
602 return false; 603 return false;
603 604
604 scoped_ptr<bookmarks::Move::Params> params( 605 scoped_ptr<bookmarks::Move::Params> params(
605 bookmarks::Move::Params::Create(*args_)); 606 bookmarks::Move::Params::Create(*args_));
606 EXTENSION_FUNCTION_VALIDATE(params.get()); 607 EXTENSION_FUNCTION_VALIDATE(params.get());
607 608
608 const BookmarkNode* node = GetBookmarkNodeFromId(params->id); 609 const BookmarkNode* node = GetBookmarkNodeFromId(params->id);
609 if (!node) 610 if (!node)
610 return false; 611 return false;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 } 658 }
658 659
659 // static 660 // static
660 bool BookmarksUpdateFunction::ExtractIds(const base::ListValue* args, 661 bool BookmarksUpdateFunction::ExtractIds(const base::ListValue* args,
661 std::list<int64>* ids, 662 std::list<int64>* ids,
662 bool* invalid_id) { 663 bool* invalid_id) {
663 // For now, Update accepts ID parameters in the same way as an Remove. 664 // For now, Update accepts ID parameters in the same way as an Remove.
664 return BookmarksRemoveFunction::ExtractIds(args, ids, invalid_id); 665 return BookmarksRemoveFunction::ExtractIds(args, ids, invalid_id);
665 } 666 }
666 667
667 bool BookmarksUpdateFunction::RunImpl() { 668 bool BookmarksUpdateFunction::RunOnReady() {
668 if (!EditBookmarksEnabled()) 669 if (!EditBookmarksEnabled())
669 return false; 670 return false;
670 671
671 scoped_ptr<bookmarks::Update::Params> params( 672 scoped_ptr<bookmarks::Update::Params> params(
672 bookmarks::Update::Params::Create(*args_)); 673 bookmarks::Update::Params::Create(*args_));
673 EXTENSION_FUNCTION_VALIDATE(params.get()); 674 EXTENSION_FUNCTION_VALIDATE(params.get());
674 675
675 // Optional but we need to distinguish non present from an empty title. 676 // Optional but we need to distinguish non present from an empty title.
676 base::string16 title; 677 base::string16 title;
677 bool has_title = false; 678 bool has_title = false;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 private: 728 private:
728 std::map<BucketIdType, Bucket*> buckets_; 729 std::map<BucketIdType, Bucket*> buckets_;
729 }; 730 };
730 731
731 // Mapper for 'bookmarks.create'. Maps "same input to bookmarks.create" to a 732 // Mapper for 'bookmarks.create'. Maps "same input to bookmarks.create" to a
732 // unique bucket. 733 // unique bucket.
733 class CreateBookmarkBucketMapper : public BookmarkBucketMapper<std::string> { 734 class CreateBookmarkBucketMapper : public BookmarkBucketMapper<std::string> {
734 public: 735 public:
735 explicit CreateBookmarkBucketMapper(BrowserContext* context) 736 explicit CreateBookmarkBucketMapper(BrowserContext* context)
736 : browser_context_(context) {} 737 : browser_context_(context) {}
737 // TODO(tim): This should share code with BookmarksCreateFunction::RunImpl, 738 // TODO(tim): This should share code with BookmarksCreateFunction::RunOnReady,
738 // but I can't figure out a good way to do that with all the macros. 739 // but I can't figure out a good way to do that with all the macros.
739 virtual void GetBucketsForArgs(const base::ListValue* args, 740 virtual void GetBucketsForArgs(const base::ListValue* args,
740 BucketList* buckets) OVERRIDE { 741 BucketList* buckets) OVERRIDE {
741 const base::DictionaryValue* json; 742 const base::DictionaryValue* json;
742 if (!args->GetDictionary(0, &json)) 743 if (!args->GetDictionary(0, &json))
743 return; 744 return;
744 745
745 std::string parent_id; 746 std::string parent_id;
746 if (json->HasKey(keys::kParentIdKey)) { 747 if (json->HasKey(keys::kParentIdKey)) {
747 if (!json->GetString(keys::kParentIdKey, &parent_id)) 748 if (!json->GetString(keys::kParentIdKey, &parent_id))
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 void BookmarksIOFunction::FileSelectionCanceled(void* params) { 974 void BookmarksIOFunction::FileSelectionCanceled(void* params) {
974 Release(); // Balanced in BookmarksIOFunction::SelectFile() 975 Release(); // Balanced in BookmarksIOFunction::SelectFile()
975 } 976 }
976 977
977 void BookmarksIOFunction::MultiFilesSelected( 978 void BookmarksIOFunction::MultiFilesSelected(
978 const std::vector<base::FilePath>& files, void* params) { 979 const std::vector<base::FilePath>& files, void* params) {
979 Release(); // Balanced in BookmarsIOFunction::SelectFile() 980 Release(); // Balanced in BookmarsIOFunction::SelectFile()
980 NOTREACHED() << "Should not be able to select multiple files"; 981 NOTREACHED() << "Should not be able to select multiple files";
981 } 982 }
982 983
983 bool BookmarksImportFunction::RunImpl() { 984 bool BookmarksImportFunction::RunOnReady() {
984 if (!EditBookmarksEnabled()) 985 if (!EditBookmarksEnabled())
985 return false; 986 return false;
986 SelectFile(ui::SelectFileDialog::SELECT_OPEN_FILE); 987 SelectFile(ui::SelectFileDialog::SELECT_OPEN_FILE);
987 return true; 988 return true;
988 } 989 }
989 990
990 void BookmarksImportFunction::FileSelected(const base::FilePath& path, 991 void BookmarksImportFunction::FileSelected(const base::FilePath& path,
991 int index, 992 int index,
992 void* params) { 993 void* params) {
993 #if !defined(OS_ANDROID) 994 #if !defined(OS_ANDROID)
994 // Android does not have support for the standard importers. 995 // Android does not have support for the standard importers.
995 // TODO(jgreenwald): remove ifdef once extensions are no longer built on 996 // TODO(jgreenwald): remove ifdef once extensions are no longer built on
996 // Android. 997 // Android.
997 // Deletes itself. 998 // Deletes itself.
998 ExternalProcessImporterHost* importer_host = new ExternalProcessImporterHost; 999 ExternalProcessImporterHost* importer_host = new ExternalProcessImporterHost;
999 importer::SourceProfile source_profile; 1000 importer::SourceProfile source_profile;
1000 source_profile.importer_type = importer::TYPE_BOOKMARKS_FILE; 1001 source_profile.importer_type = importer::TYPE_BOOKMARKS_FILE;
1001 source_profile.source_path = path; 1002 source_profile.source_path = path;
1002 importer_host->StartImportSettings(source_profile, 1003 importer_host->StartImportSettings(source_profile,
1003 GetProfile(), 1004 GetProfile(),
1004 importer::FAVORITES, 1005 importer::FAVORITES,
1005 new ProfileWriter(GetProfile())); 1006 new ProfileWriter(GetProfile()));
1006 1007
1007 importer::LogImporterUseToMetrics("BookmarksAPI", 1008 importer::LogImporterUseToMetrics("BookmarksAPI",
1008 importer::TYPE_BOOKMARKS_FILE); 1009 importer::TYPE_BOOKMARKS_FILE);
1009 #endif 1010 #endif
1010 Release(); // Balanced in BookmarksIOFunction::SelectFile() 1011 Release(); // Balanced in BookmarksIOFunction::SelectFile()
1011 } 1012 }
1012 1013
1013 bool BookmarksExportFunction::RunImpl() { 1014 bool BookmarksExportFunction::RunOnReady() {
1014 SelectFile(ui::SelectFileDialog::SELECT_SAVEAS_FILE); 1015 SelectFile(ui::SelectFileDialog::SELECT_SAVEAS_FILE);
1015 return true; 1016 return true;
1016 } 1017 }
1017 1018
1018 void BookmarksExportFunction::FileSelected(const base::FilePath& path, 1019 void BookmarksExportFunction::FileSelected(const base::FilePath& path,
1019 int index, 1020 int index,
1020 void* params) { 1021 void* params) {
1021 #if !defined(OS_ANDROID) 1022 #if !defined(OS_ANDROID)
1022 // Android does not have support for the standard exporter. 1023 // Android does not have support for the standard exporter.
1023 // TODO(jgreenwald): remove ifdef once extensions are no longer built on 1024 // TODO(jgreenwald): remove ifdef once extensions are no longer built on
1024 // Android. 1025 // Android.
1025 bookmark_html_writer::WriteBookmarks(GetProfile(), path, NULL); 1026 bookmark_html_writer::WriteBookmarks(GetProfile(), path, NULL);
1026 #endif 1027 #endif
1027 Release(); // Balanced in BookmarksIOFunction::SelectFile() 1028 Release(); // Balanced in BookmarksIOFunction::SelectFile()
1028 } 1029 }
1029 1030
1030 } // namespace extensions 1031 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698