summaryrefslogtreecommitdiff
path: root/src/webextension/api/tabs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/webextension/api/tabs.c')
-rw-r--r--src/webextension/api/tabs.c39
1 files changed, 23 insertions, 16 deletions
diff --git a/src/webextension/api/tabs.c b/src/webextension/api/tabs.c
index d2db07fe9..e58c37159 100644
--- a/src/webextension/api/tabs.c
+++ b/src/webextension/api/tabs.c
@@ -67,16 +67,17 @@ get_web_view_for_tab_id (EphyShell *shell,
}
static void
-add_web_view_to_json (JsonBuilder *builder,
- EphyWindow *window,
- EphyWebView *web_view,
- gboolean has_tab_permission)
+add_web_view_to_json (EphyWebExtension *self,
+ JsonBuilder *builder,
+ EphyWindow *window,
+ EphyWebView *web_view)
{
EphyTabView *tab_view = ephy_window_get_tab_view (window);
GtkWidget *page = gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (web_view)));
gboolean is_active = ephy_tab_view_get_current_page (tab_view) == page;
WebKitFaviconDatabase *favicon_db = webkit_web_context_get_favicon_database (webkit_web_view_get_context (WEBKIT_WEB_VIEW (web_view)));
const char *favicon_uri = webkit_favicon_database_get_favicon_uri (favicon_db, ephy_web_view_get_address (web_view));
+ gboolean has_tab_permission = ephy_web_extension_has_tab_or_host_permission (self, web_view, TRUE);
json_builder_begin_object (builder);
if (has_tab_permission) {
@@ -119,14 +120,24 @@ add_web_view_to_json (JsonBuilder *builder,
json_builder_end_object (builder);
}
+void
+ephy_web_extension_api_tabs_add_tab_to_json (EphyWebExtension *self,
+ JsonBuilder *builder,
+ EphyWindow *window,
+ EphyWebView *web_view)
+{
+ add_web_view_to_json (self, builder, window, web_view);
+}
+
JsonNode *
-ephy_web_extension_api_tabs_create_tab_object (EphyWebView *web_view)
+ephy_web_extension_api_tabs_create_tab_object (EphyWebExtension *self,
+ EphyWebView *web_view)
{
g_autoptr (JsonBuilder) builder = json_builder_new ();
- add_web_view_to_json (builder,
+ add_web_view_to_json (self,
+ builder,
EPHY_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (web_view))),
- web_view,
- FALSE);
+ web_view);
return json_builder_get_root (builder);
}
@@ -270,8 +281,7 @@ tabs_handler_query (EphyWebExtension *self,
else if (active == TAB_QUERY_DONT_MATCH && web_view == active_web_view)
continue;
- add_web_view_to_json (builder, window, web_view,
- ephy_web_extension_has_tab_or_host_permission (self, web_view, TRUE));
+ add_web_view_to_json (self, builder, window, web_view);
}
}
@@ -416,8 +426,7 @@ tabs_handler_get (EphyWebExtension *self,
return NULL;
}
- add_web_view_to_json (builder, parent_window, target_web_view,
- ephy_web_extension_has_tab_or_host_permission (self, target_web_view, TRUE));
+ add_web_view_to_json (self, builder, parent_window, target_web_view);
root = json_builder_get_root (builder);
return json_to_string (root, FALSE);
@@ -647,8 +656,7 @@ tabs_handler_create (EphyWebExtension *self,
ephy_web_view_load_new_tab_page (new_web_view);
builder = json_builder_new ();
- add_web_view_to_json (builder, parent_window, new_web_view,
- ephy_web_extension_has_tab_or_host_permission (self, new_web_view, TRUE));
+ add_web_view_to_json (self, builder, parent_window, new_web_view);
root = json_builder_get_root (builder);
return json_to_string (root, FALSE);
}
@@ -712,8 +720,7 @@ tabs_handler_update (EphyWebExtension *self,
webkit_web_view_load_uri (target_web_view, new_url);
builder = json_builder_new ();
- add_web_view_to_json (builder, parent_window, EPHY_WEB_VIEW (target_web_view),
- ephy_web_extension_has_tab_or_host_permission (self, EPHY_WEB_VIEW (target_web_view), TRUE));
+ add_web_view_to_json (self, builder, parent_window, EPHY_WEB_VIEW (target_web_view));
root = json_builder_get_root (builder);
return json_to_string (root, FALSE);
}