summaryrefslogtreecommitdiffstats
path: root/chrome/browser/importer/toolbar_importer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/importer/toolbar_importer.h')
-rw-r--r--chrome/browser/importer/toolbar_importer.h169
1 files changed, 0 insertions, 169 deletions
diff --git a/chrome/browser/importer/toolbar_importer.h b/chrome/browser/importer/toolbar_importer.h
deleted file mode 100644
index cfb2825..0000000
--- a/chrome/browser/importer/toolbar_importer.h
+++ /dev/null
@@ -1,169 +0,0 @@
-// Copyright (c) 2006-2008 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.
-
-// The functionality provided here allows the user to import their bookmarks
-// (favorites) from Google Toolbar.
-
-#ifndef CHROME_BROWSER_IMPORTER_TOOLBAR_IMPORTER_H__
-#define CHROME_BROWSER_IMPORTER_TOOLBAR_IMPORTER_H__
-
-#include <string>
-#include <vector>
-
-#include "chrome/browser/importer/importer.h"
-#include "chrome/browser/net/url_fetcher.h"
-
-class XmlReader;
-
-// Currently the only configuration information we need is to check whether or
-// not the user currently has their GAIA cookie. This is done by the function
-// exposed through the ToolbarImportUtils namespace.
-namespace ToolbarImporterUtils {
-bool IsGoogleGAIACookieInstalled();
-} // namespace ToolbarImporterUtils
-
-// Toolbar5Importer is a class which exposes the functionality needed to
-// communicate with the Google Toolbar v5 front-end, negotiate the download of
-// Toolbar bookmarks, parse them, and install them on the client.
-// Toolbar5Importer should not have StartImport called more than once. Futher
-// if StartImport is called, then the class must not be destroyed until it
-// has either completed or Toolbar5Importer->Cancel() has been called.
-class Toolbar5Importer : public URLFetcher::Delegate, public Importer {
- public:
- Toolbar5Importer();
- virtual ~Toolbar5Importer();
-
- // Importer view calls this method to begin the process. The items parameter
- // should only either be NONE or FAVORITES, since as of right now these are
- // the only items this importer supports. This method provides implementation
- // of Importer::StartImport.
- virtual void StartImport(ProfileInfo profile_info,
- uint16 items,
- ProfileWriter* writer,
- MessageLoop* delegate_loop,
- ImporterHost* host);
-
- // Importer view call this method when the user clicks the cancel button
- // in the ImporterView UI. We need to post a message to our loop
- // to cancel network retrieval.
- virtual void Cancel();
-
- // URLFetcher::Delegate method called back from the URLFetcher object.
- virtual void OnURLFetchComplete(const URLFetcher* source,
- const GURL& url,
- const URLRequestStatus& status,
- int response_code,
- const ResponseCookies& cookies,
- const std::string& data);
-
- private:
- FRIEND_TEST(Toolbar5ImporterTest, BookmarkParse);
-
- // Internal states of the toolbar importer.
- enum InternalStateEnum {
- NOT_USED = -1,
- INITIALIZED,
- GET_AUTHORIZATION_TOKEN,
- GET_BOOKMARKS,
- PARSE_BOOKMARKS,
- DONE
- };
-
- typedef std::vector<std::wstring> BookmarkFolderType;
-
- // URLs for connecting to the toolbar front end are defined below.
- static const char kT5AuthorizationTokenUrl[];
- static const char kT5FrontEndUrlTemplate[];
-
- // Token replacement tags are defined below.
- static const char kRandomNumberToken[];
- static const char kAuthorizationToken[];
- static const char kAuthorizationTokenPrefix[];
- static const char kAuthorizationTokenSuffix[];
- static const char kMaxNumToken[];
- static const char kMaxTimestampToken[];
-
- // XML tag names are defined below.
- static const char kXmlApiReplyXmlTag[];
- static const char kBookmarksXmlTag[];
- static const char kBookmarkXmlTag[];
- static const char kTitleXmlTag[];
- static const char kUrlXmlTag[];
- static const char kTimestampXmlTag[];
- static const char kLabelsXmlTag[];
- static const char kLabelsXmlCloseTag[];
- static const char kLabelXmlTag[];
- static const char kAttributesXmlTag[];
-
- // Flow control for asynchronous import is controlled by the methods below.
- // ContinueImport is called back by each import action taken. BeginXXX
- // and EndXXX are responsible for updating the state of the asynchronous
- // import. EndImport is responsible for state cleanup and notifying the
- // caller that import has completed.
- void ContinueImport();
- void EndImport();
- void BeginImportBookmarks();
- void EndImportBookmarks();
-
- // Network I/O is done by the methods below. These three methods are called
- // in the order provided. The last two are called back with the HTML
- // response provided by the Toolbar server.
- void GetAuthenticationFromServer();
- void GetBookmarkDataFromServer(const std::string& response);
- void GetBookmarksFromServerDataResponse(const std::string& response);
-
- // XML Parsing is implemented with the methods below.
- bool ParseAuthenticationTokenResponse(const std::string& response,
- std::string* token);
-
- static bool ParseBookmarksFromReader(
- XmlReader* reader,
- std::vector<ProfileWriter::BookmarkEntry>* bookmarks);
-
- static bool LocateNextOpenTag(XmlReader* reader);
- static bool LocateNextTagByName(XmlReader* reader, const std::string& tag);
- static bool LocateNextTagWithStopByName(
- XmlReader* reader,
- const std::string& tag,
- const std::string& stop);
-
- static bool ExtractBookmarkInformation(
- XmlReader* reader,
- ProfileWriter::BookmarkEntry* bookmark_entry,
- std::vector<BookmarkFolderType>* bookmark_folders);
- static bool ExtractNamedValueFromXmlReader(XmlReader* reader,
- const std::string& name,
- std::string* buffer);
- static bool ExtractTitleFromXmlReader(XmlReader* reader,
- ProfileWriter::BookmarkEntry* entry);
- static bool ExtractUrlFromXmlReader(XmlReader* reader,
- ProfileWriter::BookmarkEntry* entry);
- static bool ExtractTimeFromXmlReader(XmlReader* reader,
- ProfileWriter::BookmarkEntry* entry);
- static bool ExtractFoldersFromXmlReader(
- XmlReader* reader,
- std::vector<BookmarkFolderType>* bookmark_folders);
-
- // Bookmark creation is done by the method below.
- void AddBookmarksToChrome(
- const std::vector<ProfileWriter::BookmarkEntry>& bookmarks);
-
- // The writer used in this importer is stored in writer_.
- ProfileWriter* writer_;
-
- // Internal state is stored in state_.
- InternalStateEnum state_;
-
- // Bitmask of Importer::ImportItem is stored in items_to_import_.
- uint16 items_to_import_;
-
- // The fetchers need to be available to cancel the network call on user cancel
- // hence they are stored as member variables.
- URLFetcher* token_fetcher_;
- URLFetcher* data_fetcher_;
-
- DISALLOW_COPY_AND_ASSIGN(Toolbar5Importer);
-};
-
-#endif // CHROME_BROWSER_IMPORTER_TOOLBAR_IMPORTER_H__