summaryrefslogtreecommitdiffstats
path: root/chrome/installer
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-08 04:53:36 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-08 04:53:36 +0000
commit25a4c1ccaee2b032ee368d733b79ac814efd7c37 (patch)
tree589cd0233167acf4a3fe7bdaf50cea24ad505b7b /chrome/installer
parentaff39ac8a8ea09920b9180ebc09d72c15832f3ad (diff)
downloadchromium_src-25a4c1ccaee2b032ee368d733b79ac814efd7c37.zip
chromium_src-25a4c1ccaee2b032ee368d733b79ac814efd7c37.tar.gz
chromium_src-25a4c1ccaee2b032ee368d733b79ac814efd7c37.tar.bz2
Move FileEnumerator to its own file, do some refactoring.
It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked. BUG=175002 Reland of 198820 and 298824 Original review = https://codereview.chromium.org/13165005 R=rvargas@chromium.org Review URL: https://codereview.chromium.org/16392011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205019 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer')
-rw-r--r--chrome/installer/setup/setup_util.cc12
-rw-r--r--chrome/installer/setup/uninstall.cc16
-rw-r--r--chrome/installer/test/alternate_version_generator.cc4
-rw-r--r--chrome/installer/util/delete_after_reboot_helper.cc9
-rw-r--r--chrome/installer/util/duplicate_tree_detector.cc6
-rw-r--r--chrome/installer/util/installer_state.cc5
-rw-r--r--chrome/installer/util/installer_state_unittest.cc5
-rw-r--r--chrome/installer/util/shell_util.cc5
-rw-r--r--chrome/installer/util/shell_util_unittest.cc5
9 files changed, 35 insertions, 32 deletions
diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc
index 55a4a8b..768755a 100644
--- a/chrome/installer/setup/setup_util.cc
+++ b/chrome/installer/setup/setup_util.cc
@@ -10,6 +10,7 @@
#include "base/command_line.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/process_util.h"
@@ -125,8 +126,8 @@ int ApplyDiffPatch(const base::FilePath& src,
Version* GetMaxVersionFromArchiveDir(const base::FilePath& chrome_path) {
VLOG(1) << "Looking for Chrome version folder under " << chrome_path.value();
Version* version = NULL;
- file_util::FileEnumerator version_enum(chrome_path, false,
- file_util::FileEnumerator::DIRECTORIES);
+ base::FileEnumerator version_enum(chrome_path, false,
+ base::FileEnumerator::DIRECTORIES);
// TODO(tommi): The version directory really should match the version of
// setup.exe. To begin with, we should at least DCHECK that that's true.
@@ -134,12 +135,11 @@ Version* GetMaxVersionFromArchiveDir(const base::FilePath& chrome_path) {
bool version_found = false;
while (!version_enum.Next().empty()) {
- file_util::FileEnumerator::FindInfo find_data = {0};
- version_enum.GetFindInfo(&find_data);
- VLOG(1) << "directory found: " << find_data.cFileName;
+ base::FileEnumerator::FileInfo find_data = version_enum.GetInfo();
+ VLOG(1) << "directory found: " << find_data.GetName().value();
scoped_ptr<Version> found_version(
- new Version(WideToASCII(find_data.cFileName)));
+ new Version(WideToASCII(find_data.GetName().value())));
if (found_version->IsValid() &&
found_version->CompareTo(*max_version.get()) > 0) {
max_version.reset(found_version.release());
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
index 3ecfdc6..ac558b4 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -11,6 +11,7 @@
#include <vector>
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/path_service.h"
#include "base/process_util.h"
#include "base/string16.h"
@@ -253,11 +254,10 @@ void CheckShouldRemoveSetupAndArchive(
// Returns false in case of an error.
bool RemoveInstallerFiles(const base::FilePath& installer_directory,
bool remove_setup) {
- using file_util::FileEnumerator;
- FileEnumerator file_enumerator(
+ base::FileEnumerator file_enumerator(
installer_directory,
false,
- FileEnumerator::FILES | FileEnumerator::DIRECTORIES);
+ base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES);
bool success = true;
base::FilePath setup_exe_base_name(installer::kSetupExe);
@@ -573,9 +573,8 @@ DeleteResult DeleteChromeFilesAndFolders(const InstallerState& installer_state,
// directory. For parents of the installer directory, we will later recurse
// and delete all the children (that are not also parents/children of the
// installer directory).
- using file_util::FileEnumerator;
- FileEnumerator file_enumerator(
- target_path, true, FileEnumerator::FILES | FileEnumerator::DIRECTORIES);
+ base::FileEnumerator file_enumerator(target_path, true,
+ base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES);
while (true) {
base::FilePath to_delete(file_enumerator.Next());
if (to_delete.empty())
@@ -596,9 +595,8 @@ DeleteResult DeleteChromeFilesAndFolders(const InstallerState& installer_state,
// We don't try killing Chrome processes for Chrome Frame builds since
// that is unlikely to help. Instead, schedule files for deletion and
// return a value that will trigger a reboot prompt.
- FileEnumerator::FindInfo find_info;
- file_enumerator.GetFindInfo(&find_info);
- if (FileEnumerator::IsDirectory(find_info))
+ base::FileEnumerator::FileInfo find_info = file_enumerator.GetInfo();
+ if (find_info.IsDirectory())
ScheduleDirectoryForDeletion(to_delete.value().c_str());
else
ScheduleFileSystemEntityForDeletion(to_delete.value().c_str());
diff --git a/chrome/installer/test/alternate_version_generator.cc b/chrome/installer/test/alternate_version_generator.cc
index 7811be4..8222ba9 100644
--- a/chrome/installer/test/alternate_version_generator.cc
+++ b/chrome/installer/test/alternate_version_generator.cc
@@ -34,6 +34,7 @@
#include "base/basictypes.h"
#include "base/command_line.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/path_service.h"
@@ -432,8 +433,7 @@ bool ApplyAlternateVersion(const base::FilePath& work_dir,
// Modify all .dll and .exe files with the current version.
bool doing_great = true;
- file_util::FileEnumerator all_files(work_dir, true,
- file_util::FileEnumerator::FILES);
+ base::FileEnumerator all_files(work_dir, true, base::FileEnumerator::FILES);
do {
base::FilePath file = all_files.Next();
if (file.empty()) {
diff --git a/chrome/installer/util/delete_after_reboot_helper.cc b/chrome/installer/util/delete_after_reboot_helper.cc
index cc76b0e..3fff620 100644
--- a/chrome/installer/util/delete_after_reboot_helper.cc
+++ b/chrome/installer/util/delete_after_reboot_helper.cc
@@ -16,6 +16,7 @@
#include <vector>
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/win/registry.h"
#include "base/string_util.h"
@@ -116,8 +117,8 @@ bool ScheduleDirectoryForDeletion(const wchar_t* dir_name) {
// First schedule all the normal files for deletion.
{
bool success = true;
- file_util::FileEnumerator file_enum(base::FilePath(dir_name), false,
- file_util::FileEnumerator::FILES);
+ base::FileEnumerator file_enum(base::FilePath(dir_name), false,
+ base::FileEnumerator::FILES);
for (base::FilePath file = file_enum.Next(); !file.empty();
file = file_enum.Next()) {
success = ScheduleFileSystemEntityForDeletion(file.value().c_str());
@@ -131,8 +132,8 @@ bool ScheduleDirectoryForDeletion(const wchar_t* dir_name) {
// Then recurse to all the subdirectories.
{
bool success = true;
- file_util::FileEnumerator dir_enum(base::FilePath(dir_name), false,
- file_util::FileEnumerator::DIRECTORIES);
+ base::FileEnumerator dir_enum(base::FilePath(dir_name), false,
+ base::FileEnumerator::DIRECTORIES);
for (base::FilePath sub_dir = dir_enum.Next(); !sub_dir.empty();
sub_dir = dir_enum.Next()) {
success = ScheduleDirectoryForDeletion(sub_dir.value().c_str());
diff --git a/chrome/installer/util/duplicate_tree_detector.cc b/chrome/installer/util/duplicate_tree_detector.cc
index ff4df32..62d9b51 100644
--- a/chrome/installer/util/duplicate_tree_detector.cc
+++ b/chrome/installer/util/duplicate_tree_detector.cc
@@ -6,13 +6,13 @@
#include "chrome/installer/util/duplicate_tree_detector.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/logging.h"
namespace installer {
bool IsIdenticalFileHierarchy(const base::FilePath& src_path,
const base::FilePath& dest_path) {
- using file_util::FileEnumerator;
base::PlatformFileInfo src_info;
base::PlatformFileInfo dest_info;
@@ -35,8 +35,8 @@ bool IsIdenticalFileHierarchy(const base::FilePath& src_path,
// "identical" to all the entries in src_path.
is_identical = true;
- FileEnumerator path_enum(src_path, false /* not recursive */,
- FileEnumerator::FILES | FileEnumerator::DIRECTORIES);
+ base::FileEnumerator path_enum(src_path, false /* not recursive */,
+ base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES);
for (base::FilePath path = path_enum.Next();
is_identical && !path.empty();
path = path_enum.Next()) {
diff --git a/chrome/installer/util/installer_state.cc b/chrome/installer/util/installer_state.cc
index e951571..ea1915d 100644
--- a/chrome/installer/util/installer_state.cc
+++ b/chrome/installer/util/installer_state.cc
@@ -11,6 +11,7 @@
#include "base/command_line.h"
#include "base/file_util.h"
#include "base/file_version_info.h"
+#include "base/files/file_enumerator.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/string_util.h"
@@ -649,8 +650,8 @@ void InstallerState::RemoveOldVersionDirectories(
GetExistingExeVersions(&existing_version_strings);
// Try to delete all directories that are not in the set we care to keep.
- file_util::FileEnumerator version_enum(target_path(), false,
- file_util::FileEnumerator::DIRECTORIES);
+ base::FileEnumerator version_enum(target_path(), false,
+ base::FileEnumerator::DIRECTORIES);
for (base::FilePath next_version = version_enum.Next(); !next_version.empty();
next_version = version_enum.Next()) {
base::FilePath dir_name(next_version.BaseName());
diff --git a/chrome/installer/util/installer_state_unittest.cc b/chrome/installer/util/installer_state_unittest.cc
index f4fa43e..bf87782 100644
--- a/chrome/installer/util/installer_state_unittest.cc
+++ b/chrome/installer/util/installer_state_unittest.cc
@@ -9,6 +9,7 @@
#include "base/base_paths.h"
#include "base/command_line.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h"
#include "base/path_service.h"
@@ -584,8 +585,8 @@ TEST_F(InstallerStateTest, RemoveOldVersionDirs) {
expected_remaining_dirs.insert(kNewChromeExeVersion);
// Enumerate dirs in target_path(), ensure only desired remain.
- file_util::FileEnumerator version_enum(installer_state.target_path(), false,
- file_util::FileEnumerator::DIRECTORIES);
+ base::FileEnumerator version_enum(installer_state.target_path(), false,
+ base::FileEnumerator::DIRECTORIES);
for (base::FilePath next_version = version_enum.Next(); !next_version.empty();
next_version = version_enum.Next()) {
base::FilePath dir_name(next_version.BaseName());
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
index 37876e5..59a9dce 100644
--- a/chrome/installer/util/shell_util.cc
+++ b/chrome/installer/util/shell_util.cc
@@ -18,6 +18,7 @@
#include "base/bind.h"
#include "base/command_line.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
@@ -1231,8 +1232,8 @@ bool BatchShortcutAction(const FileOperationCallback& shortcut_operation,
bool success = true;
InstallUtil::ProgramCompare target_compare(target_exe);
- file_util::FileEnumerator enumerator(
- shortcut_folder, false, file_util::FileEnumerator::FILES,
+ base::FileEnumerator enumerator(
+ shortcut_folder, false, base::FileEnumerator::FILES,
string16(L"*") + installer::kLnkExt);
base::FilePath target_path;
for (base::FilePath shortcut_path = enumerator.Next();
diff --git a/chrome/installer/util/shell_util_unittest.cc b/chrome/installer/util/shell_util_unittest.cc
index aa3d8e9..db38ed8 100644
--- a/chrome/installer/util/shell_util_unittest.cc
+++ b/chrome/installer/util/shell_util_unittest.cc
@@ -9,6 +9,7 @@
#include "base/base_paths.h"
#include "base/base_paths_win.h"
#include "base/file_util.h"
+#include "base/files/file_enumerator.h"
#include "base/files/scoped_temp_dir.h"
#include "base/md5.h"
#include "base/memory/scoped_ptr.h"
@@ -526,8 +527,8 @@ TEST_F(ShellUtilShortcutTest, CreateMultipleStartMenuShortcutsAndRemoveFolder) {
base::FilePath shortcut_folder(
fake_start_menu_.path().Append(dist_->GetAppShortCutName()));
- file_util::FileEnumerator file_counter(shortcut_folder, false,
- file_util::FileEnumerator::FILES);
+ base::FileEnumerator file_counter(shortcut_folder, false,
+ base::FileEnumerator::FILES);
int count = 0;
while (!file_counter.Next().empty())
++count;