Ping on enabled extension (#1183)

This commit is contained in:
Jaco 2022-12-17 14:57:14 +02:00 committed by GitHub
parent 75bf2a35ae
commit 329732d478
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 0 deletions

View File

@ -625,6 +625,9 @@ export default class Extension {
case 'pri(json.account.info)':
return this.jsonGetAccountInfo(request as KeyringPair$Json);
case 'pri(ping)':
return Promise.resolve(true);
case 'pri(seed.create)':
return this.seedCreate(request as RequestSeedCreate);

View File

@ -244,6 +244,9 @@ export default class Tabs {
case 'pub(metadata.provide)':
return this.metadataProvide(url, request as MetadataDef);
case 'pub(ping)':
return Promise.resolve(true);
case 'pub(rpc.listProviders)':
return this.rpcListProviders();

View File

@ -109,6 +109,7 @@ export interface RequestSignatures {
'pri(metadata.reject)': [RequestMetadataReject, boolean];
'pri(metadata.requests)': [RequestMetadataSubscribe, boolean, MetadataRequest[]];
'pri(metadata.list)': [null, MetadataDef[]];
'pri(ping)': [null, boolean];
'pri(seed.create)': [RequestSeedCreate, ResponseSeedCreate];
'pri(seed.validate)': [RequestSeedValidate, ResponseSeedValidate];
'pri(settings.notification)': [string, boolean];
@ -128,6 +129,7 @@ export interface RequestSignatures {
'pub(metadata.list)': [null, InjectedMetadataKnown[]];
'pub(metadata.provide)': [MetadataDef, boolean];
'pub(phishing.redirectIfDenied)': [null, boolean];
'pub(ping)': [null, boolean];
'pub(rpc.listProviders)': [void, ResponseRpcListProviders];
'pub(rpc.send)': [RequestRpcSend, JsonRpcResponse];
'pub(rpc.startProvider)': [string, ProviderMeta];

View File

@ -23,5 +23,11 @@ export default class implements Injected {
this.metadata = new Metadata(sendRequest);
this.provider = new PostMessageProvider(sendRequest);
this.signer = new Signer(sendRequest);
setInterval((): void => {
sendRequest('pub(ping)', null).catch((): void => {
console.error('Extension unavailable, ping failed');
});
}, 5_000 + Math.floor(Math.random() * 5_000));
}
}

View File

@ -243,3 +243,7 @@ export async function batchRestore (file: KeyringPairs$Json, password: string):
export async function setNotification (notification: string): Promise<boolean> {
return sendMessage('pri(settings.notification)', notification);
}
export async function ping (): Promise<boolean> {
return sendMessage('pri(ping)', null);
}