From e98393e499c03504851e97dd9f740b817c4534df Mon Sep 17 00:00:00 2001 From: Simon Hyll Date: Mon, 4 Sep 2023 23:02:22 +0200 Subject: [PATCH] fix: no longer unpacking and flattening payload, closes #7673 (#7677) --- .changes/fix-ipc-payload.md | 5 +++++ core/tauri/scripts/core.js | 4 ++-- core/tauri/scripts/ipc-protocol.js | 2 +- core/tauri/src/ipc/protocol.rs | 2 -- 4 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 .changes/fix-ipc-payload.md diff --git a/.changes/fix-ipc-payload.md b/.changes/fix-ipc-payload.md new file mode 100644 index 00000000000..ea495b054a1 --- /dev/null +++ b/.changes/fix-ipc-payload.md @@ -0,0 +1,5 @@ +--- +"tauri": 'patch:bug' +--- + +No longer unpacking and flattening the `payload` over the IPC so that commands with arguments called `cmd`, `callback`, `error`, `options` or `payload` aren't breaking the IPC. diff --git a/core/tauri/scripts/core.js b/core/tauri/scripts/core.js index 6c33e0a0b64..61bdf1d672b 100644 --- a/core/tauri/scripts/core.js +++ b/core/tauri/scripts/core.js @@ -59,11 +59,11 @@ window.__TAURI_INVOKE__ = function invoke(cmd, payload = {}, options) { return new Promise(function (resolve, reject) { - var callback = window.__TAURI__.transformCallback(function (r) { + const callback = window.__TAURI__.transformCallback(function (r) { resolve(r) delete window[`_${error}`] }, true) - var error = window.__TAURI__.transformCallback(function (e) { + const error = window.__TAURI__.transformCallback(function (e) { reject(e) delete window[`_${callback}`] }, true) diff --git a/core/tauri/scripts/ipc-protocol.js b/core/tauri/scripts/ipc-protocol.js index 724284af80b..8d3ac764ec4 100644 --- a/core/tauri/scripts/ipc-protocol.js +++ b/core/tauri/scripts/ipc-protocol.js @@ -44,7 +44,7 @@ }) } else { // otherwise use the postMessage interface - const { data } = processIpcMessage({ cmd, callback, error, options, ...payload }) + const { data } = processIpcMessage({ cmd, callback, error, options, payload }) window.ipc.postMessage(data) } } diff --git a/core/tauri/src/ipc/protocol.rs b/core/tauri/src/ipc/protocol.rs index 60883c5c88e..f0cd1d06ea6 100644 --- a/core/tauri/src/ipc/protocol.rs +++ b/core/tauri/src/ipc/protocol.rs @@ -127,7 +127,6 @@ fn handle_ipc_message(message: String, manager: &WindowManager, l cmd: String, callback: CallbackFn, error: CallbackFn, - #[serde(flatten)] payload: serde_json::Value, options: Option, } @@ -142,7 +141,6 @@ fn handle_ipc_message(message: String, manager: &WindowManager, l cmd: String, callback: CallbackFn, error: CallbackFn, - #[serde(flatten)] payload: crate::utils::pattern::isolation::RawIsolationPayload<'a>, options: Option, }