scratchfoundation / scratchfoundation/scratch-blocks

All-around breaking issues on Firefox, probably tied to workspace/palette reloading?

Open
#1,969 3 comments 0 reactions 0 assignees View on GitHub

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:

  1. View the project page.
  2. Open the custom procedure dialog (click "make a block" or "edit definition").
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.