diff --git a/test/driver.js b/test/driver.js index 2eadf239e..0c8550486 100644 --- a/test/driver.js +++ b/test/driver.js @@ -405,14 +405,8 @@ var Driver = (function DriverClosure() { Driver.prototype = { _getQueryStringParameters: function Driver_getQueryStringParameters() { - var queryString = window.location.search.substring(1); - var values = queryString.split("&"); - var parameters = {}; - for (var i = 0, ii = values.length; i < ii; i++) { - var value = values[i].split("="); - parameters[unescape(value[0])] = unescape(value[1]); - } - return parameters; + const queryString = window.location.search.substring(1); + return Object.fromEntries(new URLSearchParams(queryString).entries()); }, run: function Driver_run() { diff --git a/test/resources/reftest-analyzer.js b/test/resources/reftest-analyzer.js index f97f3fb91..b0968dd09 100644 --- a/test/resources/reftest-analyzer.js +++ b/test/resources/reftest-analyzer.js @@ -53,11 +53,8 @@ window.onload = function () { function hashParameters() { const query = window.location.hash.substring(1); const params = new Map(); - for (const part of query.split(/[&;]/)) { - const param = part.split("="), - key = param[0].toLowerCase(), - value = param.length > 1 ? param[1] : ""; - params.set(decodeURIComponent(key), decodeURIComponent(value)); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); } return params; } diff --git a/web/ui_utils.js b/web/ui_utils.js index 72ad3097b..4c9a057cc 100644 --- a/web/ui_utils.js +++ b/web/ui_utils.js @@ -187,11 +187,8 @@ function watchScroll(viewAreaElement, callback) { */ function parseQueryString(query) { const params = new Map(); - for (const part of query.split("&")) { - const param = part.split("="), - key = param[0].toLowerCase(), - value = param.length > 1 ? param[1] : ""; - params.set(decodeURIComponent(key), decodeURIComponent(value)); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); } return params; }