summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/ui/views/select_file_dialog.cc18
1 files changed, 14 insertions, 4 deletions
diff --git a/chrome/browser/ui/views/select_file_dialog.cc b/chrome/browser/ui/views/select_file_dialog.cc
index 4ce6fa7..1570a9e 100644
--- a/chrome/browser/ui/views/select_file_dialog.cc
+++ b/chrome/browser/ui/views/select_file_dialog.cc
@@ -10,6 +10,7 @@
#include "base/json/json_reader.h"
#include "base/scoped_ptr.h"
#include "base/string_util.h"
+#include "base/sys_string_conversions.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/browser_list.h"
@@ -263,8 +264,12 @@ void SelectFileDialogImpl::OnDialogClosed(FileBrowseDelegate* delegate,
std::string path_string;
if (dict->HasKey(kKeyNamePath) &&
dict->GetString(kKeyNamePath, &path_string)) {
- FilePath path = FilePath::FromWStringHack(UTF8ToWide(path_string));
-
+#if defined(OS_WIN)
+ FilePath path(base::SysUTF8ToWide(path_string));
+#else
+ FilePath path(
+ base::SysWideToNativeMB(base::SysUTF8ToWide(path_string)));
+#endif
listener_->FileSelected(path, kSaveCompletePageIndex,
delegate->params_);
notification_fired = true;
@@ -280,8 +285,13 @@ void SelectFileDialogImpl::OnDialogClosed(FileBrowseDelegate* delegate,
std::string path_string;
if (paths_value->GetString(i, &path_string) &&
!path_string.empty()) {
- paths.push_back(FilePath::FromWStringHack(
- UTF8ToWide(path_string)));
+#if defined(OS_WIN)
+ FilePath path(base::SysUTF8ToWide(path_string));
+#else
+ FilePath path(
+ base::SysWideToNativeMB(base::SysUTF8ToWide(path_string)));
+#endif
+ paths.push_back(path);
}
}