summaryrefslogtreecommitdiffstats
path: root/chrome/browser/importer/firefox3_importer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/importer/firefox3_importer.h')
-rw-r--r--chrome/browser/importer/firefox3_importer.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/chrome/browser/importer/firefox3_importer.h b/chrome/browser/importer/firefox3_importer.h
new file mode 100644
index 0000000..f8bfa2f
--- /dev/null
+++ b/chrome/browser/importer/firefox3_importer.h
@@ -0,0 +1,87 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_IMPORTER_FIREFOX3_IMPORTER_H_
+#define CHROME_BROWSER_IMPORTER_FIREFOX3_IMPORTER_H_
+
+#include <map>
+#include <set>
+#include <string>
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/file_path.h"
+#include "chrome/browser/importer/importer.h"
+#include "chrome/browser/importer/importer_data_types.h"
+#include "googleurl/src/gurl.h"
+
+struct sqlite3;
+
+// Importer for Mozilla Firefox 3.
+// Firefox 3 stores its persistent information in a new system called places.
+// http://wiki.mozilla.org/Places
+class Firefox3Importer : public Importer {
+ public:
+ Firefox3Importer() { }
+
+ // Importer methods.
+ virtual void StartImport(importer::ProfileInfo profile_info,
+ uint16 items,
+ ImporterBridge* bridge);
+
+ private:
+ typedef std::map<int64, std::set<GURL> > FaviconMap;
+
+ virtual ~Firefox3Importer() { }
+
+ void ImportBookmarks();
+ void ImportPasswords();
+ void ImportHistory();
+ void ImportSearchEngines();
+ // Import the user's home page, unless it is set to default home page as
+ // defined in browserconfig.properties.
+ void ImportHomepage();
+ void GetSearchEnginesXMLFiles(std::vector<FilePath>* files);
+
+ // The struct stores the information about a bookmark item.
+ struct BookmarkItem {
+ int parent;
+ int id;
+ GURL url;
+ std::wstring title;
+ int type;
+ std::string keyword;
+ base::Time date_added;
+ int64 favicon;
+ };
+ typedef std::vector<BookmarkItem*> BookmarkList;
+
+ // Gets the specific IDs of bookmark root node from |db|.
+ void LoadRootNodeID(sqlite3* db, int* toolbar_folder_id,
+ int* menu_folder_id, int* unsorted_folder_id);
+
+ // Loads all livemark IDs from database |db|.
+ void LoadLivemarkIDs(sqlite3* db, std::set<int>* livemark);
+
+ // Gets the bookmark folder with given ID, and adds the entry in |list|
+ // if successful.
+ void GetTopBookmarkFolder(sqlite3* db, int folder_id, BookmarkList* list);
+
+ // Loads all children of the given folder, and appends them to the |list|.
+ void GetWholeBookmarkFolder(sqlite3* db, BookmarkList* list,
+ size_t position);
+
+ // Loads the favicons given in the map from the database, loads the data,
+ // and converts it into FaviconUsage structures.
+ void LoadFavicons(sqlite3* db,
+ const FaviconMap& favicon_map,
+ std::vector<history::ImportedFavIconUsage>* favicons);
+
+ FilePath source_path_;
+ FilePath app_path_;
+
+ DISALLOW_COPY_AND_ASSIGN(Firefox3Importer);
+};
+
+#endif // CHROME_BROWSER_IMPORTER_FIREFOX3_IMPORTER_H_