Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Side by Side Diff: chrome/browser/diagnostics/recon_diagnostics.cc

Issue 12212048: Linux/ChromeOS Chromium style checker cleanup, chrome/browser edition. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/diagnostics/recon_diagnostics.h" 5 #include "chrome/browser/diagnostics/recon_diagnostics.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 27 matching lines...) Expand all
38 namespace { 38 namespace {
39 39
40 class InstallTypeTest; 40 class InstallTypeTest;
41 InstallTypeTest* g_install_type = 0; 41 InstallTypeTest* g_install_type = 0;
42 42
43 // Check that the flavor of the operating system is supported. 43 // Check that the flavor of the operating system is supported.
44 class OperatingSystemTest : public DiagnosticTest { 44 class OperatingSystemTest : public DiagnosticTest {
45 public: 45 public:
46 OperatingSystemTest() : DiagnosticTest(ASCIIToUTF16("Operating System")) {} 46 OperatingSystemTest() : DiagnosticTest(ASCIIToUTF16("Operating System")) {}
47 47
48 virtual int GetId() { return 0; } 48 virtual int GetId() OVERRIDE { return 0; }
49 49
50 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 50 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
51 #if defined(OS_WIN) 51 #if defined(OS_WIN)
52 base::win::Version version = base::win::GetVersion(); 52 base::win::Version version = base::win::GetVersion();
53 if ((version < base::win::VERSION_XP) || 53 if ((version < base::win::VERSION_XP) ||
54 ((version == base::win::VERSION_XP) && 54 ((version == base::win::VERSION_XP) &&
55 (base::win::OSInfo::GetInstance()->service_pack().major < 2))) { 55 (base::win::OSInfo::GetInstance()->service_pack().major < 2))) {
56 RecordFailure(ASCIIToUTF16("Must have Windows XP SP2 or later")); 56 RecordFailure(ASCIIToUTF16("Must have Windows XP SP2 or later"));
57 return false; 57 return false;
58 } 58 }
59 #else 59 #else
60 // TODO(port): define the OS criteria for Linux and Mac. 60 // TODO(port): define the OS criteria for Linux and Mac.
61 #endif // defined(OS_WIN) 61 #endif // defined(OS_WIN)
62 RecordSuccess(ASCIIToUTF16(base::StringPrintf( 62 RecordSuccess(ASCIIToUTF16(base::StringPrintf(
63 "%s %s", 63 "%s %s",
64 base::SysInfo::OperatingSystemName().c_str(), 64 base::SysInfo::OperatingSystemName().c_str(),
65 base::SysInfo::OperatingSystemVersion().c_str()))); 65 base::SysInfo::OperatingSystemVersion().c_str())));
66 return true; 66 return true;
67 } 67 }
68 68
69 private: 69 private:
70 DISALLOW_COPY_AND_ASSIGN(OperatingSystemTest); 70 DISALLOW_COPY_AND_ASSIGN(OperatingSystemTest);
71 }; 71 };
72 72
73 // Check if any conflicting DLLs are loaded. 73 // Check if any conflicting DLLs are loaded.
74 class ConflictingDllsTest : public DiagnosticTest { 74 class ConflictingDllsTest : public DiagnosticTest {
75 public: 75 public:
76 ConflictingDllsTest() : DiagnosticTest(ASCIIToUTF16("Conflicting modules")) {} 76 ConflictingDllsTest() : DiagnosticTest(ASCIIToUTF16("Conflicting modules")) {}
77 77
78 virtual int GetId() { return 0; } 78 virtual int GetId() OVERRIDE { return 0; }
79 79
80 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 80 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
81 #if defined(OS_WIN) 81 #if defined(OS_WIN)
82 EnumerateModulesModel* model = EnumerateModulesModel::GetInstance(); 82 EnumerateModulesModel* model = EnumerateModulesModel::GetInstance();
83 model->set_limited_mode(true); 83 model->set_limited_mode(true);
84 model->ScanNow(); 84 model->ScanNow();
85 scoped_ptr<ListValue> list(model->GetModuleList()); 85 scoped_ptr<ListValue> list(model->GetModuleList());
86 if (!model->confirmed_bad_modules_detected() && 86 if (!model->confirmed_bad_modules_detected() &&
87 !model->suspected_bad_modules_detected()) { 87 !model->suspected_bad_modules_detected()) {
88 RecordSuccess(ASCIIToUTF16("No conflicting modules found")); 88 RecordSuccess(ASCIIToUTF16("No conflicting modules found"));
89 return true; 89 return true;
90 } 90 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 private: 124 private:
125 DISALLOW_COPY_AND_ASSIGN(ConflictingDllsTest); 125 DISALLOW_COPY_AND_ASSIGN(ConflictingDllsTest);
126 }; 126 };
127 127
128 // Check if it is system install or per-user install. 128 // Check if it is system install or per-user install.
129 class InstallTypeTest : public DiagnosticTest { 129 class InstallTypeTest : public DiagnosticTest {
130 public: 130 public:
131 InstallTypeTest() : DiagnosticTest(ASCIIToUTF16("Install Type")), 131 InstallTypeTest() : DiagnosticTest(ASCIIToUTF16("Install Type")),
132 user_level_(false) {} 132 user_level_(false) {}
133 133
134 virtual int GetId() { return 0; } 134 virtual int GetId() OVERRIDE { return 0; }
135 135
136 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 136 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
137 #if defined(OS_WIN) 137 #if defined(OS_WIN)
138 FilePath chrome_exe; 138 FilePath chrome_exe;
139 if (!PathService::Get(base::FILE_EXE, &chrome_exe)) { 139 if (!PathService::Get(base::FILE_EXE, &chrome_exe)) {
140 RecordFailure(ASCIIToUTF16("Path provider failure")); 140 RecordFailure(ASCIIToUTF16("Path provider failure"));
141 return false; 141 return false;
142 } 142 }
143 user_level_ = InstallUtil::IsPerUserInstall(chrome_exe.value().c_str()); 143 user_level_ = InstallUtil::IsPerUserInstall(chrome_exe.value().c_str());
144 const char* type = user_level_ ? "User Level" : "System Level"; 144 const char* type = user_level_ ? "User Level" : "System Level";
145 string16 install_type(ASCIIToUTF16(type)); 145 string16 install_type(ASCIIToUTF16(type));
146 #else 146 #else
147 string16 install_type(ASCIIToUTF16("System Level")); 147 string16 install_type(ASCIIToUTF16("System Level"));
148 #endif // defined(OS_WIN) 148 #endif // defined(OS_WIN)
149 RecordSuccess(install_type); 149 RecordSuccess(install_type);
150 g_install_type = this; 150 g_install_type = this;
151 return true; 151 return true;
152 } 152 }
153 153
154 bool system_level() const { return !user_level_; } 154 bool system_level() const { return !user_level_; }
155 155
156 private: 156 private:
157 bool user_level_; 157 bool user_level_;
158 DISALLOW_COPY_AND_ASSIGN(InstallTypeTest); 158 DISALLOW_COPY_AND_ASSIGN(InstallTypeTest);
159 }; 159 };
160 160
161 // Check the version of Chrome. 161 // Check the version of Chrome.
162 class VersionTest : public DiagnosticTest { 162 class VersionTest : public DiagnosticTest {
163 public: 163 public:
164 VersionTest() : DiagnosticTest(ASCIIToUTF16("Browser Version")) {} 164 VersionTest() : DiagnosticTest(ASCIIToUTF16("Browser Version")) {}
165 165
166 virtual int GetId() { return 0; } 166 virtual int GetId() OVERRIDE { return 0; }
167 167
168 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 168 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
169 chrome::VersionInfo version_info; 169 chrome::VersionInfo version_info;
170 if (!version_info.is_valid()) { 170 if (!version_info.is_valid()) {
171 RecordFailure(ASCIIToUTF16("No Version")); 171 RecordFailure(ASCIIToUTF16("No Version"));
172 return true; 172 return true;
173 } 173 }
174 std::string current_version = version_info.Version(); 174 std::string current_version = version_info.Version();
175 if (current_version.empty()) { 175 if (current_version.empty()) {
176 RecordFailure(ASCIIToUTF16("Empty Version")); 176 RecordFailure(ASCIIToUTF16("Empty Version"));
177 return true; 177 return true;
178 } 178 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 216
217 // Check that the user's data directory exists and the paths are writable. 217 // Check that the user's data directory exists and the paths are writable.
218 // If it is a systemwide install some paths are not expected to be writable. 218 // If it is a systemwide install some paths are not expected to be writable.
219 // This test depends on |InstallTypeTest| having run successfully. 219 // This test depends on |InstallTypeTest| having run successfully.
220 class PathTest : public DiagnosticTest { 220 class PathTest : public DiagnosticTest {
221 public: 221 public:
222 explicit PathTest(const TestPathInfo& path_info) 222 explicit PathTest(const TestPathInfo& path_info)
223 : DiagnosticTest(ASCIIToUTF16(path_info.test_name)), 223 : DiagnosticTest(ASCIIToUTF16(path_info.test_name)),
224 path_info_(path_info) {} 224 path_info_(path_info) {}
225 225
226 virtual int GetId() { return 0; } 226 virtual int GetId() OVERRIDE { return 0; }
227 227
228 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 228 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
229 if (!g_install_type) { 229 if (!g_install_type) {
230 RecordStopFailure(ASCIIToUTF16("dependency failure")); 230 RecordStopFailure(ASCIIToUTF16("dependency failure"));
231 return false; 231 return false;
232 } 232 }
233 FilePath dir_or_file; 233 FilePath dir_or_file;
234 if (!PathService::Get(path_info_.path_id, &dir_or_file)) { 234 if (!PathService::Get(path_info_.path_id, &dir_or_file)) {
235 RecordStopFailure(ASCIIToUTF16("Path provider failure")); 235 RecordStopFailure(ASCIIToUTF16("Path provider failure"));
236 return false; 236 return false;
237 } 237 }
238 if (!file_util::PathExists(dir_or_file)) { 238 if (!file_util::PathExists(dir_or_file)) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 TestPathInfo path_info_; 281 TestPathInfo path_info_;
282 DISALLOW_COPY_AND_ASSIGN(PathTest); 282 DISALLOW_COPY_AND_ASSIGN(PathTest);
283 }; 283 };
284 284
285 // Check that the disk space in the volume where the user data dir normally 285 // Check that the disk space in the volume where the user data dir normally
286 // lives is not dangerously low. 286 // lives is not dangerously low.
287 class DiskSpaceTest : public DiagnosticTest { 287 class DiskSpaceTest : public DiagnosticTest {
288 public: 288 public:
289 DiskSpaceTest() : DiagnosticTest(ASCIIToUTF16("Disk Space")) {} 289 DiskSpaceTest() : DiagnosticTest(ASCIIToUTF16("Disk Space")) {}
290 290
291 virtual int GetId() { return 0; } 291 virtual int GetId() OVERRIDE { return 0; }
292 292
293 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 293 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
294 FilePath data_dir; 294 FilePath data_dir;
295 if (!PathService::Get(chrome::DIR_USER_DATA, &data_dir)) 295 if (!PathService::Get(chrome::DIR_USER_DATA, &data_dir))
296 return false; 296 return false;
297 int64 disk_space = base::SysInfo::AmountOfFreeDiskSpace(data_dir); 297 int64 disk_space = base::SysInfo::AmountOfFreeDiskSpace(data_dir);
298 if (disk_space < 0) { 298 if (disk_space < 0) {
299 RecordFailure(ASCIIToUTF16("Unable to query free space")); 299 RecordFailure(ASCIIToUTF16("Unable to query free space"));
300 return true; 300 return true;
301 } 301 }
302 string16 printable_size = ui::FormatBytes(disk_space); 302 string16 printable_size = ui::FormatBytes(disk_space);
303 if (disk_space < 80 * kOneMeg) { 303 if (disk_space < 80 * kOneMeg) {
304 RecordFailure(ASCIIToUTF16("Low disk space : ") + printable_size); 304 RecordFailure(ASCIIToUTF16("Low disk space : ") + printable_size);
305 return true; 305 return true;
306 } 306 }
307 RecordSuccess(ASCIIToUTF16("Free space : ") + printable_size); 307 RecordSuccess(ASCIIToUTF16("Free space : ") + printable_size);
308 return true; 308 return true;
309 } 309 }
310 310
311 private: 311 private:
312 DISALLOW_COPY_AND_ASSIGN(DiskSpaceTest); 312 DISALLOW_COPY_AND_ASSIGN(DiskSpaceTest);
313 }; 313 };
314 314
315 // Checks that a given json file can be correctly parsed. 315 // Checks that a given json file can be correctly parsed.
316 class JSONTest : public DiagnosticTest { 316 class JSONTest : public DiagnosticTest {
317 public: 317 public:
318 JSONTest(const FilePath& path, const string16& name, int64 max_file_size) 318 JSONTest(const FilePath& path, const string16& name, int64 max_file_size)
319 : DiagnosticTest(name), path_(path), max_file_size_(max_file_size) { 319 : DiagnosticTest(name), path_(path), max_file_size_(max_file_size) {
320 } 320 }
321 321
322 virtual int GetId() { return 0; } 322 virtual int GetId() OVERRIDE { return 0; }
323 323
324 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { 324 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE {
325 if (!file_util::PathExists(path_)) { 325 if (!file_util::PathExists(path_)) {
326 RecordFailure(ASCIIToUTF16("File not found")); 326 RecordFailure(ASCIIToUTF16("File not found"));
327 return true; 327 return true;
328 } 328 }
329 int64 file_size; 329 int64 file_size;
330 if (!file_util::GetFileSize(path_, &file_size)) { 330 if (!file_util::GetFileSize(path_, &file_size)) {
331 RecordFailure(ASCIIToUTF16("Cannot obtain file size")); 331 RecordFailure(ASCIIToUTF16("Cannot obtain file size"));
332 return true; 332 return true;
333 } 333 }
334 334
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 path = path.Append(chrome::kBookmarksFileName); 415 path = path.Append(chrome::kBookmarksFileName);
416 return new JSONTest(path, ASCIIToUTF16("BookMarks JSON"), 2 * kOneMeg); 416 return new JSONTest(path, ASCIIToUTF16("BookMarks JSON"), 2 * kOneMeg);
417 } 417 }
418 418
419 DiagnosticTest* MakeLocalStateTest() { 419 DiagnosticTest* MakeLocalStateTest() {
420 FilePath path; 420 FilePath path;
421 PathService::Get(chrome::DIR_USER_DATA, &path); 421 PathService::Get(chrome::DIR_USER_DATA, &path);
422 path = path.Append(chrome::kLocalStateFilename); 422 path = path.Append(chrome::kLocalStateFilename);
423 return new JSONTest(path, ASCIIToUTF16("Local State JSON"), 50 * kOneKilo); 423 return new JSONTest(path, ASCIIToUTF16("Local State JSON"), 50 * kOneKilo);
424 } 424 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698