Changes by Marius Dumitru Florea on 22/Nov/24 14:44
Fix Version:
16.10.0
Fix Version:
16.4.6
Version:
16.8.0-rc-1
Version:
16.4.5
Assignee:
Marius Dumitru Florea
Tests:
Integration
1 comment
Marius Dumitru Florea on 22/Nov/24 14:44
The current implementation of the Icon Service used by the icon quick action is very inefficient:
It fetches all the icons of a given icon theme in a single HTTP request, and it filters the icons client side. For Silk icon theme this means a single request to fetch 1105 icons. Each icon needs to be rendered server side. On my laptop this takes at least 10s, so above the default Selenium wait time.
it caches the response after receiving it, so if you type (i.e. filter the icons) before the dropdown is shown (as in the failing test) you trigger new requests to fetch all icons. This slows down the server even more. The failing test types "wiki" which means up to 5 (duplicated) requests to render and fetch 1k icons.
To improve this I added a parameter to the IconPicker service to filter the icons server side (prefix). I also changed the Icon Service to cache the promise not the result, so that I can return existing promises, thus avoiding duplicate HTTP requests.
This, of course, doesn't fix the query for all icons which still takes 10s, but if you continue typing you get fast results, and the request for all icons will eventually return and its result is cached in case you delete all typed characters (used to filter the icons).
This message was sent by Atlassian Jira (v9.3.0#930000-sha1:287aeb6)
If image attachments aren't displayed, see this article.