mirror of
https://github.com/Llewellynvdm/nativefier.git
synced 2024-06-02 04:40:48 +00:00
8e8cd24e0d
Fixes #978 Adds a `--block-external-urls` option (default: `false`) that prevents opening external links (as classified by the `--internal-urls` option). Documentation and tests updated. Example: ``` nativefier --internal-urls "classroom\.google\.com" --block-external-urls ``` ![image](https://user-images.githubusercontent.com/12286274/88739501-f12d5180-d0f7-11ea-9821-86f3e9bfa070.png) ![image](https://user-images.githubusercontent.com/12286274/88739512-fab6b980-d0f7-11ea-877c-7bd565352a93.png)
36 lines
960 B
TypeScript
36 lines
960 B
TypeScript
import { linkIsInternal } from '../helpers/helpers';
|
|
|
|
export function onNewWindowHelper(
|
|
urlToGo: string,
|
|
disposition,
|
|
targetUrl: string,
|
|
internalUrls,
|
|
preventDefault,
|
|
openExternal,
|
|
createAboutBlankWindow,
|
|
nativeTabsSupported,
|
|
createNewTab,
|
|
blockExternal: boolean,
|
|
onBlockedExternalUrl: (url: string) => void,
|
|
): void {
|
|
if (!linkIsInternal(targetUrl, urlToGo, internalUrls)) {
|
|
preventDefault();
|
|
if (blockExternal) {
|
|
onBlockedExternalUrl(urlToGo);
|
|
} else {
|
|
openExternal(urlToGo);
|
|
}
|
|
} else if (urlToGo === 'about:blank') {
|
|
const newWindow = createAboutBlankWindow();
|
|
preventDefault(newWindow);
|
|
} else if (nativeTabsSupported()) {
|
|
if (disposition === 'background-tab') {
|
|
const newTab = createNewTab(urlToGo, false);
|
|
preventDefault(newTab);
|
|
} else if (disposition === 'foreground-tab') {
|
|
const newTab = createNewTab(urlToGo, true);
|
|
preventDefault(newTab);
|
|
}
|
|
}
|
|
}
|