1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-27 04:46:10 +01:00
metamask-extension/app/scripts/lib/createOnboardingMiddleware.js
Dan J Miller 1d2c57a2f3
Assign tabId to middleware request, if provided (#7695)
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`.
2020-02-20 18:39:00 -04:00

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