fix: crash on invalid select-serial-port callback (#28602)
This commit is contained in:
parent
6bd13cc98f
commit
2e9ed50bb0
2 changed files with 15 additions and 3 deletions
|
@ -124,9 +124,13 @@ void SerialChooserController::OnDeviceChosen(const std::string& port_id) {
|
||||||
std::find_if(ports_.begin(), ports_.end(), [&port_id](const auto& ptr) {
|
std::find_if(ports_.begin(), ports_.end(), [&port_id](const auto& ptr) {
|
||||||
return ptr->token.ToString() == port_id;
|
return ptr->token.ToString() == port_id;
|
||||||
});
|
});
|
||||||
chooser_context_->GrantPortPermission(requesting_origin_, embedding_origin_,
|
if (it != ports_.end()) {
|
||||||
*it->get());
|
chooser_context_->GrantPortPermission(requesting_origin_,
|
||||||
|
embedding_origin_, *it->get());
|
||||||
RunCallback(it->Clone());
|
RunCallback(it->Clone());
|
||||||
|
} else {
|
||||||
|
RunCallback(/*port=*/nullptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1586,6 +1586,14 @@ describe('navigator.serial', () => {
|
||||||
expect(port).to.equal('NotFoundError: No port selected by the user.');
|
expect(port).to.equal('NotFoundError: No port selected by the user.');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not crash when select-serial-port is called with an invalid port', async () => {
|
||||||
|
w.webContents.session.on('select-serial-port', (event, portList, webContents, callback) => {
|
||||||
|
callback('i-do-not-exist');
|
||||||
|
});
|
||||||
|
const port = await getPorts();
|
||||||
|
expect(port).to.equal('NotFoundError: No port selected by the user.');
|
||||||
|
});
|
||||||
|
|
||||||
it('returns a port when select-serial-port event is defined', async () => {
|
it('returns a port when select-serial-port event is defined', async () => {
|
||||||
w.webContents.session.on('select-serial-port', (event, portList, webContents, callback) => {
|
w.webContents.session.on('select-serial-port', (event, portList, webContents, callback) => {
|
||||||
callback(portList[0].portId);
|
callback(portList[0].portId);
|
||||||
|
|
Loading…
Add table
Reference in a new issue