/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'jquery',
'jquery-ui-modules/widget'
// 'jquery-ui-modules/dialog' - do not enable this dependency because this is already a mixin for the dialog ui component
], function ($) {
'use strict';
/**
* Patch for CVE-2016-7103 (XSS vulnerability).
* Can safely remove only when jQuery UI is upgraded to >= 1.12.x.
* https://www.cvedetails.com/cve/CVE-2016-7103/
*/
function dialogPatch() {
$.widget('ui.dialog', $.ui.dialog, {
/** @inheritdoc */
_createTitlebar: function () {
this.options.closeText = $('').text('' + this.options.closeText).html();
this._superApply();
},
/** @inheritdoc */
_setOption: function (key, value) {
if (key === 'closeText') {
value = $('').text('' + value).html();
}
this._super(key, value);
}
});
}
return function () {
var majorVersion = $.ui.version.split('.')[0],
minorVersion = $.ui.version.split('.')[1];
if (majorVersion === 1 && minorVersion >= 12 || majorVersion >= 2) {
console.warn('jQuery patch for CVE-2016-7103 is no longer necessary, and should be removed');
}
dialogPatch();
};
});