1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/api/system_display/system_display_api.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <string> 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/api/system_display/display_info_provider.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/common/api/system_display.h" 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(OS_CHROMEOS) 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/manifest_handlers/kiosk_mode_info.h" 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "ui/gfx/screen.h" 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciusing core_api::system_display::DisplayUnitInfo; 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace SetDisplayProperties = core_api::system_display::SetDisplayProperties; 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccitypedef std::vector<linked_ptr<core_api::system_display::DisplayUnitInfo> > 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DisplayInfo; 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool SystemDisplayGetInfoFunction::RunSync() { 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) DisplayInfo all_displays_info = 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) DisplayInfoProvider::Get()->GetAllDisplaysInfo(); 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci results_ = 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci core_api::system_display::GetInfo::Results::Create(all_displays_info); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool SystemDisplaySetDisplayPropertiesFunction::RunSync() { 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if !defined(OS_CHROMEOS) 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SetError("Function available only on ChromeOS."); 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return false; 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#else 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if (!KioskModeInfo::IsKioskEnabled(extension())) { 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SetError("The extension needs to be kiosk enabled to use the function."); 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return false; 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) std::string error; 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) scoped_ptr<SetDisplayProperties::Params> params( 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SetDisplayProperties::Params::Create(*args_)); 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool success = 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DisplayInfoProvider::Get()->SetInfo(params->id, params->info, &error); 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (!success) 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SetError(error); 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return true; 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace extensions 56