From 510c9ef739b109d0b75315654bd65499b9ac1e6d Mon Sep 17 00:00:00 2001 From: Adrien Siami Date: Thu, 8 Feb 2024 16:08:24 +0100 Subject: [PATCH] Stop reloading turbo frames when complete attribute changes --- src/core/frames/frame_controller.js | 22 ++++++---------------- src/elements/frame_element.js | 6 ++---- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/core/frames/frame_controller.js b/src/core/frames/frame_controller.js index e82e097f4..07764fc86 100644 --- a/src/core/frames/frame_controller.js +++ b/src/core/frames/frame_controller.js @@ -90,20 +90,12 @@ export class FrameController { sourceURLReloaded() { const { src } = this.element - this.#ignoringChangesToAttribute("complete", () => { - this.element.removeAttribute("complete") - }) + this.element.removeAttribute("complete") this.element.src = null this.element.src = src return this.element.loaded } - completeChanged() { - if (this.#isIgnoringChangesTo("complete")) return - - this.#loadSourceURL() - } - loadingStyleChanged() { if (this.loadingStyle == FrameLoadingStyle.lazy) { this.appearanceObserver.start() @@ -528,13 +520,11 @@ export class FrameController { } set complete(value) { - this.#ignoringChangesToAttribute("complete", () => { - if (value) { - this.element.setAttribute("complete", "") - } else { - this.element.removeAttribute("complete") - } - }) + if (value) { + this.element.setAttribute("complete", "") + } else { + this.element.removeAttribute("complete") + } } get isActive() { diff --git a/src/elements/frame_element.js b/src/elements/frame_element.js index 4feb36713..8dc2890f3 100644 --- a/src/elements/frame_element.js +++ b/src/elements/frame_element.js @@ -25,7 +25,7 @@ export class FrameElement extends HTMLElement { loaded = Promise.resolve() static get observedAttributes() { - return ["disabled", "complete", "loading", "src"] + return ["disabled", "loading", "src"] } constructor() { @@ -48,11 +48,9 @@ export class FrameElement extends HTMLElement { attributeChangedCallback(name) { if (name == "loading") { this.delegate.loadingStyleChanged() - } else if (name == "complete") { - this.delegate.completeChanged() } else if (name == "src") { this.delegate.sourceURLChanged() - } else { + } else if (name == "disabled") { this.delegate.disabledChanged() } }