Originally created by: kristofferR
Add a privacy setting that stops Carrier from broadcasting the "…is typing" indicator to the other person while you type. This is one of Caprine's flagship privacy features and the kind of thing people switch clients for.
block_typing_indicator.carrier:settings event, like the other inject settings).src-tauri/inject/messenger.js. Messenger sends the typing state over its realtime channel; intercept it at the network layer rather than poking the React internals:WebSocket.prototype.send and/or fetch/XMLHttpRequest and drop the outbound payloads that set the typing/is_typing state (Messenger's MQTT-over-WebSocket typ/typing messages, or the GraphQL typing mutation — confirm the exact shape against the live DOM/network).Settings struct (src-tauri/src/lib.rs), the Settings window (dist/settings.html), and read it in the inject script via window.__CARRIER_SETTINGS__.Part of the Caprine privacy-parity set (see also typing/read-receipt/notification/blur issues).
fMess ships a working typing-indicator block (04-privacy.js:127-224, MIT):
/ws/lightspeed frames: for request type 4 with label "3", it sets is_typing to 0. Requests are edited, not dropped, so Messenger does not retry them.sendChatStateFromComposer messages to idle via MessagePort.postMessage.Adopting this means adapting their code, so include fMess's MIT notice. No competitor has a working read-receipt block (#15).
Part of [#349].
Originally posted by: kristofferR
Landed in [#374]: Settings → Privacy → Block typing indicator, off by default. It stops Carrier from sending your typing state, and you still see other people's.
It is on
mainand ships in the next release.Related
Tickets:
#374Ticket changed by: kristofferR