public class SafeHtmlHostedModeUtils
extends java.lang.Object
This class has a super-source peer that provides the Production Mode implementation.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FORCE_CHECK_COMPLETE_HTML
Name of system property that if set, enables checks in server-side code
(even if assertions are disabled).
|
Constructor and Description |
---|
SafeHtmlHostedModeUtils() |
Modifier and Type | Method and Description |
---|---|
static boolean |
isCompleteHtml(java.lang.String html)
Returns whether the provided HTML string is complete (ends in "inner HTML"
context).
|
static void |
maybeCheckCompleteHtml(java.lang.String html)
Conditionally checks if the provided HTML string is complete (ends in "inner HTML"
context).
|
static void |
setForceCheckCompleteHtml(boolean check)
Sets a global flag that controls whether or not
maybeCheckCompleteHtml(String) should perform its check in a
server-side environment. |
static void |
setForceCheckCompleteHtmlFromProperty()
Sets a global flag that controls whether or not
maybeCheckCompleteHtml(String) should perform its check in a
server-side environment from the value of the "com.google.gwt.safehtml.ForceCheckCompleteHtml" property. |
public static final java.lang.String FORCE_CHECK_COMPLETE_HTML
public static boolean isCompleteHtml(java.lang.String html)
This method parses the provided string as HTML and determines the HTML context at the end of the string. This method returns true if and only if the context is "inner HTML text".
For example, this method returns true for the following strings:
<foo>blah
baz<em>foo</em> <x a="b">hello
This method returns false for the following strings:
baz<em>foo</em> <x
baz<em>foo</em> <x a="b
baz<em>foo</em> <x a="b"
Note that the parser is lenient and this method will return true for HTML that is not well-formed, or contains invalid tags, as long as the parser can determine the HTML context at the end of the string.
html
- the HTML to check.public static void maybeCheckCompleteHtml(java.lang.String html)
This check is intended to assert a convention-of-use constraint of SafeHtmlBuilder.appendHtmlConstant(String)
and SafeHtmlUtils.fromSafeConstant(String)
.
Since the check is somewhat expensive, it is intended to run only in the
context of unit-tests or test environments, and not in production
environments. Hence this check will only execute under the following
conditions, and will be short-circuited otherwise:
com.google.gwt.safehtml.ForceCheckCompleteHtml
is set.setForceCheckCompleteHtml(boolean)
has
been called with a true
argument.html
- the HTML to checkisCompleteHtml(String)
public static void setForceCheckCompleteHtml(boolean check)
maybeCheckCompleteHtml(String)
should perform its check in a
server-side environment.check
- if true, perform server-side checks.public static void setForceCheckCompleteHtmlFromProperty()
maybeCheckCompleteHtml(String)
should perform its check in a
server-side environment from the value of the "com.google.gwt.safehtml.ForceCheckCompleteHtml" property.