Bug 223160
| Summary: | [GTK] Clicking on a custom context menu item doesn't activate action (WebExtension) | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | samuel.dudik |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | bugs-noreply, mcatanzaro |
| Priority: | P3 | Keywords: | Gtk |
| Version: | Other | ||
| Hardware: | PC | ||
| OS: | Linux | ||
samuel.dudik
Clicking on a custom 'right-click' context menu item created with webkit_context_menu_item_new_from_gaction doesn't activate the specified action (no errors or warnings). This behavior only appears when using the "context-menu" signal from a WebKitWebPage (which is the only way when connecting from a WebExtension). Using it from WebKitWebView works fine.
static void web_page_created_callback(WebKitWebExtension *extension, WebKitWebPage *web_page, gpointer user_data)
{
g_signal_connect(web_page, "context-menu", G_CALLBACK(context_menu_opened_callback), NULL);
}
static void open_adblock_settings(GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
g_print("Opened settings\n");
}
static gboolean context_menu_opened_callback(WebKitWebPage *web_page, WebKitContextMenu *context_menu, WebKitWebHitTestResult *hit_test_result, gpointer user_data)
{
g_print("Context menu opened\n");
webkit_context_menu_append(context_menu, webkit_context_menu_item_new_separator());
GSimpleAction *action = g_simple_action_new("open-settings", NULL);
g_signal_connect(action, "activate", G_CALLBACK(open_adblock_settings), NULL);
WebKitContextMenuItem *item = webkit_context_menu_item_new_from_gaction(G_ACTION(action), "Settings", NULL);
webkit_context_menu_append(context_menu, item);
return TRUE;
}
After clicking on the "Settings" menu item:
Expected Results: "Opened settings" gets printed.
Actual Results: "Opened settings" doesn't get printed.
Encountered on Void Linux, WebKitGTK 2.30.5.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |