TorstenDittmann / OmniaWrite

A text editor engineered for creative writing.
https://OmniaWrite.com
Apache License 2.0
162 stars 34 forks source link

Web App displays blank page when local storage is not whitelisted for OmniaWrite #123

Open jish opened 3 years ago

jish commented 3 years ago

Describe the bug

When navigating to https://app.omniawrite.com/ a blank page is shown

To Reproduce

  1. Do not whitelist cookies for the omniawrite.com domain
  2. Navigate to https://app.omniawrite.com

Expected behavior

Screenshots

Screen Shot 2020-10-08 at 1 28 18 PM

Desktop (please complete the following information):

TorstenDittmann commented 3 years ago

Hello,

Thanks for the submission, are you sure you are not blocking access to LocalStorage as well?

Since I cannot think of a reason right now that disabled cookies will break the app. Cookies are only used for the Cloud Login, and we also have an automatic fallback for LocalStorage if cookies are disabled.

Based on the yellow error message, do you mind checking again if LocalStorage is also disabled?

Because that will break the app 100% right now and I didn't think about that LocalStorage might be disabled, until now.

jish commented 3 years ago

Ah, yes. That seems correct. It appears that accessing local storage causes an error. No error appears to be thrown when attempting to set a cookie:

document.cookie = "foo=bar";
// Request to access cookie or storage on “<URL>” was blocked because we are blocking all storage access requests. 3

window.localStorage.set("foo", "bar");
// Uncaught DOMException: The operation is insecure.

Screen Shot 2020-10-08 at 1 52 40 PM

TorstenDittmann commented 3 years ago

Thanks for clarifying, that makes sense 🙂

I think, the best way to solve this is showing the user a modal/text that LocalStorage needs to be activated to use OmniaWrite.

I don't think running the app with the whole data in memory makes that much sense. Especially when there are reloads necessary for certain actions inside the app.

This should probably be checked outside of the actual runtime of the app and be done before the app even loads, that will prevent unknown scenarios where the app will still break.

PineappleIOnic commented 3 years ago

I wouldn't mind having a look into this being done if you would like 👍