mirror of
https://github.com/electron/electron.git
synced 2026-01-06 22:24:03 -05:00
fix: unexpected openExternal dialog on macOS Tahoe (#48502)
fix: unexpected openExternal dialog on macOS Tahoe
This commit is contained in:
@@ -148,6 +148,12 @@ void OpenExternal(const GURL& url,
|
||||
return;
|
||||
}
|
||||
|
||||
// Check this to prevent system dialog from popping up on macOS Tahoe.
|
||||
if (![[NSWorkspace sharedWorkspace] URLForApplicationToOpenURL:ns_url]) {
|
||||
std::move(callback).Run("No application found to open URL");
|
||||
return;
|
||||
}
|
||||
|
||||
NSWorkspaceOpenConfiguration* configuration =
|
||||
[NSWorkspaceOpenConfiguration configuration];
|
||||
configuration.activates = options.activate;
|
||||
|
||||
@@ -82,6 +82,11 @@ describe('shell module', () => {
|
||||
]);
|
||||
});
|
||||
|
||||
ifit(process.platform === 'darwin')('throws when there is no application registered to open the URL', async () => {
|
||||
const url = `unknownscheme-${Date.now()}://test`;
|
||||
await expect(shell.openExternal(url)).to.eventually.be.rejectedWith(/No application found to open URL/);
|
||||
});
|
||||
|
||||
it('opens an external link in the renderer', async () => {
|
||||
const { url, requestReceived } = await urlOpened();
|
||||
const w = new BrowserWindow({ show: false, webPreferences: { sandbox: false, contextIsolation: false, nodeIntegration: true } });
|
||||
|
||||
Reference in New Issue
Block a user