Repository navigation
[stable31] fix(viewer): register handlers not yet in the lookup table when openi… - #3418
Merged
Merged
Conversation
…ng a file On single-file public shares, the files app can open the file before DOMContentLoaded, while the component's handler lookup table is still empty. This shows "There is no plugin available to display this file type". Register any missing handlers when a file is opened, as well as on DOMContentLoaded. Signed-off-by: silver <s.szmajduch@posteo.de> Assisted-by:ClaudeCode:claude-opus-5.5
Author
|
/compile |
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
blizzz
requested review from
a team,
kristian-zendato,
skjnldsv and
sorbaugh
and removed request for
a team
October 5, 2026 17:44
skjnldsv
approved these changes
Oct 6, 2026
Member
|
Probably good to have for stable3[2-5] ? |
This was referenced Oct 6, 2026
Merged
Merged
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bug
On a single-file share, the Files app opens the file as soon as its file list request (PROPFIND) returns. The Viewer only builds its handler lookup table on
DOMContentLoaded. If a slow script holds backDOMContentLoaded, the file is opened while that table is still empty, and you get the error: "There is no plugin available to display this file type".The fix
A new
registerNewHandlers()method adds any handlers that are not in the lookup table yet. It now runs when a file is opened, as well as onDOMContentLoaded. Handlers are never added twice, and ones registered later are still picked up.The test
It holds back
DOMContentLoadedon a single-file share by adding a fake script that Cypress answers after 3 seconds. It then checks that the shared image opens with no "no plugin" error. It fails without the fix and passes with it, so it reproduces the race on every run and shows the fix closes it.🤖 AI (if applicable)