Git Product home page Git Product logo

Comments (9)

sosnovsky avatar sosnovsky commented on August 15, 2024 1

The same issue happens in Chrome when you directly open encrypted thread in encrypted inbox:

  • open encrypted inbox
  • open encrypted thread - messages successfully decrypted
  • reload thread page - messages stuck in loading... state

@ioanmo226 let's work on this issue next, so we'll be able to publish new Firefox release, as this bug makes it impossible to use extension in Firefox

from flowcrypt-browser.

ioanmo226 avatar ioanmo226 commented on August 15, 2024

You mean in gmail page or in extension page?

from flowcrypt-browser.

sosnovsky avatar sosnovsky commented on August 15, 2024

On gmail page, it stucks in this state for me:

Screenshot 2024-06-21 at 15 26 50

Can you reproduce this issue?

from flowcrypt-browser.

ioanmo226 avatar ioanmo226 commented on August 15, 2024

Couldn't reproduce issue in gmail page but can reproduce in extension page

from flowcrypt-browser.

ioanmo226 avatar ioanmo226 commented on August 15, 2024

Anyway, There's indeed an issue for firefox

from flowcrypt-browser.

ioanmo226 avatar ioanmo226 commented on August 15, 2024

@sosnovsky,

I've taken a detailed look at this issue and I think it warrants a brainstorming session. Currently, both the GmailElementReplacer (content script) and InboxView use messageRenderer to download and process messages.

const msg = await this.view.messageRenderer.downloader.msgGetFull(message.id);

Once the PGP block is ready, we attempt to render it. However, the problem is that the PGP block remains stuck in a loading state when loaded by itself because there's no message rendering mechanism within the PGP block frame. It heavily relies on GmailElementReplacer when loaded on a Gmail page with a content script, and on InboxView when the user accesses the extension inbox page and opens individual PGP block views.

BrowserMsg.send.pgpBlockReady(this, { frameId: this.frameId, messageSender: this.getDest() });

So, I think we should implement a message rendering logic in the PGP block frame as well. The downside is that the message rendering logic will be duplicated (in both the PGP block frame and GmailElementReplacer/InboxView).

What are your thoughts on this?

from flowcrypt-browser.

sosnovsky avatar sosnovsky commented on August 15, 2024

But it works well in Chrome - I haven't noticed similar issue there. My assumption was that BrowserMsg.send fails in some cases on Firefox, so pgpBlockReady event isn't received by pgp block and causes its stuck in loading... state.
I'll send you video of this issue by email.

So, I think we should implement a message rendering logic in the PGP block frame as well. The downside is that the message rendering logic will be duplicated (in both the PGP block frame and GmailElementReplacer/InboxView).

As I remember, previously we've had such duplicated logic, and last year moved it to MessageRenderer, it'll be better to keep it there in a single place.

from flowcrypt-browser.

ioanmo226 avatar ioanmo226 commented on August 15, 2024

But in chrome, message decryption (in extension inbox page ../inbox.htm?threadId=${threadId}..)doesn't work well when there are multiple messages in thread. (one of message decryption doesn't work and it is stuck at loading)

let me have a deep look.

from flowcrypt-browser.

sosnovsky avatar sosnovsky commented on August 15, 2024

It's strange, but mentioned issue doesn't occur for me anymore - I opened encrypted thread, waited 30-40 seconds until loading... label disappeared and error message appeared - Cannot get reply data for the message you are replying to., which means that fetchReplyMeta request failed.
I tried to add some logs for finding original error, but since then message loading doesn't stuck - works well on gmail page and in encrypted inbox.

from flowcrypt-browser.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.