summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp
index 0855deea3..8b187a44e 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp
@@ -21,14 +21,14 @@
#include "WebKitFileChooserRequest.h"
#include "APIArray.h"
+#include "APIOpenPanelParameters.h"
#include "APIString.h"
#include "WebKitFileChooserRequestPrivate.h"
-#include "WebOpenPanelParameters.h"
#include "WebOpenPanelResultListenerProxy.h"
#include <WebCore/FileSystem.h>
#include <glib/gi18n-lib.h>
-#include <wtf/gobject/GRefPtr.h>
-#include <wtf/gobject/GUniquePtr.h>
+#include <wtf/glib/GRefPtr.h>
+#include <wtf/glib/GUniquePtr.h>
#include <wtf/text/CString.h>
using namespace WebKit;
@@ -59,7 +59,7 @@ using namespace WebCore;
*/
struct _WebKitFileChooserRequestPrivate {
- RefPtr<WebOpenPanelParameters> parameters;
+ RefPtr<API::OpenPanelParameters> parameters;
RefPtr<WebOpenPanelResultListenerProxy> listener;
GRefPtr<GtkFileFilter> filter;
GRefPtr<GPtrArray> mimeTypes;
@@ -175,7 +175,7 @@ static void webkit_file_chooser_request_class_init(WebKitFileChooserRequestClass
WEBKIT_PARAM_READABLE));
}
-WebKitFileChooserRequest* webkitFileChooserRequestCreate(WebOpenPanelParameters* parameters, WebOpenPanelResultListenerProxy* listener)
+WebKitFileChooserRequest* webkitFileChooserRequestCreate(API::OpenPanelParameters* parameters, WebOpenPanelResultListenerProxy* listener)
{
WebKitFileChooserRequest* request = WEBKIT_FILE_CHOOSER_REQUEST(g_object_new(WEBKIT_TYPE_FILE_CHOOSER_REQUEST, NULL));
request->priv->parameters = parameters;
@@ -206,7 +206,7 @@ const gchar* const* webkit_file_chooser_request_get_mime_types(WebKitFileChooser
if (request->priv->mimeTypes)
return reinterpret_cast<gchar**>(request->priv->mimeTypes->pdata);
- RefPtr<API::Array> mimeTypes = request->priv->parameters->acceptMIMETypes();
+ Ref<API::Array> mimeTypes = request->priv->parameters->acceptMIMETypes();
size_t numOfMimeTypes = mimeTypes->size();
if (!numOfMimeTypes)
return 0;
@@ -247,7 +247,7 @@ GtkFileFilter* webkit_file_chooser_request_get_mime_types_filter(WebKitFileChoos
if (request->priv->filter)
return request->priv->filter.get();
- RefPtr<API::Array> mimeTypes = request->priv->parameters->acceptMIMETypes();
+ Ref<API::Array> mimeTypes = request->priv->parameters->acceptMIMETypes();
size_t numOfMimeTypes = mimeTypes->size();
if (!numOfMimeTypes)
return 0;
@@ -299,23 +299,15 @@ void webkit_file_chooser_request_select_files(WebKitFileChooserRequest* request,
g_return_if_fail(files);
GRefPtr<GPtrArray> selectedFiles = adoptGRef(g_ptr_array_new_with_free_func(g_free));
- Vector<RefPtr<API::Object> > choosenFiles;
+ Vector<String> chosenFiles;
for (int i = 0; files[i]; i++) {
- GRefPtr<GFile> filename = adoptGRef(g_file_new_for_path(files[i]));
-
- // Make sure the file path is presented as an URI (escaped
- // string, with the 'file://' prefix) to WebCore otherwise the
- // FileChooser won't actually choose it.
- GUniquePtr<char> uri(g_file_get_uri(filename.get()));
- choosenFiles.append(API::URL::create(String::fromUTF8(uri.get())));
-
- // Do not use the URI here because this won't reach WebCore.
+ chosenFiles.append(WebCore::decodeURLEscapeSequences(String::fromUTF8(files[i])));
g_ptr_array_add(selectedFiles.get(), g_strdup(files[i]));
}
- g_ptr_array_add(selectedFiles.get(), 0);
+ g_ptr_array_add(selectedFiles.get(), nullptr);
// Select the files in WebCore and update local private attributes.
- request->priv->listener->chooseFiles(API::Array::create(std::move(choosenFiles)).get());
+ request->priv->listener->chooseFiles(chosenFiles);
request->priv->selectedFiles = selectedFiles;
request->priv->handledRequest = true;
}
@@ -354,7 +346,7 @@ const gchar* const* webkit_file_chooser_request_get_selected_files(WebKitFileCho
request->priv->selectedFiles = adoptGRef(g_ptr_array_new_with_free_func(g_free));
for (size_t i = 0; i < numOfFiles; ++i) {
API::String* webFileName = static_cast<API::String*>(selectedFileNames->at(i));
- if (webFileName->isEmpty())
+ if (webFileName->stringView().isEmpty())
continue;
CString filename = fileSystemRepresentation(webFileName->string());
g_ptr_array_add(request->priv->selectedFiles.get(), g_strdup(filename.data()));