Title: [251069] trunk/Source/WebKit
- Revision
- 251069
- Author
- ph...@webkit.org
- Date
- 2019-10-14 02:21:05 -0700 (Mon, 14 Oct 2019)
Log Message
[GTK][WebInspector] Support for saving data
https://bugs.webkit.org/show_bug.cgi?id=202894
Reviewed by Carlos Garcia Campos.
Implement the WebInspectorProxy::platformSave() method. This
allows users to save the inspector performance measurements, for
instance.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformSave):
* WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:
(WebKit::WebInspectorUI::canSave):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (251068 => 251069)
--- trunk/Source/WebKit/ChangeLog 2019-10-14 08:42:32 UTC (rev 251068)
+++ trunk/Source/WebKit/ChangeLog 2019-10-14 09:21:05 UTC (rev 251069)
@@ -1,3 +1,19 @@
+2019-10-14 Philippe Normand <pnorm...@igalia.com>
+
+ [GTK][WebInspector] Support for saving data
+ https://bugs.webkit.org/show_bug.cgi?id=202894
+
+ Reviewed by Carlos Garcia Campos.
+
+ Implement the WebInspectorProxy::platformSave() method. This
+ allows users to save the inspector performance measurements, for
+ instance.
+
+ * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+ (WebKit::WebInspectorProxy::platformSave):
+ * WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:
+ (WebKit::WebInspectorUI::canSave):
+
2019-10-14 youenn fablet <you...@apple.com>
Reuse existing web processes for running service workers
Modified: trunk/Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp (251068 => 251069)
--- trunk/Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp 2019-10-14 08:42:32 UTC (rev 251068)
+++ trunk/Source/WebKit/UIProcess/gtk/WebInspectorProxyGtk.cpp 2019-10-14 09:21:05 UTC (rev 251069)
@@ -36,6 +36,7 @@
#include "WKMutableArray.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebInspectorProxyClient.h"
+#include "WebInspectorUIMessages.h"
#include "WebKitInspectorWindow.h"
#include "WebKitWebViewBasePrivate.h"
#include "WebPageGroup.h"
@@ -45,6 +46,7 @@
#include <WebCore/GtkUtilities.h>
#include <WebCore/NotImplemented.h>
#include <wtf/FileSystem.h>
+#include <wtf/text/Base64.h>
#include <wtf/text/CString.h>
#include <wtf/text/WTFString.h>
@@ -458,9 +460,44 @@
notImplemented();
}
-void WebInspectorProxy::platformSave(const String&, const String&, bool, bool)
+void WebInspectorProxy::platformSave(const String& filename, const String& content, bool base64Encoded, bool forceSaveDialog)
{
- notImplemented();
+ UNUSED_PARAM(forceSaveDialog);
+
+ GtkWidget* parent = gtk_widget_get_toplevel(m_inspectorView);
+ if (!WebCore::widgetIsOnscreenToplevelWindow(parent))
+ return;
+
+ GRefPtr<GtkFileChooserNative> dialog = adoptGRef(gtk_file_chooser_native_new("Save File",
+ GTK_WINDOW(parent), GTK_FILE_CHOOSER_ACTION_SAVE, "Save", "Cancel"));
+
+ GtkFileChooser* chooser = GTK_FILE_CHOOSER(dialog.get());
+ gtk_file_chooser_set_do_overwrite_confirmation(chooser, TRUE);
+ gtk_file_chooser_set_current_name(chooser, filename.utf8().data());
+
+ if (gtk_native_dialog_run(GTK_NATIVE_DIALOG(dialog.get())) != GTK_RESPONSE_ACCEPT)
+ return;
+
+ gssize dataLength = 0;
+ const char* data;
+
+ if (base64Encoded) {
+ Vector<char> out;
+ if (!base64Decode(content, out, Base64ValidatePadding))
+ return;
+
+ out.shrinkToFit();
+ data = ""
+ dataLength = out.size();
+ } else {
+ data = ""
+ dataLength = content.utf8().length();
+ }
+
+ GRefPtr<GFile> file = adoptGRef(gtk_file_chooser_get_file(chooser));
+ GUniquePtr<char> path(g_file_get_path(file.get()));
+ if (g_file_set_contents(path.get(), data, dataLength, nullptr))
+ m_inspectorPage->process().send(Messages::WebInspectorUI::DidSave(path.get()), m_inspectorPage->webPageID());
}
void WebInspectorProxy::platformAppend(const String&, const String&)
Modified: trunk/Source/WebKit/WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp (251068 => 251069)
--- trunk/Source/WebKit/WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp 2019-10-14 08:42:32 UTC (rev 251068)
+++ trunk/Source/WebKit/WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp 2019-10-14 09:21:05 UTC (rev 251069)
@@ -36,7 +36,7 @@
bool WebInspectorUI::canSave()
{
- return false;
+ return true;
}
String WebInspectorUI::localizedStringsURL()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes