1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "extensions/shell/browser/shell_runtime_api_delegate.h"
7 #include "extensions/common/api/runtime.h"
9 #if defined(OS_CHROMEOS)
10 #include "chromeos/dbus/dbus_thread_manager.h"
11 #include "chromeos/dbus/power_manager_client.h"
14 using extensions::api::runtime::PlatformInfo
;
16 namespace extensions
{
18 ShellRuntimeAPIDelegate::ShellRuntimeAPIDelegate() {
21 ShellRuntimeAPIDelegate::~ShellRuntimeAPIDelegate() {
24 void ShellRuntimeAPIDelegate::AddUpdateObserver(UpdateObserver
* observer
) {
27 void ShellRuntimeAPIDelegate::RemoveUpdateObserver(UpdateObserver
* observer
) {
30 base::Version
ShellRuntimeAPIDelegate::GetPreviousExtensionVersion(
31 const Extension
* extension
) {
32 return base::Version();
35 void ShellRuntimeAPIDelegate::ReloadExtension(const std::string
& extension_id
) {
38 bool ShellRuntimeAPIDelegate::CheckForUpdates(
39 const std::string
& extension_id
,
40 const UpdateCheckCallback
& callback
) {
44 void ShellRuntimeAPIDelegate::OpenURL(const GURL
& uninstall_url
) {
47 bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo
* info
) {
48 #if defined(OS_CHROMEOS)
49 info
->os
= api::runtime::PLATFORM_OS_CROS
;
50 #elif defined(OS_LINUX)
51 info
->os
= api::runtime::PLATFORM_OS_LINUX
;
56 bool ShellRuntimeAPIDelegate::RestartDevice(std::string
* error_message
) {
57 // We allow chrome.runtime.restart() to request a device restart on ChromeOS.
58 #if defined(OS_CHROMEOS)
59 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart();
62 *error_message
= "Restart is only supported on ChromeOS.";
66 } // namespace extensions