colour picking freezes Theming admin page
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 36.9k
- Forks
- 5.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 713
Description
Steps to reproduce
- update AiO from 9.8 to 10
- change background colour with admin account
- pick manually a colour
- move the mouse around the different shades
- watch the whole page freeze
- try to reload
- close browser tab
- open NC instance
- colour is not applied but present in the colour picker
freezing
picked colour after closing tab and open new
Expected behaviour
pick a colour
close the colour picker window
save and apply the colour to the background
Actual behaviour
page freezes
Server configuration
NC AiO 10.0.0
Loggin
[no app in context] Warning: Capabilities of OCA\GroupFolders\AppInfo\Capabilities took 0.44 seconds to generate.
GET /settings/admin/theming
Browser
Browser name: Brave
Browser version: Version 1.73.91 Chromium: 131.0.6778.85 (Build officiel) (x86_64)
Operating system: Macos Monterey 12 7 6
Browser log
i18next: languageChanged fr-FR
contentScript.js:2 i18next: initialized {debug: true, initImmediate: true, ns: Array(1), defaultNS: Array(1), fallbackLng: Array(1), …}
adminSettings.js:24 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} s {_uid: 4, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ NcButton.mjs:155
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
v @ vue.runtime.esm.js:6545
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
To.nodeOps @ vue.runtime.esm.js:7133
e._update @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
adminSettings.js:24 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} s {_uid: 6, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ NcButton.mjs:155
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
v @ vue.runtime.esm.js:6545
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
To.nodeOps @ vue.runtime.esm.js:7133
e._update @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
adminSettings.js:24 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} s {_uid: 11, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ NcButton.mjs:155
e._render @ vue.runtime.esm.js:2700
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
init @ vue.runtime.esm.js:4427
(anonymous) @ vue.runtime.esm.js:6591
v @ vue.runtime.esm.js:6545
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
h @ vue.runtime.esm.js:6664
v @ vue.runtime.esm.js:6568
To.nodeOps @ vue.runtime.esm.js:7133
e._update @ vue.runtime.esm.js:3781
a @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
ja.$mount @ vue.runtime.esm.js:8797
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
(anonymous) @ adminSettings.js:24
search.js:22 Initializing unified search plugin-filters from talk
session-heartbeat.js:83 session heartbeat polling started
init.js:115 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
addEvent @ snap.js:143
(anonymous) @ snap.js:250
listen @ snap.js:249
r.57223.2.e.exports @ snap.js:512
ln @ init.js:115
(anonymous) @ main.js:25
init.js:115 [Violation] Added non-passive event listener to a scroll-blocking 'touchmove' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
addEvent @ snap.js:143
(anonymous) @ snap.js:253
listen @ snap.js:252
r.57223.2.e.exports @ snap.js:512
ln @ init.js:115
(anonymous) @ main.js:25
8[Violation] Forced reflow while executing JavaScript took <N>ms
[Violation] Forced reflow while executing JavaScript took 58ms
[Violation] Forced reflow while executing JavaScript took 33ms
[Violation] Forced reflow while executing JavaScript took 32ms
[Violation] Forced reflow while executing JavaScript took 34ms
[Violation] Forced reflow while executing JavaScript took 33ms
[Violation] Forced reflow while executing JavaScript took 33ms
[Violation] Forced reflow while executing JavaScript took 45ms
[Violation] Forced reflow while executing JavaScript took 45ms
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Registering notifications container as a menu
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Notifications permissions granted
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Has notify_push enabled, slowing polling to 15 minutes
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Polling interval updated to 900000
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Started background fetcher as session_keepalive is enabled
NotificationsApp-CX_2Ib0T.chunk.mjs:34 Got notification data, restoring default polling interval.
theming:1 Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received
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 freeze on the Theming admin page while moving through the colour shades, and inspect the browser performance output alongside the adminSettings.js entries and forced-reflow warnings in the report. Done means selecting a colour, closing the picker, saving, and seeing the background colour applied without the page freezing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100