mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
// Copyright 2017 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "base/base_paths.h"
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include "base/command_line.h"
|
|
#include "base/files/file_path.h"
|
|
|
|
namespace base {
|
|
|
|
bool PathProviderFuchsia(int key, FilePath* result) {
|
|
switch (key) {
|
|
case FILE_MODULE:
|
|
// Not supported in debug or component builds. Fall back on using the EXE
|
|
// path for now.
|
|
// TODO(fuchsia): Get this value from an API. See crbug.com/726124
|
|
case FILE_EXE: {
|
|
// Use the binary name as specified on the command line.
|
|
// TODO(fuchsia): It would be nice to get the canonical executable path
|
|
// from a kernel API. See https://crbug.com/726124
|
|
char bin_dir[PATH_MAX + 1];
|
|
if (realpath(base::CommandLine::ForCurrentProcess()
|
|
->GetProgram()
|
|
.AsUTF8Unsafe()
|
|
.c_str(),
|
|
bin_dir) == NULL) {
|
|
return false;
|
|
}
|
|
*result = FilePath(bin_dir);
|
|
return true;
|
|
}
|
|
case DIR_SOURCE_ROOT:
|
|
// This is only used for tests, so we return the binary location for now.
|
|
*result = FilePath("/system");
|
|
return true;
|
|
case DIR_CACHE:
|
|
*result = FilePath("/data");
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
} // namespace base
|