Show challenge when requested by server
This commit is contained in:
parent
03c68da17d
commit
986d8a66bc
42 changed files with 1986 additions and 128 deletions
22
main.js
22
main.js
|
@ -108,8 +108,10 @@ const OS = require('./ts/OS');
|
|||
const { isBeta } = require('./ts/util/version');
|
||||
const {
|
||||
isSgnlHref,
|
||||
isCaptchaHref,
|
||||
isSignalHttpsLink,
|
||||
parseSgnlHref,
|
||||
parseCaptchaHref,
|
||||
parseSignalHttpsLink,
|
||||
} = require('./ts/util/sgnlHref');
|
||||
const {
|
||||
|
@ -120,8 +122,10 @@ const {
|
|||
TitleBarVisibility,
|
||||
} = require('./ts/types/Settings');
|
||||
const { Environment } = require('./ts/environment');
|
||||
const { ChallengeMainHandler } = require('./ts/main/challengeMain');
|
||||
|
||||
const sql = new MainSQL();
|
||||
const challengeHandler = new ChallengeMainHandler();
|
||||
|
||||
let sqlInitTimeStart = 0;
|
||||
let sqlInitTimeEnd = 0;
|
||||
|
@ -193,6 +197,12 @@ if (!process.mas) {
|
|||
|
||||
showWindow();
|
||||
}
|
||||
const incomingCaptchaHref = getIncomingCaptchaHref(argv);
|
||||
if (incomingCaptchaHref) {
|
||||
const { captcha } = parseCaptchaHref(incomingCaptchaHref, logger);
|
||||
challengeHandler.handleCaptcha(captcha);
|
||||
return true;
|
||||
}
|
||||
// Are they trying to open a sgnl:// href?
|
||||
const incomingHref = getIncomingHref(argv);
|
||||
if (incomingHref) {
|
||||
|
@ -1391,11 +1401,19 @@ app.on('web-contents-created', (createEvent, contents) => {
|
|||
});
|
||||
|
||||
app.setAsDefaultProtocolClient('sgnl');
|
||||
app.setAsDefaultProtocolClient('signalcaptcha');
|
||||
app.on('will-finish-launching', () => {
|
||||
// open-url must be set from within will-finish-launching for macOS
|
||||
// https://stackoverflow.com/a/43949291
|
||||
app.on('open-url', (event, incomingHref) => {
|
||||
event.preventDefault();
|
||||
|
||||
if (isCaptchaHref(incomingHref, logger)) {
|
||||
const { captcha } = parseCaptchaHref(incomingHref, logger);
|
||||
challengeHandler.handleCaptcha(captcha);
|
||||
return;
|
||||
}
|
||||
|
||||
handleSgnlHref(incomingHref);
|
||||
});
|
||||
});
|
||||
|
@ -1656,6 +1674,10 @@ function getIncomingHref(argv) {
|
|||
return argv.find(arg => isSgnlHref(arg, logger));
|
||||
}
|
||||
|
||||
function getIncomingCaptchaHref(argv) {
|
||||
return argv.find(arg => isCaptchaHref(arg, logger));
|
||||
}
|
||||
|
||||
function handleSgnlHref(incomingHref) {
|
||||
let command;
|
||||
let args;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue