diff --git a/web/app.js b/web/app.js index fd5cf3817..89be5b082 100644 --- a/web/app.js +++ b/web/app.js @@ -529,7 +529,8 @@ const PDFViewerApplication = { linkService, overlayManager, /* ltr = */ l10n.getDirection() === "ltr", - hasForcedColors + hasForcedColors, + abortSignal ) : null; @@ -761,6 +762,7 @@ const PDFViewerApplication = { eventBus, l10n, enableSplitMerge, + globalAbortSignal: abortSignal, }); this.viewsManager.onToggled = this.forceRendering.bind(this); this.viewsManager.onUpdateThumbnails = () => { diff --git a/web/comment_manager.js b/web/comment_manager.js index 9da5b24fe..394a01ee4 100644 --- a/web/comment_manager.js +++ b/web/comment_manager.js @@ -45,7 +45,8 @@ class CommentManager { linkService, overlayManager, ltr, - hasForcedColors + hasForcedColors, + globalAbortSignal ) { const dateFormat = new Intl.DateTimeFormat(undefined, { dateStyle: "long", @@ -69,7 +70,8 @@ class CommentManager { linkService, this.#popup, dateFormat, - ltr + ltr, + globalAbortSignal ); this.#popup.sidebar = this.#sidebar; CommentManager.#hasForcedColors = hasForcedColors; @@ -188,12 +190,14 @@ class CommentSidebar extends Sidebar { linkService, popup, dateFormat, - ltr + ltr, + globalAbortSignal ) { super( { sidebar, resizer: sidebarResizer, toggleButton: commentToolbarButton }, ltr, - /* isResizerOnTheLeft = */ true + /* isResizerOnTheLeft = */ true, + globalAbortSignal ); this.#sidebarTitle = sidebarTitle; this.#commentsList = commentsList; diff --git a/web/sidebar.js b/web/sidebar.js index e4e560630..44122528a 100644 --- a/web/sidebar.js +++ b/web/sidebar.js @@ -54,7 +54,12 @@ class Sidebar { * @param {boolean} ltr * @param {boolean} isResizerOnTheLeft */ - constructor({ sidebar, resizer, toggleButton }, ltr, isResizerOnTheLeft) { + constructor( + { sidebar, resizer, toggleButton }, + ltr, + isResizerOnTheLeft, + globalAbortSignal + ) { this._sidebar = sidebar; this.#coefficient = ltr === isResizerOnTheLeft ? -1 : 1; this.#resizer = resizer; @@ -74,7 +79,7 @@ class Sidebar { toggleButton.addEventListener("click", this.toggle.bind(this)); this._isOpen = false; sidebar.hidden = true; - + globalAbortSignal?.addEventListener("abort", this.destroy.bind(this)); this.#resizeObserver = new ResizeObserver( ([ { diff --git a/web/views_manager.js b/web/views_manager.js index 0e4b68261..b414d06ce 100644 --- a/web/views_manager.js +++ b/web/views_manager.js @@ -99,6 +99,7 @@ class ViewsManager extends Sidebar { eventBus, l10n, enableSplitMerge = false, + globalAbortSignal, }) { super( { @@ -107,7 +108,8 @@ class ViewsManager extends Sidebar { toggleButton, }, l10n.getDirection() === "ltr", - /* isResizerOnTheLeft = */ false + /* isResizerOnTheLeft = */ false, + globalAbortSignal ); this.isOpen = false; this.active = SidebarView.THUMBS;