Chromium Code Reviews| Index: chrome/browser/bookmarks/bookmark_html_reader.h |
| diff --git a/chrome/browser/bookmarks/bookmark_html_reader.h b/chrome/browser/bookmarks/bookmark_html_reader.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f9098579406e304889e4a35044ecbf47f6e82359 |
| --- /dev/null |
| +++ b/chrome/browser/bookmarks/bookmark_html_reader.h |
| @@ -0,0 +1,100 @@ |
| +// Copyright 2013 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_BOOKMARKS_BOOKMARK_HTML_READER_H_ |
| +#define CHROME_BROWSER_BOOKMARKS_BOOKMARK_HTML_READER_H_ |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/callback_forward.h" |
| +#include "base/string16.h" |
| +#include "base/time.h" |
| +#include "googleurl/src/gurl.h" |
| + |
| +struct ImportedBookmarkEntry; |
| + |
| +namespace base { |
| +class FilePath; |
| +} |
| + |
| +namespace history { |
| +struct ImportedFaviconUsage; |
| +} |
| + |
| +namespace bookmark_html_reader { |
| + |
| +// Imports the bookmarks from the specified file. |
| +// |
| +// |cancellation_callback| is polled to query if the import should be cancelled; |
| +// if it returns |true| at any time the import will be cancelled. If |
| +// |cancellation_callback| is NULL the import will run to completion. |
| +// |
| +// |valid_url_callback| is called to determine if a specified URL is valid for |
| +// import; it returns |true| if it is. If |valid_url_callback| is NULL, all |
| +// URLs are considered to be valid. |
| +// |
| +// |file_path| is the path of the file on disk to import. |
| +// |
| +// |bookmarks| is a pointer to a vector, which is filled with the imported |
| +// bookmarks. It may not be NULL. |
| +// |
| +// |favicons| is a pointer to a vector, which is filled with the favicons of |
| +// imported bookmarks. It may be NULL, in which case favicons are not imported. |
| +void ImportBookmarksFile( |
| + base::Callback<bool(void)>* cancellation_callback, |
| + base::Callback<bool(const GURL&)>* valid_url_callback, |
| + const base::FilePath& file_path, |
| + std::vector<ImportedBookmarkEntry>* bookmarks, |
| + std::vector<history::ImportedFaviconUsage>* favicons); |
| + |
| +namespace exposed_for_testing { |
|
gab
2013/05/10 20:37:57
I think we usually name such namespaces "internal"
Avi (use Gerrit)
2013/05/10 21:34:53
Done.
|
| + |
| +// The file format that BookmarkHTMLReader parses starts with a heading |
| +// tag, which contains its title. All bookmarks and sub-folders follow, |
| +// bracketed by a <DL> tag: |
| +// <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ...>title</H3> |
| +// <DL><p> |
| +// ... container ... |
| +// </DL><p> |
| +// And a bookmark is presented by a <A> tag: |
| +// <DT><A HREF="url" SHORTCUTURL="shortcut" ADD_DATE="11213014"...>name</A> |
| +// Reference: http://kb.mozillazine.org/Bookmarks.html |
| + |
| +bool ParseCharsetFromLine(const std::string& line, |
| + std::string* charset); |
| +bool ParseFolderNameFromLine(const std::string& line, |
| + const std::string& charset, |
| + base::string16* folder_name, |
| + bool* is_toolbar_folder, |
| + base::Time* add_date); |
| +// See above, this will also put the data: URL of the favicon into |*favicon| |
| +// if there is a favicon given. |post_data| is set for POST base keywords to |
| +// the contents of the actual POST (with %s for the search term). |
| +bool ParseBookmarkFromLine(const std::string& line, |
| + const std::string& charset, |
| + base::string16* title, |
| + GURL* url, |
| + GURL* favicon, |
| + base::string16* shortcut, |
| + base::Time* add_date, |
| + base::string16* post_data); |
| +// Save bookmarks imported from browsers with Firefox 2 compatible bookmark |
| +// systems such as Epiphany. This bookmark format is the same as that of the |
| +// basic Firefox 2 bookmark, but it misses additional properties and uses |
| +// lower-case tag: |
| +// ...<h1>Bookmarks</h1><dl> |
| +// <dt><a href="url">name</a></dt> |
| +// <dt><a href="url">name</a></dt> |
| +// </dl> |
| +bool ParseMinimumBookmarkFromLine(const std::string& line, |
| + const std::string& charset, |
| + base::string16* title, |
| + GURL* url); |
| + |
| +} // namespace exposed_for_testing |
| + |
| +} // namespace bookmark_html_reader |
| + |
| +#endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_HTML_READER_H_ |