Index: chrome/browser/chromeos/chromeos_version_loader.cc |
=================================================================== |
--- chrome/browser/chromeos/chromeos_version_loader.cc (revision 30488) |
+++ chrome/browser/chromeos/chromeos_version_loader.cc (working copy) |
@@ -1,76 +0,0 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/chromeos/chromeos_version_loader.h" |
- |
-#include "base/file_path.h" |
-#include "base/file_util.h" |
-#include "base/message_loop.h" |
-#include "base/string_util.h" |
-#include "base/thread.h" |
-#include "chrome/browser/browser_process.h" |
- |
-// Beginning of line we look for that gives version number. |
-static const char kPrefix[] = "CHROMEOS_RELEASE_DESCRIPTION="; |
- |
-// File to look for version number in. |
-static const char kPath[] = "/etc/lsb-release"; |
- |
-ChromeOSVersionLoader::ChromeOSVersionLoader() : backend_(new Backend()) { |
-} |
- |
-ChromeOSVersionLoader::Handle ChromeOSVersionLoader::GetVersion( |
- CancelableRequestConsumerBase* consumer, |
- ChromeOSVersionLoader::GetVersionCallback* callback) { |
- if (!g_browser_process->file_thread()) { |
- // This should only happen if Chrome is shutting down, so we don't do |
- // anything. |
- return 0; |
- } |
- |
- scoped_refptr<CancelableRequest<GetVersionCallback> > request( |
- new CancelableRequest<GetVersionCallback>(callback)); |
- AddRequest(request, consumer); |
- |
- g_browser_process->file_thread()->message_loop()->PostTask( |
- FROM_HERE, |
- NewRunnableMethod(backend_.get(), &Backend::GetVersion, request)); |
- return request->handle(); |
-} |
- |
-// static |
-std::string ChromeOSVersionLoader::ParseVersion(const std::string& contents) { |
- // The file contains lines such as: |
- // XXX=YYY |
- // AAA=ZZZ |
- // Split the lines and look for the one that starts with kPrefix. The version |
- // file is small, which is why we don't try and be tricky. |
- std::vector<std::string> lines; |
- SplitString(contents, '\n', &lines); |
- for (size_t i = 0; i < lines.size(); ++i) { |
- if (StartsWithASCII(lines[i], kPrefix, false)) { |
- std::string version = lines[i].substr(std::string(kPrefix).size()); |
- if (version.size() > 1 && version[0] == '"' && |
- version[version.size() - 1] == '"') { |
- // Trim trailing and leading quotes. |
- version = version.substr(1, version.size() - 2); |
- } |
- return version; |
- } |
- } |
- return std::string(); |
-} |
- |
-void ChromeOSVersionLoader::Backend::GetVersion( |
- scoped_refptr<GetVersionRequest> request) { |
- if (request->canceled()) |
- return; |
- |
- std::string version; |
- std::string contents; |
- if (file_util::ReadFileToString(FilePath(kPath), &contents)) |
- version = ParseVersion(contents); |
- request->ForwardResult(GetVersionCallback::TupleType(request->handle(), |
- version)); |
-} |