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

Side by Side Diff: base/linux_util.cc

Issue 285013: On Linux, Chrome uses lsb_release (a python script) to determine the name of ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "base/linux_util.h" 5 #include "base/linux_util.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 115
116 // We use this static string to hold the Linux distro info. If we 116 // We use this static string to hold the Linux distro info. If we
117 // crash, the crash handler code will send this in the crash dump. 117 // crash, the crash handler code will send this in the crash dump.
118 std::string linux_distro = "Unknown"; 118 std::string linux_distro = "Unknown";
119 119
120 std::string GetLinuxDistro() { 120 std::string GetLinuxDistro() {
121 LinuxDistroHelper* distro_state_singleton = LinuxDistroHelper::Get(); 121 LinuxDistroHelper* distro_state_singleton = LinuxDistroHelper::Get();
122 LinuxDistroState state = distro_state_singleton->State(); 122 LinuxDistroState state = distro_state_singleton->State();
123 if (STATE_DID_NOT_CHECK == state) { 123 if (STATE_DID_NOT_CHECK == state) {
124 #if defined(OS_CHROMEOS)
125 linux_distro = "CrOS";
126 #else // if defined(OS_LINUX)
124 // We do this check only once per process. If it fails, there's 127 // We do this check only once per process. If it fails, there's
125 // little reason to believe it will work if we attempt to run 128 // little reason to believe it will work if we attempt to run
126 // lsb_release again. 129 // lsb_release again.
127 std::vector<std::string> argv; 130 std::vector<std::string> argv;
128 argv.push_back("lsb_release"); 131 argv.push_back("lsb_release");
129 argv.push_back("-d"); 132 argv.push_back("-d");
130 std::string output; 133 std::string output;
131 base::GetAppOutput(CommandLine(argv), &output); 134 base::GetAppOutput(CommandLine(argv), &output);
132 if (output.length() > 0) { 135 if (output.length() > 0) {
133 // lsb_release -d should return: Description:<tab>Distro Info 136 // lsb_release -d should return: Description:<tab>Distro Info
134 static const std::string field = "Description:\t"; 137 static const std::string field = "Description:\t";
135 if (output.compare(0, field.length(), field) == 0) 138 if (output.compare(0, field.length(), field) == 0)
136 linux_distro = output.substr(field.length()); 139 linux_distro = output.substr(field.length());
137 } 140 }
141 #endif
138 distro_state_singleton->CheckFinished(); 142 distro_state_singleton->CheckFinished();
139 return linux_distro; 143 return linux_distro;
140 } else if (STATE_CHECK_STARTED == state) { 144 } else if (STATE_CHECK_STARTED == state) {
141 // If the distro check above is in progress in some other thread, we're 145 // If the distro check above is in progress in some other thread, we're
142 // not going to wait for the results. 146 // not going to wait for the results.
143 return "Unknown"; 147 return "Unknown";
144 } else { 148 } else {
145 // In STATE_CHECK_FINISHED, no more writing to |linux_distro|. 149 // In STATE_CHECK_FINISHED, no more writing to |linux_distro|.
146 return linux_distro; 150 return linux_distro;
147 } 151 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 return "KDE4"; 193 return "KDE4";
190 } 194 }
191 return NULL; 195 return NULL;
192 } 196 }
193 197
194 const char* GetDesktopEnvironmentName(EnvironmentVariableGetter* env) { 198 const char* GetDesktopEnvironmentName(EnvironmentVariableGetter* env) {
195 return GetDesktopEnvironmentName(GetDesktopEnvironment(env)); 199 return GetDesktopEnvironmentName(GetDesktopEnvironment(env));
196 } 200 }
197 201
198 } // namespace base 202 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698