Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebAuthn.js does not work on older Safari versions #1710

Closed
nicokaiser opened this issue Jan 13, 2023 · 10 comments
Closed

WebAuthn.js does not work on older Safari versions #1710

nicokaiser opened this issue Jan 13, 2023 · 10 comments

Comments

@nicokaiser
Copy link
Contributor

Since (about) version 4.7, Lychee does not work in older Safari browsers. Safari <= 13 is present on older iOS versions, and most probably some older android devices are also affected.

The culprit seems to be the new WebAuthn.js, which uses private class methods, and which is directly committed into the dist folder (and thus not being transpiled by the Babel task in Lychee-front.

Has this been a deliberate choice, or should the files in dist also be somewhere else and included in the transpilation step?

I‘d happy to help with a PR, but am not yet familiar with the interweaved structure of Lychee and Lychee-front…

@doclbn
Copy link

doclbn commented Jan 20, 2023

I can confirm this behaviour on iPadOS 15.7.2 (release date 2022-12-13).
iOS 16.x seems to be unaffected.
I noticed this after migrating from 4.6.0. to 4.7.0

@d7415
Copy link
Contributor

d7415 commented Jan 20, 2023

Looks like Safari 13 was EOL'd in 2020, so there are probably bigger issues than Lychee. Android is unlikely to have the same issue, at least to the same extent.

The effect @doclbn is reporting on an apparently recent version is more concerning, but at a glance shouldn't be related to private class methods.

@nicokaiser
Copy link
Contributor Author

Although it might be relatively easy to achieve compatibility with Safari 13 (and probably other EOL'd browser versions) by using the (already existing) transpilation for all JS, I see that supporting dead browsers is not the top priority.

I could successfully compile a Lychee version that transpiled WebAuthn.js and ran in Safari 12, however this version hat problems opening the photos page then, and so I postponed my efforts on this.

@nicokaiser
Copy link
Contributor Author

I can confirm this behaviour on iPadOS 15.7.2 (release date 2022-12-13).

Could you try if https://gallery.kaiser.photo works better than vanilla 4.7.0? This currently runs on a custom version with transpiled WebAuthn and ResizeObserver polyfill. On iOS 12 it loads, but the photo view does not scroll to top (where the big photo is being loaded). This might be something minor and is still better than a blank page…

@nicokaiser
Copy link
Contributor Author

nicokaiser commented Jan 21, 2023

I guess the remaining thing is the „overflow: clip“ CSS property, which is only supported for some months in Safari (>=16). It cannot be replaced with „hidden“ in this case, because that would render the page unscrollable. Any ideas?

@d7415
Copy link
Contributor

d7415 commented Jan 21, 2023

I see that Apple were over a year behind everyone else implementing that one 🤦‍♂️

@doclbn
Copy link

doclbn commented Jan 21, 2023

I can confirm this behaviour on iPadOS 15.7.2 (release date 2022-12-13).

Could you try if https://gallery.kaiser.photo works better than vanilla 4.7.0?

Sorry for late reply; it snowed so nicely today I had to go out skiing :)

Short answers first: trying vanilla 4.7 <-> Nico‘s patched version:

  • iOS 12.5.6: no rendering (blank screen) <-> working photo display, but a little awkward rendering; see iOS 15
  • iOS and iPadOS 15.7.2: some awkward rendering, will detail below <-> no difference as far as I can see; I‘d have to be able to log in to check further.
  • iOS 16.2: Site works more or less as expected <-> no difference.

Very nice photos, btw; I particularly liked the cathedral ceiling :)

„Awkward“ stuff on iOS15 (and on iOS12 using Nico‘s fix):

  • you can always swipe left and reveal the „info“ screen, even on pages that don‘t normally feature one
  • if you open the info screen, it pushes away / displaces the album thumbs instead of overlaying them (which would be the intended behaviour on a small screen, I assume)
  • upon touching an image thumbnail in an album, the larger version is displayed at the top of the thumbnail list but I have to scroll up to the top to view it. I can - or rather I have to - swipe-scroll down again to continue viewing. No easy way to return to your former position in the album thumbnail list.

Not sure if this belongs here but I noticed these problems on iOS 16, too:

  • the now overlaying info screen has a quite high transparency which makes it hard to read if it overlays brighter images (on Chrome / Edge the info screen does not overlay but displaces the thumbnails)
  • I can‘t access the „open original“ link on images although it is allowed in the album permissions - the „…“ icon is not shown (or did I miss something here that has changed?)

Thanks for seeing into this!
-Lars aka doclbn

@doclbn
Copy link

doclbn commented Jan 21, 2023

… oh and I forgot: another iOS thing happens (on 15 [edit: NOT on 16], can‘t check on 12 for blank screen):
After logging in, the settings („gear“) screen overlays the top page with 100% transparency, making it quite hard to navigate:

8AE83B43-5B96-4E80-912C-D03B2C780FA3

-Lars

@nicokaiser
Copy link
Contributor Author

nicokaiser commented Jan 21, 2023 via email

nicokaiser added a commit to nicokaiser/Lychee that referenced this issue Feb 9, 2023
WebAuthn is transpiled and compiled into frontend.js
nicokaiser added a commit to nicokaiser/Lychee that referenced this issue Feb 9, 2023
WebAuthn is transpiled and compiled into frontend.js
ildyria pushed a commit that referenced this issue Mar 8, 2023
* Add WebAuthn.js to frontend.js (#1710)

WebAuthn is transpiled and compiled into frontend.js

---------

Co-authored-by: Nico Kaiser <[email protected]>
@qwerty287
Copy link
Contributor

The linked PR has been merged in a new version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants