@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.
@@ -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 };
@@ -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
- var _a;
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, fakeDebugLogger, injectedFactory, } from '@onekeyfe/cross-inpage-provider-core';
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 || fakeDebugLogger;
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
- var _a;
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.fakeDebugLogger;
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.4",
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.4",
32
- "@onekeyfe/cross-inpage-provider-types": "^0.0.4"
31
+ "@onekeyfe/cross-inpage-provider-core": "^0.0.5",
32
+ "@onekeyfe/cross-inpage-provider-types": "^0.0.5"
33
33
  },
34
- "gitHead": "d47447804157874b2607aea82f92ff3a132c5e67"
34
+ "gitHead": "fc053fe3c2920fca734addae381339a29a09b716"
35
35
  }