🐛 fix: job index rebuild after restore, drop-target visibility, XSS
- Rebuild _jobIndexById after restoring queue from config on startup (prevented progress updates from finding restored jobs) - Show and focus mainWindow when files are dropped on floating drop-target while window is minimized/hidden - Escape status text in queue table HTML to prevent XSS from unexpected status values Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b5a853b8d4
commit
f6c9979ac5
4
main.js
4
main.js
@ -1259,6 +1259,10 @@ ipcMain.handle('hide-drop-target', () => {
|
|||||||
|
|
||||||
ipcMain.on('drop-target:files', (_event, paths) => {
|
ipcMain.on('drop-target:files', (_event, paths) => {
|
||||||
if (mainWindow && !mainWindow.isDestroyed()) {
|
if (mainWindow && !mainWindow.isDestroyed()) {
|
||||||
|
if (!mainWindow.isVisible() || mainWindow.isMinimized()) {
|
||||||
|
mainWindow.show();
|
||||||
|
mainWindow.focus();
|
||||||
|
}
|
||||||
mainWindow.webContents.send('drop-target:files', paths);
|
mainWindow.webContents.send('drop-target:files', paths);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -408,6 +408,7 @@ function restoreQueueStateFromConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
queueJobs = Array.from(seen.values());
|
queueJobs = Array.from(seen.values());
|
||||||
|
rebuildJobIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildPersistedQueueState() {
|
function buildPersistedQueueState() {
|
||||||
@ -750,7 +751,7 @@ function buildRowHtml(job) {
|
|||||||
<td class="col-filename" title="${escapeAttr(job.fileName)}">${escapeHtml(job.fileName)}</td>
|
<td class="col-filename" title="${escapeAttr(job.fileName)}">${escapeHtml(job.fileName)}</td>
|
||||||
<td class="col-size">${uploadedSize}</td>
|
<td class="col-size">${uploadedSize}</td>
|
||||||
<td class="col-host">${escapeHtml(job.hoster)}</td>
|
<td class="col-host">${escapeHtml(job.hoster)}</td>
|
||||||
<td class="col-status"><span class="status-badge ${statusClass}">${statusText}</span></td>
|
<td class="col-status"><span class="status-badge ${statusClass}">${escapeHtml(statusText)}</span></td>
|
||||||
<td class="col-elapsed">${elapsed}</td>
|
<td class="col-elapsed">${elapsed}</td>
|
||||||
<td class="col-remaining">${remaining}</td>
|
<td class="col-remaining">${remaining}</td>
|
||||||
<td class="col-speed">${speed}</td>
|
<td class="col-speed">${speed}</td>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user