xref: /aosp_15_r20/external/cronet/base/base_paths_fuchsia.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/base_paths.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include <stdlib.h>
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker #include "base/command_line.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/files/file_util.h"
11*6777b538SAndroid Build Coastguard Worker #include "base/fuchsia/file_utils.h"
12*6777b538SAndroid Build Coastguard Worker #include "base/notimplemented.h"
13*6777b538SAndroid Build Coastguard Worker #include "base/path_service.h"
14*6777b538SAndroid Build Coastguard Worker #include "base/process/process.h"
15*6777b538SAndroid Build Coastguard Worker 
16*6777b538SAndroid Build Coastguard Worker namespace base {
17*6777b538SAndroid Build Coastguard Worker 
PathProviderFuchsia(int key,FilePath * result)18*6777b538SAndroid Build Coastguard Worker bool PathProviderFuchsia(int key, FilePath* result) {
19*6777b538SAndroid Build Coastguard Worker   switch (key) {
20*6777b538SAndroid Build Coastguard Worker     case FILE_EXE:
21*6777b538SAndroid Build Coastguard Worker       *result = CommandLine::ForCurrentProcess()->GetProgram();
22*6777b538SAndroid Build Coastguard Worker       return true;
23*6777b538SAndroid Build Coastguard Worker     case DIR_ASSETS:
24*6777b538SAndroid Build Coastguard Worker       *result = base::FilePath(base::kPackageRootDirectoryPath);
25*6777b538SAndroid Build Coastguard Worker       return true;
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker     // TODO(crbug.com/1459692): Align with other platforms and remove this
28*6777b538SAndroid Build Coastguard Worker     // specialization.
29*6777b538SAndroid Build Coastguard Worker     case DIR_GEN_TEST_DATA_ROOT:
30*6777b538SAndroid Build Coastguard Worker       [[fallthrough]];
31*6777b538SAndroid Build Coastguard Worker 
32*6777b538SAndroid Build Coastguard Worker     case DIR_SRC_TEST_DATA_ROOT:
33*6777b538SAndroid Build Coastguard Worker     case DIR_OUT_TEST_DATA_ROOT:
34*6777b538SAndroid Build Coastguard Worker       // These are only used by tests.
35*6777b538SAndroid Build Coastguard Worker       // Test binaries are added to the package root via GN deps.
36*6777b538SAndroid Build Coastguard Worker       *result = base::FilePath(base::kPackageRootDirectoryPath);
37*6777b538SAndroid Build Coastguard Worker       return true;
38*6777b538SAndroid Build Coastguard Worker     case DIR_USER_DESKTOP:
39*6777b538SAndroid Build Coastguard Worker       // TODO(crbug.com/1231928): Implement this case for DIR_USER_DESKTOP.
40*6777b538SAndroid Build Coastguard Worker       NOTIMPLEMENTED_LOG_ONCE();
41*6777b538SAndroid Build Coastguard Worker       return false;
42*6777b538SAndroid Build Coastguard Worker     case DIR_HOME:
43*6777b538SAndroid Build Coastguard Worker       // TODO(crbug.com/1231928) Provide a proper base::GetHomeDir()
44*6777b538SAndroid Build Coastguard Worker       // implementation for Fuchsia and remove this case statement. See also
45*6777b538SAndroid Build Coastguard Worker       // crbug.com/1261284. For now, log, return false, and let the base
46*6777b538SAndroid Build Coastguard Worker       // implementation handle it. This will end up returning a temporary
47*6777b538SAndroid Build Coastguard Worker       // directory.
48*6777b538SAndroid Build Coastguard Worker       // This is for DIR_HOME. Will use temporary dir.
49*6777b538SAndroid Build Coastguard Worker       NOTIMPLEMENTED_LOG_ONCE();
50*6777b538SAndroid Build Coastguard Worker       return false;
51*6777b538SAndroid Build Coastguard Worker   }
52*6777b538SAndroid Build Coastguard Worker 
53*6777b538SAndroid Build Coastguard Worker   return false;
54*6777b538SAndroid Build Coastguard Worker }
55*6777b538SAndroid Build Coastguard Worker 
56*6777b538SAndroid Build Coastguard Worker }  // namespace base
57