Adjust extension ports (#1134)
* Adjust extension ports
* Also use ENV, if supplied
* Add env as part of tests
* Explicit override for polkadot{.js} storage
* test prefix
* Ensure backwards compat for non-configured
* Re-add throw Error
* PORT_PREFIX test
This commit is contained in:
parent
884c89bdda
commit
f9a15514a2
@ -1,5 +1,12 @@
|
||||
# CHANGELOG
|
||||
|
||||
## master
|
||||
|
||||
Changes:
|
||||
|
||||
- Ensure that `EXTENSION_PREFIX` is always set as part of `@polkadot/extension-base`
|
||||
|
||||
|
||||
## 0.44.6 Aug 21, 2022
|
||||
|
||||
- **Important** Not published to the stores, aligns with latest released packages.
|
||||
|
||||
@ -32,8 +32,8 @@
|
||||
"lint": "polkadot-dev-run-lint",
|
||||
"postinstall": "polkadot-dev-yarn-only",
|
||||
"start": "yarn watch",
|
||||
"test": "polkadot-dev-run-test --detectOpenHandles",
|
||||
"test:one": "polkadot-dev-run-test --detectOpenHandles",
|
||||
"test": "EXTENSION_PREFIX='test' polkadot-dev-run-test --detectOpenHandles",
|
||||
"test:one": "EXTENSION_PREFIX='test' polkadot-dev-run-test --detectOpenHandles",
|
||||
"watch": "cd packages/extension && yarn polkadot-exec-webpack --config webpack.watch.cjs --mode development --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@ -1,16 +1,26 @@
|
||||
// Copyright 2019-2022 @polkadot/extension-base authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// this _must_ be changed for each extension
|
||||
const EXTENSION_PREFIX = process.env.EXTENSION_PREFIX || '';
|
||||
|
||||
if (!EXTENSION_PREFIX && !process.env.PORT_PREFIX) {
|
||||
throw new Error('CRITICAL: The extension does not define an own EXTENSION_PREFIX environment variable as part of the build, this is required to ensure that messages are not shared between extensions. Failure to do so will yield messages sent to multiple extensions.');
|
||||
}
|
||||
|
||||
const PORT_PREFIX = `${EXTENSION_PREFIX || 'unknown'}-${process.env.PORT_PREFIX || 'unknown'}`;
|
||||
const PORT_CONTENT = `${PORT_PREFIX}-content`;
|
||||
const PORT_EXTENSION = `${PORT_PREFIX}-extension`;
|
||||
const MESSAGE_ORIGIN_PAGE = `${PORT_PREFIX}-page`;
|
||||
const MESSAGE_ORIGIN_CONTENT = `${PORT_PREFIX}-content`;
|
||||
|
||||
const ALLOWED_PATH = ['/', '/account/import-ledger', '/account/restore-json'] as const;
|
||||
const PHISHING_PAGE_REDIRECT = '/phishing-page-detected';
|
||||
const EXTENSION_PREFIX = process.env.EXTENSION_PREFIX as string || '';
|
||||
const PORT_CONTENT = `${EXTENSION_PREFIX}content`;
|
||||
const PORT_EXTENSION = `${EXTENSION_PREFIX}extension`;
|
||||
const MESSAGE_ORIGIN_PAGE = `${EXTENSION_PREFIX}page`;
|
||||
const MESSAGE_ORIGIN_CONTENT = `${EXTENSION_PREFIX}content`;
|
||||
const PASSWORD_EXPIRY_MIN = 15;
|
||||
const PASSWORD_EXPIRY_MS = PASSWORD_EXPIRY_MIN * 60 * 1000;
|
||||
|
||||
// console.log(`Extension is sending and receiving messages on ${PORT_PREFIX}-*`);
|
||||
|
||||
export {
|
||||
ALLOWED_PATH,
|
||||
PASSWORD_EXPIRY_MIN,
|
||||
|
||||
@ -8,7 +8,11 @@ import BaseStore from './Base';
|
||||
|
||||
export default class AccountsStore extends BaseStore<KeyringJson> implements KeyringStore {
|
||||
constructor () {
|
||||
super(EXTENSION_PREFIX ? `${EXTENSION_PREFIX}accounts` : null);
|
||||
super(
|
||||
EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
|
||||
? `${EXTENSION_PREFIX}accounts`
|
||||
: null
|
||||
);
|
||||
}
|
||||
|
||||
public override set (key: string, value: KeyringJson, update?: () => void): void {
|
||||
|
||||
@ -8,6 +8,10 @@ import BaseStore from './Base';
|
||||
|
||||
export default class MetadataStore extends BaseStore<MetadataDef> {
|
||||
constructor () {
|
||||
super(`${EXTENSION_PREFIX}metadata`);
|
||||
super(
|
||||
EXTENSION_PREFIX && EXTENSION_PREFIX !== 'polkadot{.js}'
|
||||
? `${EXTENSION_PREFIX}metadata`
|
||||
: 'metadata'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,13 +3,16 @@
|
||||
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
|
||||
const CopyPlugin = require('copy-webpack-plugin');
|
||||
const ManifestPlugin = require('webpack-extension-manifest-plugin');
|
||||
|
||||
const { blake2AsHex } = require('@polkadot/util-crypto');
|
||||
|
||||
const pkgJson = require('./package.json');
|
||||
const manifest = require('./manifest.json');
|
||||
|
||||
const EXT_NAME = manifest.short_name;
|
||||
|
||||
const packages = [
|
||||
'extension',
|
||||
'extension-base',
|
||||
@ -70,7 +73,9 @@ module.exports = (entry, alias = {}) => ({
|
||||
}),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env': {
|
||||
NODE_ENV: JSON.stringify('production')
|
||||
EXTENSION_PREFIX: JSON.stringify(process.env.EXTENSION_PREFIX || EXT_NAME),
|
||||
NODE_ENV: JSON.stringify('production'),
|
||||
PORT_PREFIX: JSON.stringify(blake2AsHex(JSON.stringify(manifest), 64))
|
||||
}
|
||||
}),
|
||||
new CopyPlugin({ patterns: [{ from: 'public' }] }),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user