Give the UiBinder safehtml warning once per compile.
Review at http://gwt-code-reviews.appspot.com/1434801
Review by: hermes@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10147 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/uibinder/elementparsers/DockPanelParser.java b/user/src/com/google/gwt/uibinder/elementparsers/DockPanelParser.java
index 8151147..7e66ece 100644
--- a/user/src/com/google/gwt/uibinder/elementparsers/DockPanelParser.java
+++ b/user/src/com/google/gwt/uibinder/elementparsers/DockPanelParser.java
@@ -43,9 +43,6 @@
public void parse(XMLElement elem, String fieldName, JClassType type,
UiBinderWriter writer) throws UnableToCompleteException {
- writer.warn(elem,
- "%1$s:%2$s is deprecated. Use the %1$s:DockLayoutPanel instead.",
- elem.getPrefix(), elem.getLocalName());
// Parse children.
for (XMLElement child : elem.consumeChildElements()) {
// DockPanel can only contain Dock elements.
diff --git a/user/src/com/google/gwt/uibinder/elementparsers/StackPanelParser.java b/user/src/com/google/gwt/uibinder/elementparsers/StackPanelParser.java
index 1c08ffc..679a265 100644
--- a/user/src/com/google/gwt/uibinder/elementparsers/StackPanelParser.java
+++ b/user/src/com/google/gwt/uibinder/elementparsers/StackPanelParser.java
@@ -29,9 +29,6 @@
public void parse(XMLElement elem, String fieldName, JClassType type,
UiBinderWriter writer) throws UnableToCompleteException {
- writer.warn(elem,
- "%1$s:%2$s is deprecated. Use the %1$s:StackLayoutPanel instead.",
- elem.getPrefix(), elem.getLocalName());
// Parse children.
for (XMLElement child : elem.consumeChildElements()) {
diff --git a/user/src/com/google/gwt/uibinder/elementparsers/TabPanelParser.java b/user/src/com/google/gwt/uibinder/elementparsers/TabPanelParser.java
index f5c4730..c7e45f6 100644
--- a/user/src/com/google/gwt/uibinder/elementparsers/TabPanelParser.java
+++ b/user/src/com/google/gwt/uibinder/elementparsers/TabPanelParser.java
@@ -30,9 +30,6 @@
public void parse(XMLElement panelElem, String fieldName, JClassType type,
UiBinderWriter writer) throws UnableToCompleteException {
- writer.warn(panelElem,
- "%1$s:%2$s is deprecated. Use the %1$s:TabLayoutPanel instead.",
- panelElem.getPrefix(), panelElem.getLocalName());
// Parse children.
for (XMLElement tabElem : panelElem.consumeChildElements()) {
// TabPanel can only contain Tab elements.
diff --git a/user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java b/user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java
index ede0383..b8175e9 100644
--- a/user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java
+++ b/user/src/com/google/gwt/uibinder/rebind/UiBinderGenerator.java
@@ -49,6 +49,8 @@
private static final String XSS_SAFE_CONFIG_PROPERTY = "UiBinder.useSafeHtmlTemplates";
private static final String LAZY_WIDGET_BUILDERS_PROPERTY = "UiBinder.useLazyWidgetBuilders";
+
+ private static boolean gaveSafeHtmlWarning;
/**
* Given a UiBinder interface, return the path to its ui.xml file, suitable
@@ -214,10 +216,11 @@
Boolean rtn = extractConfigProperty(
logger, propertyOracle, XSS_SAFE_CONFIG_PROPERTY, true);
- if (!rtn) {
+ if (!gaveSafeHtmlWarning && !rtn) {
logger.warn("Configuration property %s is false! UiBinder SafeHtml integration is off, "
+ "leaving your users more vulnerable to cross-site scripting attacks.",
XSS_SAFE_CONFIG_PROPERTY);
+ gaveSafeHtmlWarning = true;
}
return rtn;
}