问题标签 [webkitgtk]

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 投票
0 回答
28 浏览

c++ - 未找到 WebKitWebFrame

我正在使用 WebKitGtk2 开发一个 Web 应用程序,我需要将“window-object-cleared”信号与 WebKitWebFrame 一起使用。当我编译它时,我得到了一个错误:

main.cc:11:1: error: ‘WebKitFrame’ does not name a type

编译:

c++ main.cc -w `pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0` -o m

对此进行了检查并尝试使用 WebKitFrame 代替,但同样的事情发生了。

这是我的代码

回调函数

我是 webkitgtk 的新手。

0 投票
1 回答
41 浏览

macos - WebKitWebProcess 制作新的停靠图标

在 macOS 上运行 WebKitGTK+ 应用程序时,WebKitWebProcess 的每个实例都会创建一个新的停靠图标。有没有办法禁用/修复这种行为?

使用 lsuielement ( https://developer.apple.com/documentation/bundleresources/information_property_list/lsuielement ) 的建议没有奏效。似乎 WebKit 本身和/或 GTK 正在强制每个 WebView 小部件在 Dock 中具有一个新的应用程序图标。

0 投票
0 回答
187 浏览

c++ - 从 linux 到 windows 交叉编译 Webkit2gtk

你好早上/下午/晚上,我已经开始开发一个需要 WebView 的应用程序,我不久前发现了 webkitgtk,我相信这是最好的方法,因为它已经长期支持 linux 和 MacOS,但是虽然用mingw for windows编译应用程序我发现了一个问题。我还没有找到适用于 windows 的 webkitgtk lib 的 dll,我已经有适用于 linux 的 .so 和适用于 mac 的类似文件,但 windows dll 似乎不存在。然后我对自己说“我有一个交叉编译器,它只是编译 Webkitgtk 的源代码”。这就是问题所在。我不知道如何

0 投票
1 回答
41 浏览

authentication - 如何使用 webkitgtk 显示 javascript 对话框,如 NTLM 对话框

我正在使用 webkitgtk 容器来显示网页。但是有些页面需要身份验证并显示 javascript 对话框进行身份验证。如何在 webkitgtk 中处理它?我尝试将属性 allow-modal-dialogs 设置为 true 并将 javascript-can-open-windows-automatically 设置为 true

0 投票
1 回答
435 浏览

python - 如何修复拒绝在框架中显示 url,因为它在 webkitgtk python 中将 x 框架选项设置为拒绝

我用 Python、Gtk 和 WebKitGtk 构建了一个简单的 Web 浏览器。尝试加载 youtube 时,我收到此错误消息:

控制台消息:about:blank @0: Refused to display 'https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26feature %3Dpassive%26hl%3Den%26next%3D%252Fsignin_passive&hl=en&passive=true&service=youtube&uilel=3' 在一个框架中,因为它将“X-Frame-Options”设置为“DENY”。

我的代码(来自 webkitgtk 的教程):

我该如何解决这个问题?YouTube 可以在其他网络浏览器上正常加载。

0 投票
1 回答
311 浏览

c++ - C++ Webkit GTK,如何禁用跨源策略?

我正在尝试使用“file://”域页面在 iframe中加载http://google.com 。当然,我收到“Google.com 不允许”错误。我已经尝试过反向代理,但我认为反向代理没有意义。

在那之后,我研究了几个小时关于禁用或绕过 webkit gtk 中的“跨源策略”。

我在本手册页中尝试了一些解决方案,https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html

所以,我试图在 WebKitSettings 中添加这个块

但它不起作用。我仍然无法在 iframe 中连接到 google.com(或任何受 cors 保护的网站)。

根据我最近的研究,Webkit GTK 手册对此有一些小技巧。它被称为财产

(允许文件访问来自文件 urls)

但我不知道如何实现我的代码。

编辑:

我在我的代码中添加了这一行

现在我也收到“在框架中拒绝连接,因为它将 X-Frame-Options 设置为 SAMEORIGIN”错误。我如何在 webkitgtk 中为跨源设置它?

0 投票
1 回答
214 浏览

c++ - 未完成的 WEBKITGTK 构建

我在 fedora32 机器上运行 buildroot。

我启用了 webkitgtk 包。源代码的下载和配置运行没有错误

但是,在构建过程中,make 会抛出错误并崩溃。

我对 linux 和 GTK 还很陌生,很高兴能得到一些关于问题所在的指针。

下面是构建失败之前终端上输出的摘录

0 投票
1 回答
382 浏览

c - WebkitGtk 应用程序未加载文件 URL

我正在树莓派 4 上使用 webkitgtk 构建信息亭应用程序。

此应用程序不会连接到 Internet,并且 UI 的所有 html、css、javascript 都位于本地文件系统上。

我正在使用 buildroot 设置 Linux 系统,从 buildroot 中提供的 pi 4 defconfig 开始。

我已经启用了运行 webkitgtk 所需的所有软件包。

此外,kiosk 应用程序已在我的桌面上使用相同的软件堆栈进行了测试,并且可以正常工作

但是,当我尝试在树莓派上启动应用程序时,会弹出一个空白页面。我通过启用本地文件访问来玩弄WebKitWebSettings与我关联的对象。WebKitWebView它仍然显示一个空白屏幕。

我的 pi4 应用程序包中还包含一个简单的 gtk3+ 应用程序。这样启动成功!

我真的很感激一些关于为什么会发生这种情况的指示,因为我已经走到了死胡同

更新

我启用了 Webkitgtk 软件包附带的 MiniBrowser 应用程序。输入本地url,页面不加载。它只在顶部给我一条消息,说“下载成功”。它似乎将我的输入视为下载

更新 2

经过一些更多的实验,我终于能够让 webkitgtk 在 pi 4 上工作。问题似乎源于使用webkit_web_view_load_uri()api。

它似乎无法将我的 html 文档识别为网页。

我使用webkit_web_view_load_html()电话解决了它。这包括一些技巧,首先将 html 文档的内容读入字符缓冲区,然后将其传递给webkit_web_view_load_html(). 您还必须提供此函数调用的基本路径,以便能够解析 html 文档中的所有 url(脚本、css、图像等)。

我无法解决的另一个问题是,SVG 图像没有加载到 webkitgtk 中。我使用了 jpg 格式,它们可以工作。我怀疑这是由于构建 webkigtk 时的配置切换

0 投票
0 回答
33 浏览

webkit - 从源代码安装后如何卸载 webkitgtk?

我刚刚按照https://trac.webkit.org/wiki/BuildingGtkwebkitgtk-2.32.0的说明从源代码安装。现在我想卸载它。我试过了,但似乎没有目标。有什么办法吗?ninja uninstalluninstall

0 投票
0 回答
66 浏览

webkit - 如何在 WebKit2Gtk 中实现内容阻止

我正在尝试将使用 Chromium 引擎的网络浏览器移植到 webkit2gtk。

在表单中嵌入webview非常容易,但现在我想添加(端口)代码来阻止内容。我连接到以下信号:

并且它们都可以工作,但是我找不到阻止或取消加载(即过滤)给定资源的方法。我希望如果需要,可以驱动“资源加载启动”信号来取消请求,但事实并非如此。仔细阅读文档,我看不出我需要什么。

我知道 webkit 有一个机制(记录在这里),但我觉得它太“内部”了:所有发生的事情都是隐藏的,没有统计数据。例如,我想知道规则何时被击中。

那么,除了上面的方法之外,还有什么方法可以知道正在加载哪些 URL 并在需要时取消它们?

--- 更新 --- 我想我找到了一些完美的东西。本文档描述了“发送请求”信号,该信号“......可用于修改请求......也可以取消资源加载操作”

问题再次是,使用它似乎令人费解且不舒服,因为信号属于 WebKitWebPage 对象,该对象只能通过 WebKitWebExtension 获得,而 WebKitWebExtension 又只能通过告诉 webkit 加载外部扩展来创建,所以它使应用程序和扩展程序相互交谈会有问题。如果只有一个功能可以直接从 WebkitWebView 获取 WebkitWebPage ......但我没有看到它。