1 // Copyright (c) 2013 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/common/extension_paths.h" 6 7 #include "base/file_util.h" 8 #include "base/path_service.h" 9 10 namespace extensions { 11 12 bool PathProvider(int key, base::FilePath* result) { 13 switch (key) { 14 case DIR_TEST_DATA: { 15 base::FilePath cur; 16 if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) 17 return false; 18 cur = cur.Append(FILE_PATH_LITERAL("extensions")); 19 cur = cur.Append(FILE_PATH_LITERAL("test")); 20 cur = cur.Append(FILE_PATH_LITERAL("data")); 21 if (!base::PathExists(cur)) // we don't want to create this 22 return false; 23 24 *result = cur; 25 return true; 26 break; 27 } 28 default: 29 return false; 30 } 31 32 return false; 33 } 34 35 // This cannot be done as a static initializer sadly since Visual Studio will 36 // eliminate this object file if there is no direct entry point into it. 37 void RegisterPathProvider() { 38 PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); 39 } 40 41 } // namespace extensions 42