Add FilePath::{As,From}UTF16Unsafe
R=brettw@chromium.org
Review URL: https://codereview.chromium.org/17509002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207576 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: 65e269ff59a9d86191f8c2f23f9ad210f14a3d79
diff --git a/base/files/file_path.cc b/base/files/file_path.cc
index 743cbb5..ef0cde6 100644
--- a/base/files/file_path.cc
+++ b/base/files/file_path.cc
@@ -577,6 +577,14 @@
#endif
}
+string16 FilePath::AsUTF16Unsafe() const {
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ return UTF8ToUTF16(value());
+#else
+ return WideToUTF16(SysNativeMBToWide(value()));
+#endif
+}
+
// The *Hack functions are temporary while we fix the remainder of the code.
// Remember to remove the #includes at the top when you remove these.
@@ -594,6 +602,15 @@
#endif
}
+// static
+FilePath FilePath::FromUTF16Unsafe(const string16& utf16) {
+#if defined(OS_MACOSX) || defined(OS_CHROMEOS)
+ return FilePath(UTF16ToUTF8(utf16));
+#else
+ return FilePath(SysWideToNativeMB(UTF16ToWide(utf16)));
+#endif
+}
+
#elif defined(OS_WIN)
string16 FilePath::LossyDisplayName() const {
return path_;
@@ -609,6 +626,10 @@
return WideToUTF8(value());
}
+string16 FilePath::AsUTF16Unsafe() const {
+ return value();
+}
+
// static
FilePath FilePath::FromWStringHack(const std::wstring& wstring) {
return FilePath(wstring);
@@ -618,6 +639,11 @@
FilePath FilePath::FromUTF8Unsafe(const std::string& utf8) {
return FilePath(UTF8ToWide(utf8));
}
+
+// static
+FilePath FilePath::FromUTF16Unsafe(const string16& utf16) {
+ return FilePath(utf16);
+}
#endif
void FilePath::WriteToPickle(Pickle* pickle) const {