mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
4a9316317f
Removes the `Website Accessed window.web3 Shim` event from the `metamask_logWeb3ShimUsage` RPC method implementation. The method itself displays an alert to the user if a website attempts to access the `window.web3` shim, which we replaced the original, functional `window.web3` object with after said object was removed. This seems potentially useful, because we still get 5-star reviews on [the legacy web3 extension](https://addons.mozilla.org/en-US/firefox/addon/metamask-legacy-web3/). The associated metrics event, on the other hand, is useless. It is rife with false positives, and doesn't tell us anything that we can't learn from download data for the legacy web3 extension. It's time to get rid of it.
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
import { MESSAGE_TYPE } from '../../../../../shared/constants/app';
|
|
|
|
/**
|
|
* This RPC method is called by the inpage provider whenever it detects the
|
|
* accessing of a non-existent property on our window.web3 shim. We use this
|
|
* to alert the user that they are using a legacy dapp, and will have to take
|
|
* further steps to be able to use it.
|
|
*/
|
|
const logWeb3ShimUsage = {
|
|
methodNames: [MESSAGE_TYPE.LOG_WEB3_SHIM_USAGE],
|
|
implementation: logWeb3ShimUsageHandler,
|
|
hookNames: {
|
|
getWeb3ShimUsageState: true,
|
|
setWeb3ShimUsageRecorded: true,
|
|
},
|
|
};
|
|
export default logWeb3ShimUsage;
|
|
|
|
/**
|
|
* @typedef {object} LogWeb3ShimUsageOptions
|
|
* @property {Function} getWeb3ShimUsageState - A function that gets web3 shim
|
|
* usage state for the given origin.
|
|
* @property {Function} setWeb3ShimUsageRecorded - A function that records web3 shim
|
|
* usage for a particular origin.
|
|
*/
|
|
|
|
/**
|
|
* @param {import('json-rpc-engine').JsonRpcRequest<unknown>} req - The JSON-RPC request object.
|
|
* @param {import('json-rpc-engine').JsonRpcResponse<true>} res - The JSON-RPC response object.
|
|
* @param {Function} _next - The json-rpc-engine 'next' callback.
|
|
* @param {Function} end - The json-rpc-engine 'end' callback.
|
|
* @param {LogWeb3ShimUsageOptions} options
|
|
*/
|
|
function logWeb3ShimUsageHandler(
|
|
req,
|
|
res,
|
|
_next,
|
|
end,
|
|
{ getWeb3ShimUsageState, setWeb3ShimUsageRecorded },
|
|
) {
|
|
const { origin } = req;
|
|
if (getWeb3ShimUsageState(origin) === undefined) {
|
|
setWeb3ShimUsageRecorded(origin);
|
|
}
|
|
|
|
res.result = true;
|
|
return end();
|
|
}
|