File tree Expand file tree Collapse file tree 2 files changed +8
-4
lines changed
snaps-controllers/src/services/webview
snaps-execution-environments/src/webview Expand file tree Collapse file tree 2 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ import type { PostMessageEvent } from '@metamask/post-message-stream';
22import { BasePostMessageStream } from '@metamask/post-message-stream' ;
33import { isValidStreamMessage } from '@metamask/post-message-stream/dist/utils' ;
44import { logError } from '@metamask/snaps-utils' ;
5- import { assert } from '@metamask/utils' ;
5+ import { assert , stringToBytes } from '@metamask/utils' ;
66
77export type WebViewInterface = {
88 injectJavaScript ( js : string ) : void ;
@@ -65,7 +65,9 @@ export class WebViewMessageStream extends BasePostMessageStream {
6565 data,
6666 } ) ;
6767
68- this . #webView. injectJavaScript ( `window.postMessage('${ json } ')` ) ;
68+ const bytes = new Uint8Array ( stringToBytes ( json ) ) ;
69+
70+ this . #webView. injectJavaScript ( `window.postMessage([${ bytes . toString ( ) } ])` ) ;
6971 }
7072
7173 private _onMessage ( event : PostMessageEvent ) : void {
Original file line number Diff line number Diff line change 11import type { PostMessageEvent } from '@metamask/post-message-stream' ;
22import { BasePostMessageStream } from '@metamask/post-message-stream' ;
33import { isValidStreamMessage } from '@metamask/post-message-stream/dist/utils' ;
4+ import { bytesToString } from '@metamask/utils' ;
45
56type WebViewExecutorStreamArgs = {
67 name : string ;
@@ -61,11 +62,12 @@ export class WebViewExecutorStream extends BasePostMessageStream {
6162 }
6263
6364 private _onMessage ( event : PostMessageEvent ) : void {
64- if ( typeof event . data !== 'string' ) {
65+ if ( ! Array . isArray ( event . data ) ) {
6566 return ;
6667 }
6768
68- const message = JSON . parse ( event . data ) ;
69+ const json = bytesToString ( new Uint8Array ( event . data as number [ ] ) ) ;
70+ const message = JSON . parse ( json ) ;
6971
7072 // Notice that we don't check targetWindow or targetOrigin here.
7173 // This doesn't seem possible to do in RN.
You can’t perform that action at this time.
0 commit comments