Change:
profile on startup and have a css file opened the registers a fs provider for this somehow ends up causing a dom layout via the breadcrumbs <img width="606" alt="image" src="https://user-"
The trigger is that registering a file system causes a label service change event which causes breadcrumbs to re-render. Tho, we can likely optimise this

Discussion:
} private _reveal(nth: number, minimal: boolean): void { <ins> if (nth < 0 || nth >= this._nodes.length) { return; } </ins> const node = this._nodes[nth]; <del> if (node) { const { width } = this._scrollable.getScrollDimensions(); const { scrollLeft } = this._scrollable.getScrollPosition(); if (!minimal || node.offsetLeft > scrollLeft + width || node.offsetLeft < scrollLeft) { this._scrollable.setRevealOnScroll(false); this._scrollable.setScrollPosition({ scrollLeft: node.offsetLeft }); this._scrollable.setRevealOnScroll(true); } </del> <ins> if (!node) { return; } const { width } = this._scrollable.getScrollDimensions(); const { scrollLeft } = this._scrollable.getScrollPosition(); if (!minimal || node.offsetLeft > scrollLeft + width || node.offsetLeft < scrollLeft) { this._scrollable.setRevealOnScroll(false); this._scrollable.setScrollPosition({ scrollLeft: node.offsetLeft }); this._scrollable.setRevealOnScroll(true); </ins> } }

import { tail } from 'vs/base/common/arrays'; import { timeout } from 'vs/base/common/async'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; <del> import { combinedDisposable, DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { combinedDisposable, DisposableStore, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle'; </ins> import { extUri } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/breadcrumbscontrol';

private readonly _disposables = new DisposableStore(); private readonly _breadcrumbsDisposables = new DisposableStore(); private readonly _labels: ResourceLabels; <ins> private readonly _model = new MutableDisposable<BreadcrumbsModel>(); </ins> private _breadcrumbsPickerShowing = false; private _breadcrumbsPickerIgnoreOnceItem: BreadcrumbsItem | undefined;

this.domNode.remove(); } <ins> get model(): BreadcrumbsModel | undefined { return this._model.value; } </ins> layout(dim: dom.Dimension | undefined): void { this._widget.layout(dim); }

fileInfoUri ?? uri, this._editorGroup.activeEditorPane ); <ins> this._model.value = model; </ins> this.domNode.classList.toggle('backslash-path', this._labelService.getSeparator(uri.scheme, uri.authority) === '');

updateBreadcrumbs(); this._breadcrumbsDisposables.clear(); this._breadcrumbsDisposables.add(listener); <del> this._breadcrumbsDisposables.add(model); </del> <ins> this._breadcrumbsDisposables.add(toDisposable(() => this._model.clear())); </ins> this._breadcrumbsDisposables.add(configListener); this._breadcrumbsDisposables.add(toDisposable(() => this._widget.setItems([])));

this.breadcrumbsControl = this.instantiationService.createInstance(BreadcrumbsControl, container, options, this.group); } <del> this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(() => { </del> <ins> this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(e => { if (this.breadcrumbsControl?.model && this.breadcrumbsControl.model.resource.scheme !== e.scheme) { // ignore if the scheme of the breadcrumbs resource is not affected return; } </ins> if (this.breadcrumbsControl?.update()) { this.handleBreadcrumbsEnablementChange(); }