[email protected] | 330b214 | 2011-06-21 21:21:40 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 08397d5 | 2011-02-05 01:53:38 | [diff] [blame] | 5 | #include "ui/gfx/gfx_paths.h" |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 6 | |
7 | #include "base/command_line.h" | ||||
[email protected] | 5799981 | 2013-02-24 05:40:52 | [diff] [blame] | 8 | #include "base/files/file_path.h" |
thestig | 22dfc401 | 2014-09-05 08:29:44 | [diff] [blame] | 9 | #include "base/files/file_util.h" |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 10 | #include "base/path_service.h" |
11 | |||||
12 | namespace gfx { | ||||
13 | |||||
[email protected] | 79f6388 | 2013-02-10 05:15:45 | [diff] [blame] | 14 | bool PathProvider(int key, base::FilePath* result) { |
15 | base::FilePath cur; | ||||
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 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; | ||||
[email protected] | a2d748e | 2011-02-13 05:53:45 | [diff] [blame] | 23 | cur = cur.Append(FILE_PATH_LITERAL("ui")); |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 24 | cur = cur.Append(FILE_PATH_LITERAL("gfx")); |
25 | cur = cur.Append(FILE_PATH_LITERAL("test")); | ||||
26 | cur = cur.Append(FILE_PATH_LITERAL("data")); | ||||
[email protected] | 756748414 | 2013-07-11 17:36:07 | [diff] [blame] | 27 | if (!base::PathExists(cur)) // we don't want to create this |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 28 | return false; |
29 | break; | ||||
30 | default: | ||||
31 | return false; | ||||
32 | } | ||||
33 | |||||
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 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. | ||||
40 | void RegisterPathProvider() { | ||||
41 | PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); | ||||
42 | } | ||||
43 | |||||
44 | } // namespace gfx |