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

Side by Side Diff: chrome/browser/chromeos/version_loader.cc

Issue 7104076: Revert 88440 - Change Chrome OS version numbers to Platform versions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 6 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/chromeos/version_loader.h" 5 #include "chrome/browser/chromeos/version_loader.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/string_split.h" 12 #include "base/string_split.h"
13 #include "base/string_util.h" 13 #include "base/string_util.h"
14 #include "base/threading/thread.h" 14 #include "base/threading/thread.h"
15 #include "base/time.h" 15 #include "base/time.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "content/browser/browser_thread.h" 17 #include "content/browser/browser_thread.h"
18 18
19 namespace chromeos { 19 namespace chromeos {
20 20
21 // File to look for version number in. 21 // File to look for version number in.
22 static const char kPathVersion[] = "/etc/lsb-release"; 22 static const char kPathVersion[] = "/etc/lsb-release";
23 23
24 // TODO(rkc): Remove once we change over the Chrome OS version format.
25 // Done for http://code.google.com/p/chromium-os/issues/detail?id=15789
26 static const size_t kTrimVersion = 2;
27
28 // File to look for firmware number in. 24 // File to look for firmware number in.
29 static const char kPathFirmware[] = "/var/log/bios_info.txt"; 25 static const char kPathFirmware[] = "/var/log/bios_info.txt";
30 26
31 VersionLoader::VersionLoader() : backend_(new Backend()) {} 27 VersionLoader::VersionLoader() : backend_(new Backend()) {}
32 28
33 VersionLoader::~VersionLoader() {} 29 VersionLoader::~VersionLoader() {}
34 30
35 // Beginning of line we look for that gives full version number. 31 // Beginning of line we look for that gives full version number.
36 // Format: x.x.xx.x (Developer|Official build extra info) board info 32 // Format: x.x.xx.x (Developer|Official build extra info) board info
37 // static 33 // static
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 71
76 scoped_refptr<GetFirmwareRequest> request(new GetFirmwareRequest(callback)); 72 scoped_refptr<GetFirmwareRequest> request(new GetFirmwareRequest(callback));
77 AddRequest(request, consumer); 73 AddRequest(request, consumer);
78 74
79 g_browser_process->file_thread()->message_loop()->PostTask( 75 g_browser_process->file_thread()->message_loop()->PostTask(
80 FROM_HERE, 76 FROM_HERE,
81 NewRunnableMethod(backend_.get(), &Backend::GetFirmware, request)); 77 NewRunnableMethod(backend_.get(), &Backend::GetFirmware, request));
82 return request->handle(); 78 return request->handle();
83 } 79 }
84 80
85 void VersionLoader::EnablePlatformVersions(bool enable) {
86 backend_.get()->set_parse_as_platform(enable);
87 }
88
89 // static 81 // static
90 std::string VersionLoader::ParseVersion(const std::string& contents, 82 std::string VersionLoader::ParseVersion(const std::string& contents,
91 const std::string& prefix) { 83 const std::string& prefix) {
92 // The file contains lines such as: 84 // The file contains lines such as:
93 // XXX=YYY 85 // XXX=YYY
94 // AAA=ZZZ 86 // AAA=ZZZ
95 // Split the lines and look for the one that starts with prefix. The version 87 // Split the lines and look for the one that starts with prefix. The version
96 // file is small, which is why we don't try and be tricky. 88 // file is small, which is why we don't try and be tricky.
97 std::vector<std::string> lines; 89 std::vector<std::string> lines;
98 base::SplitString(contents, '\n', &lines); 90 base::SplitString(contents, '\n', &lines);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 if (request->canceled()) 132 if (request->canceled())
141 return; 133 return;
142 134
143 std::string version; 135 std::string version;
144 std::string contents; 136 std::string contents;
145 const FilePath file_path(kPathVersion); 137 const FilePath file_path(kPathVersion);
146 if (file_util::ReadFileToString(file_path, &contents)) { 138 if (file_util::ReadFileToString(file_path, &contents)) {
147 version = ParseVersion( 139 version = ParseVersion(
148 contents, 140 contents,
149 (format == VERSION_FULL) ? kFullVersionPrefix : kVersionPrefix); 141 (format == VERSION_FULL) ? kFullVersionPrefix : kVersionPrefix);
150
151 // TODO(rkc): Fix this once we move to xx.yyy version numbers for Chrome OS
152 // instead of 0.xx.yyy
153 // Done for http://code.google.com/p/chromium-os/issues/detail?id=15789
154 if (parse_as_platform_) {
155 if (version.size() > kTrimVersion) {
156 version = version.substr(kTrimVersion);
157 // Strip the major version.
158 size_t first_dot = version.find(".");
159 if (first_dot != std::string::npos) {
160 version = version.substr(first_dot + 1);
161 }
162 }
163 }
164 } 142 }
165 143
166 if (format == VERSION_SHORT_WITH_DATE) { 144 if (format == VERSION_SHORT_WITH_DATE) {
167 base::PlatformFileInfo fileinfo; 145 base::PlatformFileInfo fileinfo;
168 if (file_util::GetFileInfo(file_path, &fileinfo)) { 146 if (file_util::GetFileInfo(file_path, &fileinfo)) {
169 base::Time::Exploded ctime; 147 base::Time::Exploded ctime;
170 fileinfo.creation_time.UTCExplode(&ctime); 148 fileinfo.creation_time.UTCExplode(&ctime);
171 version += StringPrintf("-%02u.%02u.%02u", 149 version += StringPrintf("-%02u.%02u.%02u",
172 ctime.year % 100, 150 ctime.year % 100,
173 ctime.month, 151 ctime.month,
(...skipping 16 matching lines...) Expand all
190 const FilePath file_path(kPathFirmware); 168 const FilePath file_path(kPathFirmware);
191 if (file_util::ReadFileToString(file_path, &contents)) { 169 if (file_util::ReadFileToString(file_path, &contents)) {
192 firmware = ParseFirmware(contents); 170 firmware = ParseFirmware(contents);
193 } 171 }
194 172
195 request->ForwardResult(GetFirmwareCallback::TupleType(request->handle(), 173 request->ForwardResult(GetFirmwareCallback::TupleType(request->handle(),
196 firmware)); 174 firmware));
197 } 175 }
198 176
199 } // namespace chromeos 177 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/version_loader.h ('k') | chrome/browser/resources/options/about_page.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698