Ignore external <form>
submissions
#437
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #435
When observing
<form>
submissions (page-wide submissions, submissionswithin a
<turbo-frame>
, or submissions targeting a<turbo-frame>
),ignore any with an
[action]
(or submitter[formaction]
) attributethat targets an external URL.
To determine whether or not a URL is "external", re-use the existing
locationIsVisitable()
utility function used by theSession
todetermine whether or not to navigate an
<a>
element.The existing
locationIsVisitable()
calls depend on a "root" locationread from a
PageSnapshot
instance. TheFrameController
andFrameRedirector
do not have access to such an instance, so the<meta name="turbo-root" content="...">
element reading abstracted away by thePageSnapshot
is re-implemented across both call sites. When aturbo-root
"setting" does not exist, treat/
as the root.