Index: ppapi/shared_impl/file_path.cc |
diff --git a/ppapi/shared_impl/file_path.cc b/ppapi/shared_impl/file_path.cc |
index 1502d898589e9fd5b1263dc069c32e884eff5a46..1208b0803e2fad335495057cb4dcf7ab319dbdf5 100644 |
--- a/ppapi/shared_impl/file_path.cc |
+++ b/ppapi/shared_impl/file_path.cc |
@@ -4,8 +4,26 @@ |
#include "ppapi/shared_impl/file_path.h" |
+#include <string> |
+ |
+#if defined(OS_WIN) |
+#include "base/utf_string_conversions.h" |
+#endif |
+ |
namespace ppapi { |
+namespace { |
+ |
+FilePath GetFilePathFromUTF8(const std::string& utf8_path) { |
+#if defined(OS_WIN) |
+ return FilePath(UTF8ToUTF16(utf8_path)); |
+#else |
+ return FilePath(utf8_path); |
+#endif |
+} |
+ |
+} // namespace |
+ |
PepperFilePath::PepperFilePath() |
: domain_(DOMAIN_INVALID), |
path_() { |
@@ -17,4 +35,17 @@ PepperFilePath::PepperFilePath(Domain domain, const FilePath& path) |
// TODO(viettrungluu): Should we DCHECK() some things here? |
} |
+// static |
+PepperFilePath PepperFilePath::MakeAbsolute(const FilePath& path) { |
+ return PepperFilePath(DOMAIN_ABSOLUTE, path); |
+} |
+ |
+// static |
+PepperFilePath PepperFilePath::MakeModuleLocal(const std::string& name, |
+ const char* utf8_path) { |
+ FilePath full_path = GetFilePathFromUTF8(name).Append( |
+ GetFilePathFromUTF8(utf8_path)); |
+ return PepperFilePath(DOMAIN_MODULE_LOCAL, full_path); |
+} |
+ |
} // namespace ppapi |