From ae5e8eb0e4cd2bb752bab94d3528340aaf8a5db0 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 31 Jan 2025 17:40:05 +0100 Subject: [PATCH 1/2] feat(webview): handle window.open --- src/stremio_app/stremio_wevbiew/wevbiew.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/stremio_app/stremio_wevbiew/wevbiew.rs b/src/stremio_app/stremio_wevbiew/wevbiew.rs index 8a2f527..51229a6 100644 --- a/src/stremio_app/stremio_wevbiew/wevbiew.rs +++ b/src/stremio_app/stremio_wevbiew/wevbiew.rs @@ -137,6 +137,23 @@ impl PartialUi for WebView { } }) }catch(e){} + + window.open = (url) => { + if (typeof url === 'string' && URL.canParse(url)) + return console.error('Not a valid URL string'); + + try { + const message = { + id: 1, + args: ['open-external', url], + }; + + window.chrome.webview.postMessage(JSON.stringify(message)); + } catch(e) { + console.error('Failed to post message'); + } + }; + try{console.log('Shell JS injected');if(window.self === window.top) { window.qt={webChannelTransport:{send:window.chrome.webview.postMessage}}; window.chrome.webview.addEventListener('message',ev=>window.qt.webChannelTransport.onmessage(ev)); From 8ef0f079b60e12074f5db8872c86b7a7dc9e4cb1 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 24 Feb 2025 00:28:56 +0100 Subject: [PATCH 2/2] fix(webiew): incorrect condition for window.open js script --- src/stremio_app/stremio_wevbiew/wevbiew.rs | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/stremio_app/stremio_wevbiew/wevbiew.rs b/src/stremio_app/stremio_wevbiew/wevbiew.rs index 51229a6..db568d4 100644 --- a/src/stremio_app/stremio_wevbiew/wevbiew.rs +++ b/src/stremio_app/stremio_wevbiew/wevbiew.rs @@ -139,18 +139,19 @@ impl PartialUi for WebView { }catch(e){} window.open = (url) => { - if (typeof url === 'string' && URL.canParse(url)) + if (typeof url === 'string' && URL.canParse(url)) { + try { + const message = { + id: 1, + args: ['open-external', url], + }; + + window.chrome.webview.postMessage(JSON.stringify(message)); + } catch(e) { + console.error('Failed to post message'); + } + } else { return console.error('Not a valid URL string'); - - try { - const message = { - id: 1, - args: ['open-external', url], - }; - - window.chrome.webview.postMessage(JSON.stringify(message)); - } catch(e) { - console.error('Failed to post message'); } };