mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
1d2c57a2f3
The `tabId` of the message sender is now added to the middleware request object. This step is omitted if the `tabId` is not provided. This is done early in the middleware stack, so the `tabId` should be available for any subsequent middleware to use. The Onboarding Middleware has also been modified to get the `tabId` from the request object, rather than expecting it as a parameter upon creation. This refactor will enable further uses of the `tabId`.
30 lines
937 B
JavaScript
30 lines
937 B
JavaScript
import log from 'loglevel'
|
|
import extension from 'extensionizer'
|
|
|
|
/**
|
|
* Returns a middleware that intercepts `wallet_registerOnboarding` messages
|
|
* @param {{ location: string, registerOnboarding: Function }} opts - The middleware options
|
|
* @returns {(req: any, res: any, next: Function, end: Function) => void}
|
|
*/
|
|
function createOnboardingMiddleware ({ location, registerOnboarding }) {
|
|
return async function originMiddleware (req, res, next, end) {
|
|
try {
|
|
if (req.method !== 'wallet_registerOnboarding') {
|
|
next()
|
|
return
|
|
}
|
|
if (req.tabId && req.tabId !== extension.tabs.TAB_ID_NONE) {
|
|
await registerOnboarding(location, req.tabId)
|
|
} else {
|
|
log.debug(`'wallet_registerOnboarding' message from ${location} ignored due to missing tabId`)
|
|
}
|
|
res.result = true
|
|
end()
|
|
} catch (error) {
|
|
end(error)
|
|
}
|
|
}
|
|
}
|
|
|
|
export default createOnboardingMiddleware
|