Require a non-empty drag image to prevent crash

This commit is contained in:
Kevin Sawicki 2017-01-26 10:38:13 -08:00
Родитель 8ce1930f0d
Коммит e683f28e32
2 изменённых файлов: 15 добавлений и 5 удалений

Просмотреть файл

@ -1327,9 +1327,17 @@ void WebContents::StartDrag(const mate::Dictionary& item,
// Error checking.
if (icon.IsEmpty()) {
args->ThrowError("Must specify 'icon' option");
return;
}
#if defined(OS_MACOSX)
// NSWindow.dragImage requires a non-empty NSImage
if (icon->image().IsEmpty()) {
args->ThrowError("Must specify non-empty 'icon' option");
return;
}
#endif
// Start dragging.
if (!files.empty()) {

Просмотреть файл

@ -292,13 +292,15 @@ describe('webContents module', function () {
w.webContents.startDrag({icon: path.join(__dirname, 'fixtures', 'assets', 'logo.png')})
}, /Must specify either 'file' or 'files' option/)
assert.throws(() => {
w.webContents.startDrag({file: __filename})
}, /Must specify 'icon' option/)
if (process.platform === 'darwin') {
assert.throws(() => {
w.webContents.startDrag({file: __filename, icon: __filename})
}, /Must specify non-empty 'icon' option/)
assert.throws(() => {
w.webContents.startDrag({file: __filename})
}, /Must specify non-empty 'icon' option/)
}
})
})
})