13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "extensions/common/features/feature.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <map> 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/command_line.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/lazy_instance.h" 11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string_util.h" 12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/stringprintf.h" 130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/common/extension.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Feature::Platform Feature::GetCurrentPlatform() { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return CHROMEOS_PLATFORM; 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#elif defined(OS_LINUX) 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return LINUX_PLATFORM; 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#elif defined(OS_MACOSX) 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return MACOSX_PLATFORM; 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#elif defined(OS_WIN) 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return WIN_PLATFORM; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return UNSPECIFIED_PLATFORM; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// static 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)Feature::Availability Feature::CreateAvailability(AvailabilityResult result, 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& message) { 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Availability(result, message); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 380529e5d033099cbfc42635f6f6183833b09dff6eBen MurdochFeature::Availability Feature::IsAvailableToExtension( 390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch const Extension* extension) { 400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return IsAvailableToManifest(extension->id(), 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch extension->GetType(), 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch extension->location(), 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch extension->manifest_version()); 440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 450529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)Feature::Feature() : no_parent_(false) {} 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)Feature::~Feature() {} 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace extensions 51