From 639dbc5cd7fbe8030a43c7bf581a3760a25a46e1 Mon Sep 17 00:00:00 2001 From: Ebrahim Byagowi Date: Tue, 17 Sep 2024 22:52:48 +0330 Subject: [PATCH] Replace uses of mw.Uri with browser native URL Uses of mediawiki.Uri apparently wasn't explicit but this makes uses of URL's polyfill explicit which later will be removed. Bug: T374314 Change-Id: I62b92b3bc923269226512ab50b0708ce5a382abf --- ReCaptchaNoCaptcha/extension.json | 3 +++ ...e.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js | 14 ++++++-------- Turnstile/extension.json | 3 +++ .../ve.init.mw.TurnstileSaveErrorHandler.js | 14 ++++++-------- hCaptcha/extension.json | 3 +++ .../ve.init.mw.HCaptchaSaveErrorHandler.js | 13 ++++++------- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/ReCaptchaNoCaptcha/extension.json b/ReCaptchaNoCaptcha/extension.json index 52b7f4af..ec47ca1a 100644 --- a/ReCaptchaNoCaptcha/extension.json +++ b/ReCaptchaNoCaptcha/extension.json @@ -36,6 +36,9 @@ }, "ResourceModules": { "ext.confirmEdit.reCaptchaNoCaptcha.visualEditor": { + "dependencies": [ + "web2017-polyfills" + ], "scripts": "ve-confirmedit-reCaptchaNoCaptcha/ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js" } }, diff --git a/ReCaptchaNoCaptcha/resources/ve-confirmedit-reCaptchaNoCaptcha/ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js b/ReCaptchaNoCaptcha/resources/ve-confirmedit-reCaptchaNoCaptcha/ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js index e4d658ba..7bf83270 100644 --- a/ReCaptchaNoCaptcha/resources/ve-confirmedit-reCaptchaNoCaptcha/ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js +++ b/ReCaptchaNoCaptcha/resources/ve-confirmedit-reCaptchaNoCaptcha/ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.js @@ -8,15 +8,13 @@ mw.loader.using( 'ext.visualEditor.targetLoader' ).then( () => { ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.static.name = 'confirmEditNoCaptchaReCaptcha'; ve.init.mw.NoCaptchaReCaptchaSaveErrorHandler.static.getReadyPromise = function () { - const onLoadFn = 'onRecaptchaLoadCallback' + Date.now(); - let deferred, config, scriptURL, params; - if ( !this.readyPromise ) { - deferred = $.Deferred(); - config = mw.config.get( 'wgConfirmEditConfig' ); - scriptURL = new mw.Uri( config.reCaptchaScriptURL ); - params = { onload: onLoadFn, render: 'explicit' }; - scriptURL.query = Object.assign( scriptURL.query, params ); + const deferred = $.Deferred(); + const config = mw.config.get( 'wgConfirmEditConfig' ); + const scriptURL = new URL( config.reCaptchaScriptURL, location.href ); + const onLoadFn = 'onRecaptchaLoadCallback' + Date.now(); + scriptURL.searchParams.set( 'onload', onLoadFn ); + scriptURL.searchParams.set( 'render', 'explicit' ); this.readyPromise = deferred.promise(); window[ onLoadFn ] = deferred.resolve; diff --git a/Turnstile/extension.json b/Turnstile/extension.json index 17bfe7b4..495fac33 100644 --- a/Turnstile/extension.json +++ b/Turnstile/extension.json @@ -37,6 +37,9 @@ }, "ResourceModules": { "ext.confirmEdit.turnstile.visualEditor": { + "dependencies": [ + "web2017-polyfills" + ], "scripts": "ve-confirmedit-turnstile/ve.init.mw.TurnstileSaveErrorHandler.js" } }, diff --git a/Turnstile/resources/ve-confirmedit-turnstile/ve.init.mw.TurnstileSaveErrorHandler.js b/Turnstile/resources/ve-confirmedit-turnstile/ve.init.mw.TurnstileSaveErrorHandler.js index 386eaec8..f35f3883 100644 --- a/Turnstile/resources/ve-confirmedit-turnstile/ve.init.mw.TurnstileSaveErrorHandler.js +++ b/Turnstile/resources/ve-confirmedit-turnstile/ve.init.mw.TurnstileSaveErrorHandler.js @@ -8,15 +8,13 @@ mw.loader.using( 'ext.visualEditor.targetLoader' ).then( () => { ve.init.mw.TurnstileSaveErrorHandler.static.name = 'confirmEditTurnstile'; ve.init.mw.TurnstileSaveErrorHandler.static.getReadyPromise = function () { - const onLoadFn = 'onTurnstileLoadCallback' + Date.now(); - let deferred, config, scriptURL, params; - if ( !this.readyPromise ) { - deferred = $.Deferred(); - config = mw.config.get( 'wgConfirmEditConfig' ); - scriptURL = new mw.Uri( config.turnstileScriptURL ); - params = { onload: onLoadFn, render: 'explicit' }; - scriptURL.query = Object.assign( scriptURL.query, params ); + const deferred = $.Deferred(); + const config = mw.config.get( 'wgConfirmEditConfig' ); + const scriptURL = new URL( config.turnstileScriptURL, location.href ); + const onLoadFn = 'onTurnstileLoadCallback' + Date.now(); + scriptURL.searchParams.set( 'onload', onLoadFn ); + scriptURL.searchParams.set( 'render', 'explicit' ); this.readyPromise = deferred.promise(); window[ onLoadFn ] = deferred.resolve; diff --git a/hCaptcha/extension.json b/hCaptcha/extension.json index 7a1a9923..f7701b6e 100644 --- a/hCaptcha/extension.json +++ b/hCaptcha/extension.json @@ -46,6 +46,9 @@ }, "ResourceModules": { "ext.confirmEdit.hCaptcha.visualEditor": { + "dependencies": [ + "web2017-polyfills" + ], "packageFiles": [ "ve-confirmedit-hCaptcha/ve.init.mw.HCaptchaSaveErrorHandler.js", { diff --git a/hCaptcha/resources/ve-confirmedit-hCaptcha/ve.init.mw.HCaptchaSaveErrorHandler.js b/hCaptcha/resources/ve-confirmedit-hCaptcha/ve.init.mw.HCaptchaSaveErrorHandler.js index aeeba033..ee62559d 100644 --- a/hCaptcha/resources/ve-confirmedit-hCaptcha/ve.init.mw.HCaptchaSaveErrorHandler.js +++ b/hCaptcha/resources/ve-confirmedit-hCaptcha/ve.init.mw.HCaptchaSaveErrorHandler.js @@ -7,14 +7,13 @@ mw.loader.using( 'ext.visualEditor.targetLoader' ).then( () => { ve.init.mw.HCaptchaSaveErrorHandler.static.name = 'confirmEditHCaptcha'; ve.init.mw.HCaptchaSaveErrorHandler.static.getReadyPromise = function () { - const onLoadFn = 'onHcaptchaLoadCallback' + Date.now(); - let deferred, scriptURL, params; - if ( !this.readyPromise ) { - deferred = $.Deferred(); - scriptURL = new mw.Uri( require( './config.json' ).hCaptchaScriptURL ); - params = { onload: onLoadFn, render: 'explicit' }; - scriptURL.query = Object.assign( scriptURL.query, params ); + const deferred = $.Deferred(); + const config = require( './config.json' ); + const scriptURL = new URL( config.hCaptchaScriptURL, location.href ); + const onLoadFn = 'onHcaptchaLoadCallback' + Date.now(); + scriptURL.searchParams.set( 'onload', onLoadFn ); + scriptURL.searchParams.set( 'render', 'explicit' ); this.readyPromise = deferred.promise(); window[ onLoadFn ] = deferred.resolve;