fix: second argument to shell.writeShortcutLink is optional (#49502)

fix: second argument to shell.writeShortcutLink is optional

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot]
2026-01-23 14:31:09 -05:00
committed by GitHub
parent 06fdee87b3
commit 71579e4749
2 changed files with 24 additions and 5 deletions

View File

@@ -111,11 +111,20 @@ bool WriteShortcutLink(const base::FilePath& shortcut_path,
gin_helper::Arguments* args) {
base::win::ShortcutOperation operation =
base::win::ShortcutOperation::kCreateAlways;
args->GetNext(&operation);
auto options = gin::Dictionary::CreateEmpty(args->isolate());
if (!args->GetNext(&options)) {
args->ThrowError();
return false;
gin::Dictionary options = gin::Dictionary::CreateEmpty(args->isolate());
v8::Local<v8::Value> peek = args->PeekNext();
if (peek->IsObject()) {
if (!args->GetNext(&options)) {
args->ThrowError();
return false;
}
} else {
args->GetNext(&operation);
if (!args->GetNext(&options)) {
args->ThrowError();
return false;
}
}
base::win::ShortcutProperties properties;

View File

@@ -172,6 +172,16 @@ describe('shell module', () => {
expect(fs.existsSync(tmpShortcut)).to.be.true();
});
it('writes the shortcut with omitted operation (defaults to create)', () => {
expect(shell.writeShortcutLink(tmpShortcut, shortcutOptions)).to.be.true();
expect(fs.existsSync(tmpShortcut)).to.be.true();
expect(shell.readShortcutLink(tmpShortcut)).to.deep.equal(shortcutOptions);
const newOptions = { ...shortcutOptions, description: 'new description' };
expect(shell.writeShortcutLink(tmpShortcut, newOptions)).to.be.true();
expect(shell.readShortcutLink(tmpShortcut)).to.deep.equal(newOptions);
});
it('correctly sets the fields', () => {
expect(shell.writeShortcutLink(tmpShortcut, shortcutOptions)).to.be.true();
expect(shell.readShortcutLink(tmpShortcut)).to.deep.equal(shortcutOptions);