gjdwebserver-overlay/mail-client/geary/files/0072-GearyWebExtension-Add-factory-method-for-error-user-.patch
Gerben Jan Dijkman c00ddb4dce Added Geary
2021-03-23 14:05:24 +01:00

89 lines
3.9 KiB
Diff

From db69807836cb2485af0941a83f57451c034b21a0 Mon Sep 17 00:00:00 2001
From: Michael Gratton <mike@vee.net>
Date: Fri, 28 Aug 2020 09:44:46 +1000
Subject: [PATCH 072/124] GearyWebExtension: Add factory method for error user
messages
---
.../web-process/web-process-extension.vala | 56 +++++++++++++------
1 file changed, 38 insertions(+), 18 deletions(-)
diff --git a/src/client/web-process/web-process-extension.vala b/src/client/web-process/web-process-extension.vala
index 7aa6dd3c..89d9a1e3 100644
--- a/src/client/web-process/web-process-extension.vala
+++ b/src/client/web-process/web-process-extension.vala
@@ -145,6 +145,37 @@ public class GearyWebExtension : Object {
return ret;
}
+ private WebKit.UserMessage to_exception_message(string? name,
+ string? message,
+ string? backtrace = null,
+ string? source = null,
+ int line_number = -1,
+ int column_number = -1) {
+ var detail = new GLib.VariantDict();
+ if (name != null) {
+ detail.insert_value("name", new GLib.Variant.string(name));
+ }
+ if (message != null) {
+ detail.insert_value("message", new GLib.Variant.string(message));
+ }
+ if (backtrace != null) {
+ detail.insert_value("backtrace", new GLib.Variant.string(backtrace));
+ }
+ if (source != null) {
+ detail.insert_value("source", new GLib.Variant.string(source));
+ }
+ if (line_number > 0) {
+ detail.insert_value("line_number", new GLib.Variant.uint32(line_number));
+ }
+ if (column_number > 0) {
+ detail.insert_value("column_number", new GLib.Variant.uint32(column_number));
+ }
+ return new WebKit.UserMessage(
+ MESSAGE_EXCEPTION_NAME,
+ detail.end()
+ );
+ }
+
private void on_page_created(WebKit.WebExtension extension,
WebKit.WebPage page) {
WebKit.Frame frame = page.get_main_frame();
@@ -203,25 +234,14 @@ public class GearyWebExtension : Object {
JSC.Exception? thrown = context.get_exception();
if (thrown != null) {
- var detail = new GLib.VariantDict();
- if (thrown.get_message() != null) {
- detail.insert_value("name", new GLib.Variant.string(thrown.get_name()));
- }
- if (thrown.get_message() != null) {
- detail.insert_value("message", new GLib.Variant.string(thrown.get_message()));
- }
- if (thrown.get_backtrace_string() != null) {
- detail.insert_value("backtrace_string", new GLib.Variant.string(thrown.get_backtrace_string()));
- }
- if (thrown.get_source_uri() != null) {
- detail.insert_value("source_uri", new GLib.Variant.string(thrown.get_source_uri()));
- }
- detail.insert_value("line_number", new GLib.Variant.uint32(thrown.get_line_number()));
- detail.insert_value("column_number", new GLib.Variant.uint32(thrown.get_column_number()));
message.send_reply(
- new WebKit.UserMessage(
- MESSAGE_EXCEPTION_NAME,
- detail.end()
+ to_exception_message(
+ thrown.get_name(),
+ thrown.get_message(),
+ thrown.get_backtrace_string(),
+ thrown.get_source_uri(),
+ (int) thrown.get_line_number(),
+ (int) thrown.get_column_number()
)
);
} else {
--
2.29.2