Home | History | Annotate | Download | only in common
      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