[nwd] Patching jQuery violations Change-Id: I00a8395660cca59207db0b94d7168cca784b5095
diff --git a/jquery.modal.js b/jquery.modal.js index 02c522d..9add4fd 100644 --- a/jquery.modal.js +++ b/jquery.modal.js
@@ -1,6 +1,6 @@ /* A simple jQuery modal (http://github.com/kylefox/jquery-modal) - Version 0.9.1 + Version 0.9.2 */ (function (factory) { @@ -115,7 +115,15 @@ block: function() { this.$elm.trigger($.modal.BEFORE_BLOCK, [this._ctx()]); this.$body.css('overflow','hidden'); - this.$blocker = $('<div class="' + this.options.blockerClass + ' blocker current"></div>').appendTo(this.$body); + if (window.trustedTypes && window.trustedTypes.createPolicy) { + const policy = self.trustedTypes.createPolicy('jquery-modal-fix-1', { + createHTML: function(_ignored) { return this.$body } + }); + safeBody = policy.createHTML('_ignored'); + } else { + safeBody = this.$body; + } + this.$blocker = $('<div></div>').addClass(this.options.blockerClass + ' blocker current').appendTo(safeBody); selectCurrent(); if(this.options.doFade) { this.$blocker.css('opacity',0).animate({opacity: 1}, this.options.fadeDuration); @@ -169,8 +177,16 @@ showSpinner: function() { if (!this.options.showSpinner) return; - this.spinner = this.spinner || $('<div class="' + this.options.modalClass + '-spinner"></div>') - .append(this.options.spinnerHtml); + if (window.trustedTypes && window.trustedTypes.createPolicy) { + const policy = self.trustedTypes.createPolicy('jquery-modal-fix-2', { + createHTML: function(_ignored) { return this.options.spinnerHtml } + }); + safeSpinnerHtml = policy.createHTML('_ignored'); + } else { + safeSpinnerHtml = this.options.spinnerHtml; + } + this.spinner = this.spinner || $('<div></div>').addClass(this.options.modalClass + '-spinner') + .append(safeSpinnerHtml); this.$body.append(this.spinner); this.spinner.show(); }, @@ -181,7 +197,7 @@ //Return context for custom events _ctx: function() { - return { elm: this.$elm, $elm: this.$elm, $blocker: this.$blocker, options: this.options }; + return { elm: this.$elm, $elm: this.$elm, $blocker: this.$blocker, options: this.options, $anchor: this.anchor }; } };