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 Workerbool 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