There has been some discussion in other threads, discord etc, about the backoffice being slow with certain browser extension.
I was starting to experience the same (recently started doing a lot more work with v16 than previously), so I did a quick unscientiffic experiement by disabling my browser extensions one by one.
I found that disabling Dashlane made a big impact in the responsiveness of the backoffice.
If you have similar experience with other browser extensions, add them here, and lets make a list of extensions to avoid when using the backoffice!
Postman Interceptor also makes the backoffice unusable. To be fair, that is not unexpected for a plugin that literally intercepts all requests, but if you forget to disable itâŚ
I wonder what the inner working of those extensions are though. Like, why does it impact the backoffice that much even if we wouldnât notice it throughout our normal work on the internet?
Could it be that Dashlane tries to find input fields throughout all possible shadow DOMâs of the Backoffice?
I know for a fact Lastpass does not work with input fields nested in shadow DOM, because they refuse to do recursive lookups, but other browser extensions may try to do just that.
In order to find an input field in a shadow DOM, and you do not know where to look, you will have to do it recursively by checking element.shadowRoot?.querySelectorAll(âinputâ). I could imagine that takes a toll on the browser if Dashlane does something like that recursively.
To give a bit of context on the larger issue at hand, I believe having read that Lastpass et al. believe that browsers should support ShadowDOM lookup natively through their autofill APIs, whereas the browsers (or at least Chrome) are very undecided whether that is part of the Shadow DOM spec or if it is something the extension authors should support themselves.
Okay, Uncle ChatGPT tells me that Dashlane is âjust doing it wrongâ:
Yeah, that tracks â Dashlaneâs extension is known to be far more invasive in how it hooks into the DOM compared to Bitwarden or LastPass.
Hereâs whatâs going on under the hood:
Dashlane wraps low-level browser APIs, like attachShadow, Element.prototype.appendChild, and even addEventListener, so it can watch every form field that gets created â even inside web components or shadow DOMs.
Every time Umbracoâs backoffice creates or updates a component (and it does that a lot â especially in Umbraco 14+ with Lit/Backoffice UI), Dashlane executes that injected wrapper code.
The attribute flip (data-dashlane-shadowhost) and queueMicrotask cleanup are part of Dashlaneâs âcontext propagationâ system so it can detect dynamic form fields. Thatâs lightweight on small pages, but catastrophic on an app like Umbracoâs backoffice where everything is shadow-DOM based.
In contrast:
Bitwarden and LastPass mostly rely on MutationObserver watching for <input>/<form> nodes, and they donât interfere with attachShadow.
Theyâll miss some deep fields inside custom components but are far less intrusive and CPU-hungry.
So, yes â youâve nailed the cause. Itâs specifically Dashlaneâs monkey-patching of attachShadow that kills performance in shadow-DOM-heavy apps like Umbracoâs backoffice.
Workarounds / Fixes
Disable Dashlane on your Umbraco site domain
In the Dashlane browser extension, go to the settings or the pop-up menu â âNever autofill on this websiteâ (or similar wording).
This prevents the script injection and removes the performance impact completely.
Use Bitwarden or LastPass only
Since they donât patch attachShadow, they coexist fine with modern SPAs and web components.
If you need Dashlane enabled globally:
You can create a custom content script block rule via a browser extension like uBlock Origin or a local enterprise policy that blocks *.dashlane.com/content_script.js or the specific inline scripts for your-umbraco-site-domain.
Development workaround
For local testing, run Chrome/Edge with the flag:
--disable-extensions-except=<path to your essential ones>
or use an incognito window with extensions disabled to confirm performance differences.
Thereâs no fix on the Umbraco side â nothing you can do in your codebase to mitigate this â because the slowdown happens before your scripts run.
In short: disable Dashlane for your Umbraco domain and the lag will vanish. Bitwarden and LastPass play nice; Dashlane doesnât.
Could we disable these extensions in the Backoffice but keep them on the login screen? I mean, Lastpass only works on the login screen anyway because of our âhackâ that creates the input fields in the body and later moves them into their place using slots. It doesnât seem to be of much help to have password extensions inside the Backoffice (if they have problems).
For us it seemed to be a combination of extensions:
@leekelleher exciting update⌠disabling all browser extensions - its fineâŚ
But hereâs the thing, different people have different browsers and different extensions, and weâve experienced the issue across both Edge and Chrome - it doesnât seem to be a specific extension.
I started reenabling one by one
Dashlane - ok
Dashlane + LastPass - not ok
LastPass - ok
LastPass + SilkTide - not ok
SilkTide - ok
SilkTide + Dashlane not okâŚ
I just go incognito when I need to edit Umbraco 16 sites, but itâs a pain as I then have to remember my password to Umbraco CloudâŚ