tomer8007 / whatsapp-web-incognito

A Chrome extension that disables read receipts and presence updates on WhatsApp Web
MIT License
312 stars 74 forks source link

Implement revoke messages for messages deleted by Group Admins #122

Closed diegoweb closed 1 year ago

diegoweb commented 1 year ago

Hey!

So far as I could tell the Revoke Message feature in this extension only work for private conversation, so only between 2 people.

WhatsApp has recently added a feature that allow Group Admins to delete message from participants in a group and Wa-Incognito doesn't restore the deleted message in this case.

Could you please implement this feature in the next version of this extension?

Thanks!

tomer8007 commented 1 year ago

The Restore messages feature does work for groups, though, just not for messages deleted by admins I guess.

diegoweb commented 1 year ago

The Restore messages feature does work for groups, though, just not for messages deleted by admins I guess.

Yup, you're right. It does work for groups if the user who sent the message is the one deleting it. But it doesn't work by messages deleted by admin.

tomer8007 commented 1 year ago

I believe this should work now in version 2.0.3. Please confirm.

diegoweb commented 1 year ago

I believe this should work now in version 2.0.3. Please confirm.

I disabled the chrome downloaded extension and installed this one via developer (unpacked extension) and refreshed the web whatsapp page.

I tried: Sending a message as User A Deleting the message as User B (admin) Trying to see the message as user C (running the extension)

It did not work. Do I have to re-login?

Edit: Chrome extension has just updated. I will try once again. Give me 1 minute.

tomer8007 commented 1 year ago

No, it probably doesn't work yet :-( It did work for me when the admin deleted your message from the group. Can you share javascript errors?

diegoweb commented 1 year ago

No, it probably doesn't work yet :-( It did work for me when the admin deleted your message from the group. Can you share javascript errors?

Well, it worked with the extension updated from Chrome Store. But for some reason sometimes the browser freezes when you visit a group with the restored message, and you get this javascript error:

ui.js:642 Uncaught TypeError: Cannot set properties of undefined (setting 'textContent') at HTMLDocument. (ui.js:642:34)

Edit- Actually it freezes everytime you go in or out of that chat group where the message was restored.

tomer8007 commented 1 year ago

I can see what cases the javascript error, it's a stupid mistake. But do you at least see the deleted message?

diegoweb commented 1 year ago

I can see what cases the javascript error, it's a stupid mistake. But do you at least see the deleted message?

YES 😄

tomer8007 commented 1 year ago

For how long does it freeze?

diegoweb commented 1 year ago

For how long does it freeze?

Over 10 seconds

tomer8007 commented 1 year ago

Can you try to comment out lines 139-150 here, https://github.com/tomer8007/whatsapp-web-incognito/blob/de895a42006b067799ea113b39a7af2d22867620/core/utils.js#L139 so that it will use the fallback method? I have a feeling it's related to the freeze, but am not sure.

tomer8007 commented 1 year ago

Actually maybe it's a bad idea. If you can find a javascript warning it will be far better. I just don't have a 3rd user to test with right now.

diegoweb commented 1 year ago

There's no javascript warning besides that one. And actually I've just tested multiple times here, and no Javascript error goes to the console when the browser freezes.

It seems related to scrolling the group. If I scroll up, nothing happens. When I scroll down to see the recovered message, the browser freezes.

tomer8007 commented 1 year ago

When I scroll down to see the recovered message, the browser freezes.

It makes sense because this is when the restore function gets called. I just can't think of anything that might block in this flow. Are you sure the browser freezes only in this case where an Admin deletes a message, and in no other cases?

diegoweb commented 1 year ago

Yup, confirmed. If someone deletes its own message, the extension restore the message and I can scroll up and down without getting the browser frozen.

If no message is deleted, the browser works great as well (similar to first case).

If an admin deletes someone else's message, the browser freezes as I have related above.

I've even tried to restart my browser, but that didn't help.

tomer8007 commented 1 year ago

OK, well, I guess I'll need a 3rd device to test. If you really want to you can try to do single-stepping from restoreDeletedMessageIfNeeded to find the hanging function in the meantime :-(.

diegoweb commented 1 year ago

I will see if I can try that and if I found something useful. But one thing that I noticed is that I can't PIN any chat anymore (after that re-login in the previous github issue). Is that supposed to happen?

image

tomer8007 commented 1 year ago

~I think really that the pinning of chats is something that WhatsApp did not yet implement for the web. It has nothing to do with the extension.~ EDIT: I tried again now and the pinning works for me.

diegoweb commented 1 year ago

I had to disable the extension and refresh the page. So all my pinned chats were back on the top. Then I enabled the extension again and refreshed the page once more. Now everything is working as expected 😛

I think the extension is messing with something, if you previously had pinned chat already. But that was an easy fix, so don't worry about it.

tomer8007 commented 1 year ago

@diegoweb Yes, this sounds like exactly what happened to me.

tomer8007 commented 1 year ago

Closing because it seems messages deleted by admins are restored correctly.