Index: components/resource_provider/file_utils.cc |
diff --git a/components/resource_provider/file_utils.cc b/components/resource_provider/file_utils.cc |
deleted file mode 100644 |
index 756428e898f4fce266ad8b27c953a86aeab460ca..0000000000000000000000000000000000000000 |
--- a/components/resource_provider/file_utils.cc |
+++ /dev/null |
@@ -1,93 +0,0 @@ |
-// Copyright 2015 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 "components/resource_provider/file_utils.h" |
- |
-#include <stddef.h> |
- |
-#include "base/files/file_path.h" |
-#include "base/path_service.h" |
-#include "base/strings/string_split.h" |
-#include "base/strings/string_util.h" |
-#include "build/build_config.h" |
- |
-namespace resource_provider { |
-namespace { |
- |
-bool IsPathNameValid(const std::string& name) { |
- if (name.empty() || name == "." || name == "..") |
- return false; |
- |
- for (auto c : name) { |
- if (!base::IsAsciiAlpha(c) && !base::IsAsciiDigit(c) && |
- c != '_' && c != '.') |
- return false; |
- } |
- return true; |
-} |
- |
-} // namespace |
- |
-base::FilePath GetPathForApplicationName(const std::string& application_name) { |
- std::string path = application_name; |
- const bool is_mojo = |
- base::StartsWith(path, "mojo:", base::CompareCase::INSENSITIVE_ASCII); |
- const bool is_exe = |
- !is_mojo && |
- base::StartsWith(path, "exe:", base::CompareCase::INSENSITIVE_ASCII); |
- if (!is_mojo && !is_exe) |
- return base::FilePath(); |
- if (path.find('.') != std::string::npos) |
- return base::FilePath(); |
- if (is_mojo) |
- path.erase(path.begin(), path.begin() + 5); |
- else |
- path.erase(path.begin(), path.begin() + 4); |
- base::TrimString(path, "/", &path); |
- size_t end_of_name = path.find('/'); |
- if (end_of_name != std::string::npos) |
- path.erase(path.begin() + end_of_name, path.end()); |
- |
- if (!IsPathNameValid(path)) |
- return base::FilePath(); |
- |
- base::FilePath base_path; |
-#if defined(OS_ANDROID) |
- PathService::Get(base::DIR_ANDROID_APP_DATA, &base_path); |
- // |base_path| on android has an additional path, need to go up a level to get |
- // at other apps resources. |
- base_path = base_path.DirName(); |
- base_path = base_path.AppendASCII("app_cached_apps"); |
-#else |
- PathService::Get(base::DIR_EXE, &base_path); |
-#endif |
- // TODO(beng): this won't handle user-specific components. |
- return base_path.AppendASCII("Mojo Applications").AppendASCII(path). |
- AppendASCII("resources"); |
-} |
- |
-base::FilePath GetPathForResourceNamed(const base::FilePath& app_path, |
- const std::string& resource_path) { |
- CHECK(!app_path.empty()); |
- |
- if (resource_path.empty() || resource_path[0] == '/' || |
- resource_path[resource_path.size() - 1] == '/' || |
- resource_path.find("//") != std::string::npos) |
- return base::FilePath(); |
- |
- std::vector<std::string> path_components = base::SplitString( |
- resource_path, "/", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
- if (path_components.empty()) |
- return base::FilePath(); |
- |
- base::FilePath result(app_path); |
- for (const auto& path_component : path_components) { |
- if (!IsPathNameValid(path_component)) |
- return base::FilePath(); |
- result = result.AppendASCII(path_component); |
- } |
- return result; |
-} |
- |
-} // namespace resource_provider |