diff --git a/libcef/browser/file_dialog_manager.cc b/libcef/browser/file_dialog_manager.cc index 14159a88d..9a9fd986a 100644 --- a/libcef/browser/file_dialog_manager.cc +++ b/libcef/browser/file_dialog_manager.cc @@ -364,14 +364,14 @@ void CefFileDialogManager::OnRunFileChooserDelegateCallback( if (!file_paths.empty()) { if (mode == blink::mojom::FileChooserParams::Mode::kUploadFolder) { - base_dir = file_paths[0]; - } else { - // Convert FilePath list to SelectedFileInfo list. - for (size_t i = 0; i < file_paths.size(); ++i) { - auto info = blink::mojom::FileChooserFileInfo::NewNativeFile( - blink::mojom::NativeFileInfo::New(file_paths[i], base::string16())); - selected_files.push_back(std::move(info)); - } + base_dir = file_paths[0].DirName(); + } + + // Convert FilePath list to SelectedFileInfo list. + for (size_t i = 0; i < file_paths.size(); ++i) { + auto info = blink::mojom::FileChooserFileInfo::NewNativeFile( + blink::mojom::NativeFileInfo::New(file_paths[i], base::string16())); + selected_files.push_back(std::move(info)); } } diff --git a/tests/cefclient/resources/dialogs.html b/tests/cefclient/resources/dialogs.html index 6caf5fd58..fb1321c33 100644 --- a/tests/cefclient/resources/dialogs.html +++ b/tests/cefclient/resources/dialogs.html @@ -66,6 +66,7 @@ Click a button to show the associated dialog type.


input type="file": +
input type="file" (directory):