public class

SafeHtmlHostedModeUtils

extends Object
java.lang.Object
   ↳ com.google.gwt.safehtml.shared.SafeHtmlHostedModeUtils

Class Overview

SafeHtml utilities whose implementation differs between Development and Production Mode.

This class has a super-source peer that provides the Production Mode implementation.

Summary

Constants
String FORCE_CHECK_COMPLETE_HTML If true, perform checks in server-side code.
Public Constructors
SafeHtmlHostedModeUtils()
Public Methods
static void maybeCheckCompleteHtml(String html)
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 {@value FORCE_CHECK_COMPLETE_HTML} property.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String FORCE_CHECK_COMPLETE_HTML

If true, perform checks in server-side code.

Constant Value: "com.google.gwt.safehtml.ForceCheckCompleteHtml"

Public Constructors

public SafeHtmlHostedModeUtils ()

Public Methods

public static void maybeCheckCompleteHtml (String html)

Checks if the provided HTML string is complete (ends in "inner HTML" context).

This method parses the provided string as HTML and determines the HTML context at the end of the string. If the context is not "inner HTML text", an IllegalArgumentException or AssertionError is thrown.

For example, this check will pass for the following strings:

<foo>blah
   baz<em>foo</em> <x a="b">hello
 

The check will fail 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 check will pass 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.

This check is intended to assert a convention-of-use constraint of appendHtmlConstant(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:

  • In client-side code in Development Mode,
  • In server-side code if assertions are enabled,
  • In server-side code if the property com.google.gwt.safehtml.ForceCheckCompleteHtml is set.
  • In server-side code if setForceCheckCompleteHtml(boolean) has been called with a true argument.

Parameters
html the HTML to check

public 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.

Parameters
check if true, perform server-side checks.

public 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 {@value FORCE_CHECK_COMPLETE_HTML} property.