Hi,

With some more testing:
- Chromium, Debian version, blocks third-party cookies by default:
https://sources.debian.org/patches/chromium/73.0.3683.75-1/disable/third-party-cookies.patch/
- Chrome and default Chromium builds do not
- Firefox, including Debian version, doesn't; with blocking even the
3rd-party WASM can't load (SecurityException)

So this is not a browser issue but a default settings issue.

AFAIU the reason why the iframe cannot use IndexDB is because otherwise
the top-level page could control the frame and have it set a cookie,
bypassing the "no 3rd-party cookie" setting.

There doesn't seem to be a way around this but I can be mistaken.

Cheers!
Beuc

On 17/06/2019 14:53, Beuc wrote:
>
> AFAICS this has been around for years :/
> See for instance
> https://forum.unity.com/threads/how-to-check-playerprefs-has-actually-written-data.389376/
>
> I really don't understand the logic of attempting to use the caller's
> / top-level IDBFS context instead of the iframe one?
>
> One work-around is unblocking "third-party cookies" in
> chrome://settings/content/cookies
>
> Another one is passing a sessionid to the iframe to it can save the
> data via the hoster's API, provided the player has an account there
> already.
> (I believe newgrounds does it, but not itch.io.)
>
> Do you all have some more feedback on this?
>
> Cheers!
> Beuc
>
> On 17/06/2019 12:45, Jukka Jylänki wrote:
>> If there's differing behavior between browsers, filing a bug is good
>> idea. Any chance you'd be able to handwrite an IndexedDB example JS
>> code that highlights the discrepancy? In general I find that filing
>> Emscripten compiled pages as bug test cases tend to go untriaged as
>> too complex. :)
>>
>> su 16. kesäk. 2019 klo 13.53 Beuc ([email protected]) kirjoitti:
>>> Hi,
>>>
>>> I have savegame issues with Chromium and typical game hosting websites
>>> (itch.io, newgrounds...), where they present the game in their domain,
>>> and run the game within a iframe from a CDN (and a different domain name).
>>>
>>> While running the game from the iframe, Chromium still attempts to use
>>> IndexedDB storage from the top-level domain context.
>>> This results in FS.syncfs() failing with "DOMException: The user denied
>>> permission to access the database" (visible if you set an async error
>>> handler).
>>> If the user manually hits the iframe page directly, storage works.
>>>
>>> With Firefox, no issues, since the browser uses IDB with the iframe
>>> domain context
>>> (which makes much more sense to me).
>>>
>>> Are you aware of this?
>>> Are there workarounds?
>>> Should I file a bug in Chromium?
>>>
>>> Cheers!
>>> Beuc
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "emscripten-discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/emscripten-discuss/bf34857b-e7ed-0f97-a7f2-9402c0aad45b%40beuc.net.
>>> For more options, visit https://groups.google.com/d/optout.
> -- 
> You received this message because you are subscribed to the Google
> Groups "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/9057fc5d-80fe-9b11-bf56-4ff506cf9759%40beuc.net
> <https://groups.google.com/d/msgid/emscripten-discuss/9057fc5d-80fe-9b11-bf56-4ff506cf9759%40beuc.net?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/06c61392-c41b-8a66-068d-79229eb2bb7a%40beuc.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to