/** * A string that is safe to use in HTML context in DOM APIs and HTML documents. * * A SafeHtml is a string-like object that carries the security type contract * that its value as a string will not cause untrusted script execution when * evaluated as HTML in a browser. * * Values of this type are guaranteed to be safe to use in HTML contexts, * such as, assignment to the innerHTML DOM property, or interpolation into * a HTML template in HTML PC_DATA context, in the sense that the use will not * result in a Cross-Site-Scripting vulnerability. * * Instances of this type must be created via the factory methods * (`SafeHtml.create`, `SafeHtml.htmlEscape`), * etc and not by invoking its constructor. The constructor intentionally takes * an extra parameter that cannot be constructed outside of this file and the * type is immutable; hence only a default instance corresponding to the empty * string can be obtained via constructor invocation. * * Creating SafeHtml objects HAS SIDE-EFFECTS due to calling Trusted Types Web * API. * * Note that there is no `SafeHtml.fromConstant`. The reason is that * the following code would create an unsafe HTML: * * ``` * SafeHtml.concat( * SafeHtml.fromConstant(Const.from('