scratchfoundation / scratchfoundation/scratch-blocks
All-around breaking issues on Firefox, probably tied to workspace/palette reloading?
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.8k
- Forks
- 1.6k
- Avg merge
- 4h 51m
- Merged PRs (30d)
- 12
Description
Sorry for this mess of an issue/vague repro notes!
It's difficult to figure out exactly what the cause of any of these issues is, but they all have essentially the same effect: the Scratch page freezes up, becoming entirely unusable until I kill the tab ("a webpage is slowing down your browser, would you like to close it?" browser popup).
It's also not consistently reproducible. Messing around with the Scratch editor always causes it to freeze up eventually, but I can't always follow the same steps and have it crash at the same time.
Things that I've done right before the editor crashes:
- View the project page.
- Open the custom procedure dialog (click "make a block" or "edit definition").
- Switch between editor tabs or sprites.
Save for the first case (viewing the project page), it seems like it always happens when a workspace is reloaded. And/or maybe unloaded, which would account for exiting the editor?
I've also noticed that instead of freezing up, the block flyout will generate incorrectly with all the block SVGs positioned at the top-left of the flyout area, or the options in the context menus for variables in the flyout will stop working (something about e.blockList being undefined? -- mind I may be misremembering that, I've reloaded the tab and cleared the console since).
I'm using Firefox Developer Edition (69.0b7 / Linux) so it's not unreasonable to think there may be a bug in Firefox and not Scratch, but it's probably still worth investigating. I can't repro on Chromium. Edit: I can only repro this on dev edition, not Firefox ESR (60.7 / Linux, Mac).
This has been an issue for at least a couple weeks (on scratch.mit.edu) now. I can reproduce the same issues on llk.github.io, though (but again, not consistently).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the freezes and rendering failures in Firefox Developer Edition on scratch.mit.edu or llk.github.io, focusing on workspace reloads, editor tabs, sprites, and the custom procedure dialog. Compare behavior with Chromium and Firefox ESR, and use the reported e.blockList error as an investigation clue. Done means the cause is identified and the freeze, malformed flyout, or broken variable context-menu behavior is resolved or clearly ruled out as a Firefox issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100