问题标签 [webkit2-webextension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
73 浏览

webkit2 - 在没有 JavaScript 的 WebKit2 Web 扩展中清除选择

我想从 Web 扩展中清除选择。

有信号selection-changed,但似乎没有办法清除选择。

我尝试创建一个WebKitDOMRange,但似乎无法在文档中设置这个新范围。而且它似乎没有办法获得当前范围。

如何在不使用 JavaScript 字符串的情况下从 WebKit2 Web 扩展中清除选择?

0 投票
1 回答
167 浏览

javascript - 如何在 webkit2gtk 中向 javascript 公开本机代码

我想向 javascript 公开本机对象或函数,以便在浏览器中调用特定函数时可以在 C 中使用回调函数。

这个例子中,似乎可以在 WebKitGTK1 中使用信号“ window-object-cleared ”。

我怎样才能在 WebKitGTK2 中实现相同的功能,我希望它与WebKitWebExtension 有关。但我不确定,也没有明确的指导方针或实施 WebKitWebExtension 的例子。谁能帮我解决我的要求?

0 投票
1 回答
286 浏览

c++ - 如何调试 WebKit2GTK+ 扩展

我正在尝试让 WebKit2GTK+ Extensions 工作,它是一个简单的扩展,它只会在创建页面时打印到控制台中。这是我的项目结构:

gtk_manager.cpp 文件包含头文件的实现,只有 init() 函数很重要(稍后会介绍)

webextension.cpp

运行时的导出和动态链接工作,我可以hi()从 gtk_manager.cpp 的init()方法调用。webkit_web_extension_initialize()没有显示任何工作/被调用的迹象,因为“extension hi”没有打印到控制台中。

gtk_manager.cpp(gtk/gtk.h、glib.h 和 webkit2/webkit2.h 正在包含文件夹中的 gtk_manager.h 中)

如果需要更多信息来找到解决方案,我将编辑此问题。

这些是我正在使用的资源:

0 投票
2 回答
287 浏览

c++ - WebKit2GTK+“页面创建”扩展只工作一次

这是来自How to debug WebKit2GTK+ extensions的后续问题。虽然那里有更多代码可供参考,但我对其进行了一些更改。

我有以下 webkit 扩展:

根据https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebExtension.htmlhttps://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/,这应该打印每次创建页面时都会发出一条消息。我使用扩展的实现方式与 webkit 参考文档相同,它是“initialize-web-extension”的回调。

我不知道这是否有区别,但我的 WebKitWebView 对象被打包在一个 GTKWidget 框对象中。这是我得到的输出:

即使我打开一个新文件(我有一个打开文件的文件选择对话框,这就是为什么将 WebKitWebView 打包到 GTK_BOX 中),这永远不会再次打印出来。

这是 WebKit2GTK 文档对“页面创建”处理程序所说的:

void user_function (WebKitWebExtension *extension, WebKitWebPage *web_page, gpointer user_data)

在 Web 进程中创建新的 WebKitWebPage 时会发出此信号。参数

extension:发出信号的 WebKitWebExtension

web_page:创建的 WebKitWebPage

user_data:连接信号处理程序时的用户数据集。

标志:最后运行

如果这给出了创建的网页,那么为什么我不能用 uri 获取 uri webkit_web_page_get_uri()?为什么这只为加载的第一页提供输出(尽管混乱)?

编辑:我正在使用 webkit_web_view_load_uri() 加载页面

0 投票
2 回答
246 浏览

c++ - WebKit2GTK+“窗口对象清除”未清除

这是后续行动:如何调试 WebKit2GTK+ 扩展

这是我的扩展:

唯一打印到控制台的是“为(null)创建的第 1 页”。当没有创建任何内容时,将调用创建的页面的回调,对于 winow-object-cleared 是否相同?

我不知道为什么 window_object_cleared 对象现在显示出工作迹象。

这些是我在信号上发现的:https ://webkitgtk.org/reference/webkit2gtk/stable/WebKitScriptWorld.html#WebKitScriptWorld-window-object-cleared

0 投票
0 回答
9 浏览

firefox-addon-webextensions - WebExtension 显示安全对话框

我想编写一个 web 扩展,显示一个小对话框以从用户那里获取一些敏感数据。但是,我没有什么 thieves.com 能够产生一个看起来与我将要呈现的对话完全一样的对话。

有没有办法在任何常见的浏览器中做到这一点?一种想法是将对话框放在 URL 栏中,我认为这在网页中是不可能的。但这在网页上真的是不可能的吗?是否可以使用普通的扩展程序?

另一种选择可能是用于保护窗口的 ctrl-alt-delete。让用户键入一些 javascript 无法拦截的击键。

0 投票
0 回答
33 浏览

c++ - 通过 WPE 上的 WebKit Web 扩展进行 DOM 注入

在 WPE/WebKit 中,我想在 WebPage/WebFrame 实际处理和加载 HTML之前<script>,以编程方式在加载的 HTML 资源的 DOM 中注入自定义元素。

最简单的方法是什么?WebKit2 Web Extensions API 是否提供对此类功能的支持,或者我是否必须修补 WebKit 源?任何指向相应文档和/或示例代码的指针都非常受欢迎。

PS 我已经知道 WebKit2 Web Extensions API 允许注入自定义 JavaScript 代码以响应window-object-cleared信号,但是,这不符合我的需要,因为注入的 JavaScript 执行的代码取决于有效 DOM 的存在。