| // Copyright (c) 2012 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/ui/webui/version_handler_chromeos.h" |
| |
| #include "base/bind.h" |
| #include "base/task_runner_util.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/web_ui.h" |
| |
| VersionHandlerChromeOS::VersionHandlerChromeOS() |
| : weak_factory_(this) { |
| } |
| |
| VersionHandlerChromeOS::~VersionHandlerChromeOS() { |
| } |
| |
| void VersionHandlerChromeOS::HandleRequestVersionInfo( |
| const base::ListValue* args) { |
| // Start the asynchronous load of the version. |
| base::PostTaskAndReplyWithResult( |
| content::BrowserThread::GetBlockingPool(), |
| FROM_HERE, |
| base::Bind(&chromeos::version_loader::GetVersion, |
| chromeos::version_loader::VERSION_FULL), |
| base::Bind(&VersionHandlerChromeOS::OnVersion, |
| weak_factory_.GetWeakPtr())); |
| |
| // Parent class takes care of the rest. |
| VersionHandler::HandleRequestVersionInfo(args); |
| } |
| |
| void VersionHandlerChromeOS::OnVersion(const std::string& version) { |
| base::StringValue arg(version); |
| web_ui()->CallJavascriptFunction("returnOsVersion", arg); |
| } |