diff --git a/ee/connectors/msgcodec/msgcodec.py b/ee/connectors/msgcodec/msgcodec.py index 75ccca196..df6133cbb 100644 --- a/ee/connectors/msgcodec/msgcodec.py +++ b/ee/connectors/msgcodec/msgcodec.py @@ -653,8 +653,8 @@ class MessageCodec(Codec): ) if message_id == 115: - return RemovedNodesCount( - nodes_count=self.read_uint(reader) + return UnbindNodes( + total_removed_percent=self.read_uint(reader) ) if message_id == 125: diff --git a/mobs/messages.rb b/mobs/messages.rb index 018effc30..a107d5dcc 100644 --- a/mobs/messages.rb +++ b/mobs/messages.rb @@ -448,7 +448,6 @@ end # 90-111 reserved iOS - message 112, 'InputChange', :replayer => false do uint 'ID' string 'Value' @@ -468,8 +467,8 @@ message 114, 'MouseThrashing' do uint 'Timestamp' end -message 115, 'RemovedNodesCount', :replayer => false do - uint 'NodesCount' +message 115, 'UnbindNodes', :replayer => false do + uint 'TotalRemovedPercent' end ## Backend-only diff --git a/tracker/tracker/src/main/app/nodes.ts b/tracker/tracker/src/main/app/nodes.ts index 387679380..097cce2c1 100644 --- a/tracker/tracker/src/main/app/nodes.ts +++ b/tracker/tracker/src/main/app/nodes.ts @@ -73,6 +73,10 @@ export default class Nodes { return this.nodes[id] } + getNodeCount() { + return this.nodes.filter(Boolean).length + } + clear(): void { for (let id = 0; id < this.nodes.length; id++) { const node = this.nodes[id] diff --git a/tracker/tracker/src/main/app/observer/observer.ts b/tracker/tracker/src/main/app/observer/observer.ts index 1fd84c904..0d7030855 100644 --- a/tracker/tracker/src/main/app/observer/observer.ts +++ b/tracker/tracker/src/main/app/observer/observer.ts @@ -8,7 +8,7 @@ import { CreateElementNode, MoveNode, RemoveNode, - RemovedNodesCount, + UnbindNodes, } from '../messages.gen.js' import App from '../index.js' import { @@ -237,11 +237,12 @@ export default abstract class Observer { ) let removed = 0 + const total = this.app.nodes.getNodeCount() while (walker.nextNode()) { removed += 1 this.app.nodes.unregisterNode(walker.currentNode) } - this.app.send(RemovedNodesCount(removed)) + this.app.send(UnbindNodes(Math.floor((removed / total) * 100))) } }