electron [Bug]: 尝试保存文档时崩溃

fkvaft9z  于 5个月前  发布在  Electron
关注(0)|答案(4)|浏览(65)

预检清单

Electron 版本

31.2.0

您正在使用的操作系统是什么?

Windows

您正在使用的操作系统版本是什么?

10.0.19042

您正在使用的架构是什么?

x64

最后已知正常工作的 Electron 版本

  • 无响应*

预期行为

无崩溃

实际行为

根据崩溃转储,似乎应用程序在文件保存对话框应该显示的时候崩溃了。

ttvkxqim

ttvkxqim1#

你好,@t57ser。感谢你报告这个问题并帮助让Electron变得更好!

是否有可能为你制作一个独立的测试用例,只包含重现问题的必要代码?例如,Electron Fiddle 是一个制作小型测试用例的很好工具,它可以轻松地将你的测试用例发布到一个gist 上,Electron维护者可以使用它。

独立的测试用例可以让修复问题更加顺利:它确保每个人都在关注同一个问题,它从方程中删除了所有不必要的变量,而且它还可以为自动化回归测试提供基础。

现在为了这个原因添加了blocked/need-repro 需要一个测试用例来重现bug标签。在你制作了一个测试用例后,请在后续评论中链接到它。如果上述内容没有得到解决,这个问题将在10天内关闭。

iq3niunx

iq3niunx2#

@t57ser 这是一个有趣的崩溃,谢谢你提供的崩溃转储!但我很难重现这个问题;你有简单的小工具可以让我用来触发这个问题吗?

9fkzdhlc

9fkzdhlc3#

@ckerr ,我还没有能够创建一个小示例。我也还没有能够重现这个问题,这似乎与时间有关。
根据我所猜测的(基于应用程序的代码),当关闭一个即将下载内容的窗口时会发生这种情况。
报告中提到的情况是这样的:

  • 用户点击下载链接
  • 链接打开一个指向下载的新窗口
  • 窗口被关闭(因为它是空的,只是为了下载而打开)
  • 保存弹出窗口应该出现,但实际上它崩溃了

到目前为止,我只能看到(通过调整某些时间)在某种情况下不会弹出弹出窗口,但它也不会崩溃。

kiz8lqtg

kiz8lqtg4#

类似于这样:

const {app, BrowserWindow} = require('electron')
let mainWindow
function createWindow () {
	const mainWindow1 = new BrowserWindow({
		x: 0,
		y: 0,
		width: 1000,
		height: 600,
		show: true,
	});

	mainWindow1.loadURL('https://github.com/electron/electron/releases?page=1').then(() => {
		//mainWindow1.webContents.openDevTools();
		mainWindow1.show();
	});

	mainWindow1.webContents.setWindowOpenHandler((details) => {
		return {
			action: "allow",
		};
	});
	mainWindow1.webContents.on("did-create-window", (browserWindow, details) => {
		console.log("did create window");
		setTimeout(() => {
			browserWindow.close();
		}, 500)
	});
}

app.on('ready', createWindow)
app.on('window-all-closed', function () {
	if (process.platform !== 'darwin') {
		app.quit()
	}
})
app.on('activate', function () {
	if (mainWindow === null) {
		createWindow()
	}
})

但我仍然无法重现崩溃,我能看到的只是在关闭窗口过早时,没有弹出窗口出现。
可能在下载完成之前关闭。
我认为崩溃发生在下载完成的确切时刻或某种与时间相关的事物。

相关问题