From ed73846b763c387d12002306348864580032de25 Mon Sep 17 00:00:00 2001 From: Logan Serman Date: Mon, 17 Oct 2022 15:20:47 -0400 Subject: [PATCH 1/2] Fix navigation when the page contains an iframe with an empty name attribute --- src/observers/link_click_observer.ts | 4 ++++ src/tests/fixtures/navigation.html | 1 + 2 files changed, 5 insertions(+) diff --git a/src/observers/link_click_observer.ts b/src/observers/link_click_observer.ts index 218eb2ba1..4d742e921 100644 --- a/src/observers/link_click_observer.ts +++ b/src/observers/link_click_observer.ts @@ -72,6 +72,10 @@ export class LinkClickObserver { } function doesNotTargetIFrame(anchor: HTMLAnchorElement): boolean { + if (anchor.target === "") { + return true + } + for (const element of document.getElementsByName(anchor.target)) { if (element instanceof HTMLIFrameElement) return false } diff --git a/src/tests/fixtures/navigation.html b/src/tests/fixtures/navigation.html index 0f63df4de..d02f36a37 100644 --- a/src/tests/fixtures/navigation.html +++ b/src/tests/fixtures/navigation.html @@ -75,5 +75,6 @@

Navigation

+ From c88607c2e84965953bbef319a5bf14b313995f0d Mon Sep 17 00:00:00 2001 From: Logan Serman Date: Mon, 17 Oct 2022 15:40:48 -0400 Subject: [PATCH 2/2] Fix frame submit when an iframe with a blank name attribute exists --- src/observers/form_submit_observer.ts | 4 ++++ src/tests/fixtures/form.html | 1 + 2 files changed, 5 insertions(+) diff --git a/src/observers/form_submit_observer.ts b/src/observers/form_submit_observer.ts index 1ef4ca33d..13c6a4450 100644 --- a/src/observers/form_submit_observer.ts +++ b/src/observers/form_submit_observer.ts @@ -60,6 +60,10 @@ function submissionDoesNotDismissDialog(form: HTMLFormElement, submitter?: HTMLE function submissionDoesNotTargetIFrame(form: HTMLFormElement, submitter?: HTMLElement): boolean { const target = submitter?.getAttribute("formtarget") || form.target + if (target === "") { + return true + } + for (const element of document.getElementsByName(target)) { if (element instanceof HTMLIFrameElement) return false } diff --git a/src/tests/fixtures/form.html b/src/tests/fixtures/form.html index 5bae00bf7..3d834d284 100644 --- a/src/tests/fixtures/form.html +++ b/src/tests/fixtures/form.html @@ -330,5 +330,6 @@

Frame: Form

+