[epiphany/pgriffis/web-extension/content-script-replies: 4/4] WebExtensions: Set tab property on MessageSender
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/pgriffis/web-extension/content-script-replies: 4/4] WebExtensions: Set tab property on MessageSender
- Date: Mon, 6 Jun 2022 20:01:21 +0000 (UTC)
commit 1dca66c79660e81a59bd56a7aa3b2041918ab59b
Author: Patrick Griffis <pgriffis igalia com>
Date: Mon Jun 6 12:21:01 2022 -0500
WebExtensions: Set tab property on MessageSender
src/webextension/api/tabs.c | 11 +++++++++++
src/webextension/api/tabs.h | 2 ++
src/webextension/ephy-web-extension.c | 7 +++++++
3 files changed, 20 insertions(+)
---
diff --git a/src/webextension/api/tabs.c b/src/webextension/api/tabs.c
index e47816804..bc4916fe5 100644
--- a/src/webextension/api/tabs.c
+++ b/src/webextension/api/tabs.c
@@ -119,6 +119,17 @@ add_web_view_to_json (JsonBuilder *builder,
json_builder_end_object (builder);
}
+JsonNode *
+ephy_web_extension_api_tabs_create_tab_object (EphyWebView *web_view)
+{
+ g_autoptr (JsonBuilder) builder = json_builder_new ();
+ add_web_view_to_json (builder,
+ EPHY_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (web_view))),
+ web_view,
+ FALSE);
+ return json_builder_get_root (builder);
+}
+
typedef enum {
TAB_QUERY_UNSET = -1,
TAB_QUERY_DONT_MATCH = 0,
diff --git a/src/webextension/api/tabs.h b/src/webextension/api/tabs.h
index da7ce1e62..a8d526100 100644
--- a/src/webextension/api/tabs.h
+++ b/src/webextension/api/tabs.h
@@ -33,4 +33,6 @@ void ephy_web_extension_api_tabs_handler (EphyWebExtension *self,
WebKitWebView *web_view,
GTask *task);
+JsonNode *ephy_web_extension_api_tabs_create_tab_object (EphyWebView *web_view);
+
G_END_DECLS
diff --git a/src/webextension/ephy-web-extension.c b/src/webextension/ephy-web-extension.c
index a360d8b6d..2a71f79d8 100644
--- a/src/webextension/ephy-web-extension.c
+++ b/src/webextension/ephy-web-extension.c
@@ -32,6 +32,8 @@
#include "ephy-web-extension.h"
#include "ephy-window.h"
+#include "tabs.h"
+
#include <archive.h>
#include <archive_entry.h>
#include <glib/gstdio.h>
@@ -1510,6 +1512,11 @@ ephy_web_extension_create_sender_object (EphyWebExtension *self,
json_object_set_string_member (obj, "id", ephy_web_extension_get_guid (self));
if (web_view) {
json_object_set_string_member (obj, "url", webkit_web_view_get_uri (web_view));
+
+ /* For now these are always regular views and not extension views. */
+ if (EPHY_IS_WEB_VIEW (web_view)) {
+ json_object_set_member (obj, "tab", ephy_web_extension_api_tabs_create_tab_object (EPHY_WEB_VIEW
(web_view)));
+ }
}
return json_to_string (node, FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]