1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "extensions/common/extension_paths.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_util.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/path_service.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace extensions { 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)bool PathProvider(int key, base::FilePath* result) { 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (key != DIR_TEST_DATA) 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return false; 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) base::FilePath cur; 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return false; 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) cur = cur.Append(FILE_PATH_LITERAL("extensions")); 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) cur = cur.Append(FILE_PATH_LITERAL("test")); 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) cur = cur.Append(FILE_PATH_LITERAL("data")); 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!base::PathExists(cur)) // we don't want to create this 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return false; 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) *result = cur; 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return true; 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This cannot be done as a static initializer sadly since Visual Studio will 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// eliminate this object file if there is no direct entry point into it. 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void RegisterPathProvider() { 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace extensions 34