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

Unified Diff: chrome/browser/chromeos/system/udev_info_provider.cc

Issue 10127009: Make NameValuePairsParser support values that contain the 'equal' separator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments, removed changes to metrics_service.cc Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/system/statistics_provider.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/system/udev_info_provider.cc
diff --git a/chrome/browser/chromeos/system/udev_info_provider.cc b/chrome/browser/chromeos/system/udev_info_provider.cc
index 92a30a76319c3f41558b2cd6a92c3796a2212684..bef292510e22466730beee9f397d78a952ae0b58 100644
--- a/chrome/browser/chromeos/system/udev_info_provider.cc
+++ b/chrome/browser/chromeos/system/udev_info_provider.cc
@@ -21,11 +21,10 @@ namespace {
// Absolute path of the udevadm tool.
const char kUdevadmToolPath[] = "/sbin/udevadm";
-// Args to pass to udevadm (followed by the device path).
-const char* kUdevadmToolArgs[] = { "info", "--query=property", "--path" };
// Key-value separator and string delimiter in output of "udevadm info".
const char kUdevadmEq[] = "=";
const char kUdevadmDelim[] = "\n";
+const char kUdevadmCommentDelim[] = "";
} // namespace
@@ -52,28 +51,23 @@ bool UdevInfoProviderImpl::QueryDeviceProperty(const std::string& sys_path,
std::string* result) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- FilePath udevadm_path(kUdevadmToolPath);
- CommandLine cmd_line(udevadm_path);
-
- // TODO(ivankr): manually appending switches with AppendArg is a workaround
- // to pass "info" argument before switches like "--path" (CommandLine forces
- // arguments after switches).
- for (size_t i = 0; i < arraysize(kUdevadmToolArgs); ++i)
- cmd_line.AppendArg(kUdevadmToolArgs[i]);
- cmd_line.AppendArg(sys_path);
-
- std::string output_string;
- if (!base::GetAppOutput(cmd_line, &output_string)) {
- LOG(ERROR) << "Error executing: " << cmd_line.GetCommandLineString();
- return false;
- }
- TrimWhitespaceASCII(output_string, TRIM_ALL, &output_string);
+ const char* kUdevadmTool[] = {
+ kUdevadmToolPath,
+ "info",
+ "--query=property",
+ "--path",
+ sys_path.c_str(),
+ };
NameValuePairsParser::NameValueMap device_info;
NameValuePairsParser parser(&device_info);
- if (!parser.ParseNameValuePairs(output_string, kUdevadmEq, kUdevadmDelim))
- return false;
+ if (!parser.ParseNameValuePairsFromTool(
+ arraysize(kUdevadmTool), kUdevadmTool, kUdevadmEq,
+ kUdevadmDelim, kUdevadmCommentDelim)) {
+ LOG(WARNING) << "There were errors parsing the output of "
+ << kUdevadmToolPath << ".";
+ }
NameValuePairsParser::NameValueMap::const_iterator it =
device_info.find(property_name);
« no previous file with comments | « chrome/browser/chromeos/system/statistics_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698