• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 "ui/gfx/gfx_paths.h"
6 
7 #include "base/command_line.h"
8 #include "base/file_util.h"
9 #include "base/files/file_path.h"
10 #include "base/path_service.h"
11 
12 namespace gfx {
13 
PathProvider(int key,base::FilePath * result)14 bool PathProvider(int key, base::FilePath* result) {
15   base::FilePath cur;
16   switch (key) {
17     // The following are only valid in the development environment, and
18     // will fail if executed from an installed executable (because the
19     // generated path won't exist).
20     case DIR_TEST_DATA:
21       if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur))
22         return false;
23       cur = cur.Append(FILE_PATH_LITERAL("ui"));
24       cur = cur.Append(FILE_PATH_LITERAL("gfx"));
25       cur = cur.Append(FILE_PATH_LITERAL("test"));
26       cur = cur.Append(FILE_PATH_LITERAL("data"));
27       if (!base::PathExists(cur))  // we don't want to create this
28         return false;
29       break;
30     default:
31       return false;
32   }
33 
34   *result = cur;
35   return true;
36 }
37 
38 // This cannot be done as a static initializer sadly since Visual Studio will
39 // eliminate this object file if there is no direct entry point into it.
RegisterPathProvider()40 void RegisterPathProvider() {
41   PathService::RegisterProvider(PathProvider, PATH_START, PATH_END);
42 }
43 
44 }  // namespace gfx
45