Deprecate Form.findMatchingInput
Prototype extension in favor of a new non-Prototype replacement
#8008
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.
Jenkins currently extends Prototype's
Form
class with a Jenkins-specificForm.findMatchingInput
, which currently does nothing at all when Prototype is disabled. This is used in several plugins and there is no obvious generic replacement since this is very Jenkins-specific layout. So this PR moves the logic to a newfindMatchingFormInput
function and rewrites it to not depend on Prototype. The PrototypeForm.findMatchingInput
calling convention is retained for compatibility, but consumers are encouraged to move to the newfindMatchingFormInput
once their core is bumped to include this PR. And to encourage consumers to do this, I have implemented the deprecated Prototype version in terms of the new non-deprecated version, logging a warning first that instructs the plugin developer about how to migrate.Testing done
I installed the Confluence Publisher plugin which uses this code path, and I set a breakpoint on the deprecated entrypoint. I verified that the warning was logged, that the code execution went into the new implementation, and that the new implementation correctly returned a non-null value.
Proposed changelog entries
Developer: Support searches for matching form elements without the use of the Prototype JavaScript framework.
Proposed upgrade guidelines
N/A
Submitter checklist
@Restricted
or have@since TODO
Javadocs, as appropriate.@Deprecated(since = "TODO")
or@Deprecated(forRemoval = true, since = "TODO")
, if applicable.eval
to ease future introduction of Content Security Policy (CSP) directives (see documentation).Desired reviewers
@mention
Maintainer checklist
Before the changes are marked as
ready-for-merge
:upgrade-guide-needed
label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).lts-candidate
to be considered (see query).