1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "extensions/shell/browser/shell_runtime_api_delegate.h" 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "extensions/common/api/runtime.h" 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#if defined(OS_CHROMEOS) 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chromeos/dbus/dbus_thread_manager.h" 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chromeos/dbus/power_manager_client.h" 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)using extensions::core_api::runtime::PlatformInfo; 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions { 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ShellRuntimeAPIDelegate::ShellRuntimeAPIDelegate() { 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ShellRuntimeAPIDelegate::~ShellRuntimeAPIDelegate() { 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void ShellRuntimeAPIDelegate::AddUpdateObserver(UpdateObserver* observer) { 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void ShellRuntimeAPIDelegate::RemoveUpdateObserver(UpdateObserver* observer) { 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)base::Version ShellRuntimeAPIDelegate::GetPreviousExtensionVersion( 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const Extension* extension) { 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return base::Version(); 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void ShellRuntimeAPIDelegate::ReloadExtension(const std::string& extension_id) { 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)bool ShellRuntimeAPIDelegate::CheckForUpdates( 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const std::string& extension_id, 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const UpdateCheckCallback& callback) { 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return false; 42010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 44010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void ShellRuntimeAPIDelegate::OpenURL(const GURL& uninstall_url) { 45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)bool ShellRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { 48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#if defined(OS_CHROMEOS) 49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) info->os = PlatformInfo::OS_CROS_; 50010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#elif defined(OS_LINUX) 51010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) info->os = PlatformInfo::OS_LINUX_; 52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif 53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return true; 54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 55010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 56010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)bool ShellRuntimeAPIDelegate::RestartDevice(std::string* error_message) { 57010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// We allow chrome.runtime.restart() to request a device restart on ChromeOS. 58010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#if defined(OS_CHROMEOS) 59010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); 60010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return true; 61010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif 62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) *error_message = "Restart is only supported on ChromeOS."; 63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return false; 64010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace extensions 67