Skip to content

Additional architecture docs

Thor Galle edited this page Oct 9, 2022 · 2 revisions

The main documentation about web can be found in the readme.

This wiki contains additional architecture documentation.

How the Readup extension communicates with the client & server

Old reference model of ~June 2021

This diagram shows how the standalone reader extension version of around June 2021 used to communicate with the Readup API and Readup client through its own event page, under the deprecated manifest v2 model.

We changed this model around July 2021 when the Readup web app was stripped down and combined with a thinner extension that only activated the Readup app (the current version in September 2022). Now we're re-enabling Readup on the web (see https://github.com/reallyreadit/web/issues/50), under a new manifest v3 extension model.

Communication diagram between extensions client (manifest v2) ✍️ Source Google Drawings link

New manifest v3 model

The following is the communication model we aim to implement in October 2022:

Communication diagram between extensions   client (manifest v3) ✍️ Source Google Drawings link

The aim is to:

  • Use an Extension page analogously to the WebView used in the iOS/macOS app and desktop apps. These pages/views don't request article content themselves, but they display the article content in the Reader.
  • Modify the extension service worker/event page to take over the controller role that the framework Electron/NodeJS and Swift code already has in the desktop/iOS/macOS app. This controller requests the article HTML on behalf of the user without web fetch/CORS limitations, and then loads it into a WebView (soon: extension page). Example code section.

We still need to create an Event Page next because Firefox will only support manifest v3 Service Workers some time later