root/chrome/utility/importer/ie_importer_win.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright (c) 2012 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_UTILITY_IMPORTER_IE_IMPORTER_WIN_H_
#define CHROME_UTILITY_IMPORTER_IE_IMPORTER_WIN_H_

#include <vector>

#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/files/file_path.h"
#include "base/gtest_prod_util.h"
#include "base/strings/string16.h"
#include "chrome/utility/importer/importer.h"

struct ImportedBookmarkEntry;
struct ImportedFaviconUsage;

class IEImporter : public Importer {
 public:
  IEImporter();

  // Importer:

  virtual void StartImport(const importer::SourceProfile& source_profile,
                           uint16 items,
                           ImporterBridge* bridge) OVERRIDE;

 private:
  typedef std::vector<ImportedBookmarkEntry> BookmarkVector;

  // A struct that hosts the information of IE Favorite folder.

  struct FavoritesInfo {
    base::FilePath path;
    base::string16 links_folder;
  };

  // IE PStore subkey GUID: AutoComplete password & form data.

  static const GUID kPStoreAutocompleteGUID;

  // A fake GUID for unit test.

  static const GUID kUnittestGUID;

  FRIEND_TEST_ALL_PREFIXES(ImporterTest, IEImporter);

  virtual ~IEImporter();

  void ImportFavorites();

  // Reads history information from COM interface.

  void ImportHistory();

  // Import password for IE6 stored in protected storage.

  void ImportPasswordsIE6();

  // Import password for IE7 and IE8 stored in Storage2.

  void ImportPasswordsIE7();

  void ImportSearchEngines();

  // Import the homepage setting of IE. Note: IE supports multiple home pages,

  // whereas Chrome doesn't, so we import only the one defined under the

  // 'Start Page' registry key. We don't import if the homepage is set to the

  // machine default.

  void ImportHomepage();

  // Gets the information of Favorites folder. Returns true if successful.

  bool GetFavoritesInfo(FavoritesInfo* info);

  // This function will read the files in the Favorites folder, and store

  // the bookmark items in |bookmarks| and favicon information in |favicons|.

  void ParseFavoritesFolder(
      const FavoritesInfo& info,
      BookmarkVector* bookmarks,
      std::vector<ImportedFaviconUsage>* favicons);

  // Determines which version of IE is in use.

  int CurrentIEVersion() const;

  // IE does not have source path. It's used in unit tests only for providing a

  // fake source.

  base::FilePath source_path_;

  DISALLOW_COPY_AND_ASSIGN(IEImporter);
};

#endif  // CHROME_UTILITY_IMPORTER_IE_IMPORTER_WIN_H_


/* [<][>][^][v][top][bottom][index][help] */