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. 4 5 #include "extensions/shell/browser/shell_runtime_api_delegate.h" 6 7 #include "extensions/common/api/runtime.h" 8 9 #if defined(OS_CHROMEOS) 10 #include "chromeos/dbus/dbus_thread_manager.h" 11 #include "chromeos/dbus/power_manager_client.h" 12 #endif 13 14 using extensions::core_api::runtime::PlatformInfo; 15 16 namespace extensions { 17 18 ShellRuntimeAPIDelegate::ShellRuntimeAPIDelegate() { 19 } 20 21 ShellRuntimeAPIDelegate::~ShellRuntimeAPIDelegate() { 22 } 23 24 void ShellRuntimeAPIDelegate::AddUpdateObserver(UpdateObserver* observer) { 25 } 26 27 void ShellRuntimeAPIDelegate::RemoveUpdateObserver(UpdateObserver* observer) { 28 } 29 30 base::Version ShellRuntimeAPIDelegate::GetPreviousExtensionVersion( 31 const Extension* extension) { 32 return base::Version(); 33 } 34 35 void ShellRuntimeAPIDelegate::ReloadExtension(const std::string& extension_id) { 36 } 37 38 bool ShellRuntimeAPIDelegate::CheckForUpdates( 39 const std::string& extension_id, 40 const UpdateCheckCallback& callback) { 41 return false; 42 } 43 44 void ShellRuntimeAPIDelegate::OpenURL(const GURL& uninstall_url) { 45 } 46 47 bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { 48 #if defined(OS_CHROMEOS) 49 info->os = PlatformInfo::OS_CROS_; 50 #elif defined(OS_LINUX) 51 info->os = PlatformInfo::OS_LINUX_; 52 #endif 53 return true; 54 } 55 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(); 60 return true; 61 #endif 62 *error_message = "Restart is only supported on ChromeOS."; 63 return false; 64 } 65 66 } // namespace extensions 67