OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/utility/importer/firefox_importer.h" | 5 #include "chrome/utility/importer/firefox_importer.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/files/file_enumerator.h" | 10 #include "base/files/file_enumerator.h" |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 void FirefoxImporter::ImportBookmarks() { | 198 void FirefoxImporter::ImportBookmarks() { |
199 base::FilePath file = source_path_.AppendASCII("places.sqlite"); | 199 base::FilePath file = source_path_.AppendASCII("places.sqlite"); |
200 if (!base::PathExists(file)) | 200 if (!base::PathExists(file)) |
201 return; | 201 return; |
202 | 202 |
203 sql::Connection db; | 203 sql::Connection db; |
204 if (!db.Open(file)) | 204 if (!db.Open(file)) |
205 return; | 205 return; |
206 | 206 |
207 // Get the bookmark folders that we are interested in. | 207 // Get the bookmark folders that we are interested in. |
208 int toolbar_folder_id = -1; | 208 int toolbar_folder_id = LoadNodeIDByGUID(&db, "toolbar_____"); |
209 int menu_folder_id = -1; | 209 int menu_folder_id = LoadNodeIDByGUID(&db, "menu________"); |
210 int unsorted_folder_id = -1; | 210 int unsorted_folder_id = LoadNodeIDByGUID(&db, "unfiled_____"); |
211 LoadRootNodeID(&db, &toolbar_folder_id, &menu_folder_id, &unsorted_folder_id); | |
212 | 211 |
213 // Load livemark IDs. | 212 // Load livemark IDs. |
214 std::set<int> livemark_id; | 213 std::set<int> livemark_id; |
215 LoadLivemarkIDs(&db, &livemark_id); | 214 LoadLivemarkIDs(&db, &livemark_id); |
216 | 215 |
217 // Load the default bookmarks. | 216 // Load the default bookmarks. |
218 std::set<GURL> default_urls; | 217 std::set<GURL> default_urls; |
219 LoadDefaultBookmarks(app_path_, &default_urls); | 218 LoadDefaultBookmarks(app_path_, &default_urls); |
220 | 219 |
221 BookmarkList list; | 220 BookmarkList list; |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 size_t end_of_parent = file_data.find("</SearchPlugin>"); | 635 size_t end_of_parent = file_data.find("</SearchPlugin>"); |
637 if (end_of_parent != std::string::npos && !alias.empty()) | 636 if (end_of_parent != std::string::npos && !alias.empty()) |
638 file_data.insert(end_of_parent, "<Alias>" + alias + "</Alias> \n"); | 637 file_data.insert(end_of_parent, "<Alias>" + alias + "</Alias> \n"); |
639 } | 638 } |
640 search_engine_data->push_back(file_data); | 639 search_engine_data->push_back(file_data); |
641 } | 640 } |
642 } | 641 } |
643 } | 642 } |
644 } | 643 } |
645 | 644 |
646 void FirefoxImporter::LoadRootNodeID(sql::Connection* db, | 645 int FirefoxImporter::LoadNodeIDByGUID(sql::Connection* db, |
647 int* toolbar_folder_id, | 646 const std::string& GUID) { |
648 int* menu_folder_id, | 647 const char query[] = |
649 int* unsorted_folder_id) { | 648 "SELECT id " |
650 static const char kToolbarFolderName[] = "toolbar"; | 649 "FROM moz_bookmarks " |
651 static const char kMenuFolderName[] = "menu"; | 650 "WHERE guid == ?"; |
652 static const char kUnsortedFolderName[] = "unfiled"; | 651 sql::Statement s(db->GetUniqueStatement(query)); |
| 652 s.BindString(0, GUID); |
653 | 653 |
654 const char query[] = "SELECT root_name, folder_id FROM moz_bookmarks_roots"; | 654 if (!s.Step()) |
655 sql::Statement s(db->GetUniqueStatement(query)); | 655 return -1; |
656 | 656 return s.ColumnInt(0); |
657 while (s.Step()) { | |
658 std::string folder = s.ColumnString(0); | |
659 int id = s.ColumnInt(1); | |
660 if (folder == kToolbarFolderName) | |
661 *toolbar_folder_id = id; | |
662 else if (folder == kMenuFolderName) | |
663 *menu_folder_id = id; | |
664 else if (folder == kUnsortedFolderName) | |
665 *unsorted_folder_id = id; | |
666 } | |
667 } | 657 } |
668 | 658 |
669 void FirefoxImporter::LoadLivemarkIDs(sql::Connection* db, | 659 void FirefoxImporter::LoadLivemarkIDs(sql::Connection* db, |
670 std::set<int>* livemark) { | 660 std::set<int>* livemark) { |
671 static const char kFeedAnnotation[] = "livemark/feedURI"; | 661 static const char kFeedAnnotation[] = "livemark/feedURI"; |
672 livemark->clear(); | 662 livemark->clear(); |
673 | 663 |
674 const char query[] = | 664 const char query[] = |
675 "SELECT b.item_id " | 665 "SELECT b.item_id " |
676 "FROM moz_anno_attributes a " | 666 "FROM moz_anno_attributes a " |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
782 | 772 |
783 if (!importer::ReencodeFavicon(&data[0], data.size(), &usage.png_data)) | 773 if (!importer::ReencodeFavicon(&data[0], data.size(), &usage.png_data)) |
784 continue; // Unable to decode. | 774 continue; // Unable to decode. |
785 | 775 |
786 usage.urls = i->second; | 776 usage.urls = i->second; |
787 favicons->push_back(usage); | 777 favicons->push_back(usage); |
788 } | 778 } |
789 s.Reset(true); | 779 s.Reset(true); |
790 } | 780 } |
791 } | 781 } |
OLD | NEW |