@onekeyfe/extension-bridge-hosted 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/JsBridgeExtUi.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ declare class JsBridgeExtUi extends JsBridgeBase {
|
|
|
10
10
|
sendAsString: boolean;
|
|
11
11
|
private portToBg;
|
|
12
12
|
sendPayload(payload: IJsBridgeMessagePayload | string): void;
|
|
13
|
+
_getOriginFromPort(port: chrome.runtime.Port): string;
|
|
13
14
|
setupMessagePortConnect(config: IJsBridgeExtUiConfig): void;
|
|
14
15
|
}
|
|
15
16
|
export { JsBridgeExtUi };
|
package/dist/JsBridgeExtUi.js
CHANGED
|
@@ -14,13 +14,23 @@ class JsBridgeExtUi extends JsBridgeBase {
|
|
|
14
14
|
this.portToBg.postMessage(payload);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
_getOriginFromPort(port) {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
// chrome
|
|
20
|
+
let origin = ((_a = port === null || port === void 0 ? void 0 : port.sender) === null || _a === void 0 ? void 0 : _a.origin) || '';
|
|
21
|
+
// firefox
|
|
22
|
+
if (!origin && ((_b = port === null || port === void 0 ? void 0 : port.sender) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
23
|
+
const uri = new URL((_c = port === null || port === void 0 ? void 0 : port.sender) === null || _c === void 0 ? void 0 : _c.url);
|
|
24
|
+
origin = (uri === null || uri === void 0 ? void 0 : uri.origin) || '';
|
|
25
|
+
}
|
|
26
|
+
return origin;
|
|
27
|
+
}
|
|
17
28
|
setupMessagePortConnect(config) {
|
|
18
29
|
messagePort.connect({
|
|
19
30
|
name: EXT_PORT_UI_TO_BG,
|
|
20
31
|
// #### background -> ui
|
|
21
32
|
onMessage: (payload, port0) => {
|
|
22
|
-
|
|
23
|
-
let origin = ((_a = port0.sender) === null || _a === void 0 ? void 0 : _a.origin) || '';
|
|
33
|
+
let origin = this._getOriginFromPort(port0) || '';
|
|
24
34
|
// in ext ui, port.sender?.origin is always empty,
|
|
25
35
|
// so we trust remote (background) origin
|
|
26
36
|
origin = origin || payload.origin || '';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { consts, isLegacyExtMessage,
|
|
1
|
+
import { consts, isLegacyExtMessage, appDebugLogger, injectedFactory, } from '@onekeyfe/cross-inpage-provider-core';
|
|
2
2
|
import messagePort from '../extensionMessagePort';
|
|
3
3
|
const { EXT_PORT_CS_TO_BG, JS_BRIDGE_MESSAGE_DIRECTION, JS_BRIDGE_MESSAGE_EXT_CHANNEL } = consts;
|
|
4
4
|
// TODO one-time only
|
|
@@ -17,7 +17,7 @@ function inject(filename) {
|
|
|
17
17
|
}
|
|
18
18
|
// TODO one-time only
|
|
19
19
|
function setupMessagePort(options = {}) {
|
|
20
|
-
const debugLogger = options.debugLogger ||
|
|
20
|
+
const debugLogger = options.debugLogger || appDebugLogger;
|
|
21
21
|
messagePort.connect({
|
|
22
22
|
name: EXT_PORT_CS_TO_BG,
|
|
23
23
|
// #### background -> content-script
|
|
@@ -20,13 +20,23 @@ class JsBridgeExtUi extends cross_inpage_provider_core_1.JsBridgeBase {
|
|
|
20
20
|
this.portToBg.postMessage(payload);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
_getOriginFromPort(port) {
|
|
24
|
+
var _a, _b, _c;
|
|
25
|
+
// chrome
|
|
26
|
+
let origin = ((_a = port === null || port === void 0 ? void 0 : port.sender) === null || _a === void 0 ? void 0 : _a.origin) || '';
|
|
27
|
+
// firefox
|
|
28
|
+
if (!origin && ((_b = port === null || port === void 0 ? void 0 : port.sender) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
29
|
+
const uri = new URL((_c = port === null || port === void 0 ? void 0 : port.sender) === null || _c === void 0 ? void 0 : _c.url);
|
|
30
|
+
origin = (uri === null || uri === void 0 ? void 0 : uri.origin) || '';
|
|
31
|
+
}
|
|
32
|
+
return origin;
|
|
33
|
+
}
|
|
23
34
|
setupMessagePortConnect(config) {
|
|
24
35
|
extensionMessagePort_1.default.connect({
|
|
25
36
|
name: EXT_PORT_UI_TO_BG,
|
|
26
37
|
// #### background -> ui
|
|
27
38
|
onMessage: (payload, port0) => {
|
|
28
|
-
|
|
29
|
-
let origin = ((_a = port0.sender) === null || _a === void 0 ? void 0 : _a.origin) || '';
|
|
39
|
+
let origin = this._getOriginFromPort(port0) || '';
|
|
30
40
|
// in ext ui, port.sender?.origin is always empty,
|
|
31
41
|
// so we trust remote (background) origin
|
|
32
42
|
origin = origin || payload.origin || '';
|
|
@@ -22,7 +22,7 @@ function inject(filename) {
|
|
|
22
22
|
}
|
|
23
23
|
// TODO one-time only
|
|
24
24
|
function setupMessagePort(options = {}) {
|
|
25
|
-
const debugLogger = options.debugLogger || cross_inpage_provider_core_1.
|
|
25
|
+
const debugLogger = options.debugLogger || cross_inpage_provider_core_1.appDebugLogger;
|
|
26
26
|
extensionMessagePort_1.default.connect({
|
|
27
27
|
name: EXT_PORT_CS_TO_BG,
|
|
28
28
|
// #### background -> content-script
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/extension-bridge-hosted",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"cross-inpage-provider"
|
|
6
6
|
],
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"start": "tsc --watch"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@onekeyfe/cross-inpage-provider-core": "^0.0.
|
|
32
|
-
"@onekeyfe/cross-inpage-provider-types": "^0.0.
|
|
31
|
+
"@onekeyfe/cross-inpage-provider-core": "^0.0.5",
|
|
32
|
+
"@onekeyfe/cross-inpage-provider-types": "^0.0.5"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "fc053fe3c2920fca734addae381339a29a09b716"
|
|
35
35
|
}
|