Closed Bug 1421358 Opened 2 years ago Closed 2 years ago

Remove GC infrastructure for NotifyDidPaint


(Core :: JavaScript: GC, enhancement, P3)




Tracking Status
firefox59 --- fixed


(Reporter: mccr8, Assigned: adrian17)



(Keywords: good-first-bug)


(1 file)

The browser no longer uses the JS::NotifyDidPaint() API that was added for IGC. I think Olli changed how it works. In bug 1421355, I'll remove the public API for this, but it seems like there's a bunch of JS engine side code related to it that could be removed.
Yeah, these days we try hard to use idle time, and if there isn't any idle time, there isn't really any good time to run collectors so we fallback to timers.
vsync is still prioritized, so refresh driver should run before timers.
Keywords: good-first-bug
Priority: -- → P3
Comment on attachment 8936941 [details]
Bug 1421358 - Remove GCRuntime::notifyDidPaint and refresh_frame_slices.enabled pref.

Looks great, thanks for doing this!

::: js/public/GCAPI.h:385
(Diff revision 1)
>      D(SET_DOC_SHELL)                            \
>      D(DOM_UTILS)                                \
>      D(DOM_IPC)                                  \
>      D(DOM_WORKER)                               \
>      D(INTER_SLICE_GC)                           \
> -    D(REFRESH_FRAME)                            \
> +    D(UNUSED3)                                  \

We don't seems to have UNUSED1 so you can use that.
Attachment #8936941 - Flags: review?(jcoppeard) → review+
Pushed to try on behalf of Adrian:

remote: Follow the progress of your build on Treeherder:

If it's green, feel free to mark it as checkin-needed (I'll pay attention too just in case).

Thanks a lot for the patch!
hg error in cmd: hg push -r tip ssh:// pushing to ssh://
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 11 changes to 11 files
remote: (040bfe750c97 modifies servo/components/script/ from Servo; not enforcing peer review)
remote: (040bfe750c97 modifies servo/resources/prefs.json from Servo; not enforcing peer review)
remote: (1 changesets contain changes to protected servo/ directory: 040bfe750c97)
remote: ************************************************************************
remote: you do not have permissions to modify files under servo/
remote: the servo/ directory is kept in sync with the canonical upstream
remote: repository at
remote: changes to servo/ are only allowed by the syncing tool and by sheriffs
remote: performing cross-repository "merges"
remote: to make changes to servo/, submit a Pull Request against the servo/servo
remote: GitHub project
remote: ************************************************************************
remote: transaction abort!
remote: rollback completed
remote: pretxnchangegroup.e_prevent_vendored hook failed
abort: push failed on remote
Ouch, yeah, servo/ files shouldn't be touched, I'll just strip those changes.
Assignee: nobody → adrian.wielgosik
Pushed by
Remove GCRuntime::notifyDidPaint and refresh_frame_slices.enabled pref. r=jonco
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
You need to log in before you can comment on or make changes to this bug.