]> source.dussan.org Git - vaadin-framework.git/commitdiff
Change Notification default to no allow HTML (#9066)
authorLeif Åstrand <leif@vaadin.com>
Fri, 29 Jun 2012 08:49:30 +0000 (11:49 +0300)
committerLeif Åstrand <leif@vaadin.com>
Fri, 29 Jun 2012 08:49:30 +0000 (11:49 +0300)
src/com/vaadin/ui/Notification.java
src/com/vaadin/ui/Root.java
tests/testbench/com/vaadin/tests/components/customfield/BooleanFieldExample.java
tests/testbench/com/vaadin/tests/components/notification/Notifications.java
tests/testbench/com/vaadin/tests/components/richtextarea/RichTextAreaWithKeyboardShortcuts.java
tests/testbench/com/vaadin/tests/integration/LiferayThemeDemo.java
tests/testbench/com/vaadin/tests/minitutorials/v7a1/IntegerTextFieldDataSource.java

index 0358283cb4cfc19da142efbd0617143b44e86303..502e5ff788c3a0534fa90a8aaeb323586d0fe92a 100644 (file)
@@ -76,8 +76,7 @@ public class Notification implements Serializable {
     /**
      * Creates a "humanized" notification message.
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption is by
-     * default rendered as html.
+     * The caption is rendered as plain text with HTML automatically escaped.
      * 
      * @param caption
      *            The message to show
@@ -89,8 +88,7 @@ public class Notification implements Serializable {
     /**
      * Creates a notification message of the specified type.
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption is by
-     * default rendered as html.
+     * The caption is rendered as plain text with HTML automatically escaped.
      * 
      * @param caption
      *            The message to show
@@ -105,8 +103,8 @@ public class Notification implements Serializable {
      * Creates a "humanized" notification message with a bigger caption and
      * smaller description.
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption and
-     * description are by default rendered as html.
+     * The caption and description are rendered as plain text with HTML
+     * automatically escaped.
      * 
      * @param caption
      *            The message caption
@@ -121,8 +119,8 @@ public class Notification implements Serializable {
      * Creates a notification message of the specified type, with a bigger
      * caption and smaller description.
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption and
-     * description are by default rendered as html.
+     * The caption and description are rendered as plain text with HTML
+     * automatically escaped.
      * 
      * @param caption
      *            The message caption
@@ -132,7 +130,7 @@ public class Notification implements Serializable {
      *            The type of message
      */
     public Notification(String caption, String description, int type) {
-        this(caption, description, type, true);
+        this(caption, description, type, false);
     }
 
     /**
@@ -335,8 +333,7 @@ public class Notification implements Serializable {
      * Shows a notification message on the middle of the current page. The
      * message automatically disappears ("humanized message").
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption is
-     * rendered as html.
+     * The caption is rendered as plain text with HTML automatically escaped.
      * 
      * @see #Notification(String)
      * @see #show(Page)
@@ -354,8 +351,7 @@ public class Notification implements Serializable {
      * defined in {@link Notification}, for instance
      * Notification.TYPE_WARNING_MESSAGE.
      * 
-     * Care should be taken to to avoid XSS vulnerabilities as the caption is
-     * rendered as html.
+     * The caption is rendered as plain text with HTML automatically escaped.
      * 
      * @see #Notification(String, int)
      * @see #show(Page)
index 7ae687be7986f70bd872c5a49c11e45be04cca5f..2ca2da05aca8590b99d54890b2c781f790b97e21 100644 (file)
@@ -1075,7 +1075,9 @@ public abstract class Root extends AbstractComponentContainer implements
      */
     @Deprecated
     public void showNotification(String caption) {
-        getPage().showNotification(new Notification(caption));
+        Notification notification = new Notification(caption);
+        notification.setHtmlContentAllowed(true);// Backwards compatibility
+        getPage().showNotification(notification);
     }
 
     /**
@@ -1098,7 +1100,9 @@ public abstract class Root extends AbstractComponentContainer implements
      */
     @Deprecated
     public void showNotification(String caption, int type) {
-        getPage().showNotification(new Notification(caption, type));
+        Notification notification = new Notification(caption, type);
+        notification.setHtmlContentAllowed(true);// Backwards compatibility
+        getPage().showNotification(notification);
     }
 
     /**
@@ -1121,7 +1125,9 @@ public abstract class Root extends AbstractComponentContainer implements
      */
     @Deprecated
     public void showNotification(String caption, String description) {
-        getPage().showNotification(new Notification(caption, description));
+        Notification notification = new Notification(caption, description);
+        notification.setHtmlContentAllowed(true);// Backwards compatibility
+        getPage().showNotification(notification);
     }
 
     /**
@@ -1147,8 +1153,9 @@ public abstract class Root extends AbstractComponentContainer implements
      */
     @Deprecated
     public void showNotification(String caption, String description, int type) {
-        getPage()
-                .showNotification(new Notification(caption, description, type));
+        Notification notification = new Notification(caption, description, type);
+        notification.setHtmlContentAllowed(true);// Backwards compatibility
+        getPage().showNotification(notification);
     }
 
     /**
index 694c5b54f9cc94400361e97dca4a22312aa0194c..88c6f7fc45100aaf2b538b02143ff3bf30cb2b94 100644 (file)
@@ -64,7 +64,7 @@ public class BooleanFieldExample extends TestBase {
             public void buttonClick(ClickEvent event) {
                 form.commit();
                 Notification.show("The custom boolean field value is "
-                        + data.isCustom() + ".<br>"
+                        + data.isCustom() + ".\n"
                         + "The checkbox (default boolean field) value is "
                         + data.isNormal() + ".");
             }
index 5a158c8f039da83fbdb14ee1a2af3cfee76d58ca..b0c597004ecbf6faff8903c0c92df7824bf043b6 100644 (file)
@@ -53,6 +53,7 @@ public class Notifications extends TestBase implements ClickListener {
     public void buttonClick(ClickEvent event) {
         Notification n = new Notification(tf.getValue(),
                 (Integer) type.getValue());
+        n.setHtmlContentAllowed(true);
         n.show(Page.getCurrent());
     }
 }
index 98f31cd68c4e53a74dafffb121f0c3c1ae3a1f10..3b77de8b867776dd463ac96d0ed8208b1a479018 100644 (file)
@@ -3,6 +3,7 @@ package com.vaadin.tests.components.richtextarea;
 import com.vaadin.event.Action;
 import com.vaadin.event.Action.Handler;
 import com.vaadin.event.ShortcutAction;
+import com.vaadin.terminal.Page;
 import com.vaadin.tests.components.TestBase;
 import com.vaadin.ui.AbstractField;
 import com.vaadin.ui.Component;
@@ -31,7 +32,9 @@ public class RichTextAreaWithKeyboardShortcuts extends TestBase {
             String string = f.getValue().toString();
 
             msg += " Value: " + string;
-            Notification.show(msg);
+            Notification notification = new Notification(msg);
+            notification.setHtmlContentAllowed(true);
+            notification.show(Page.getCurrent());
 
         }
 
index 9397206f1e36aac6a7a3c8fb48c80c6bf77fb9b2..78b8f812b94128a0cb852ff61edf8e856127826a 100644 (file)
@@ -596,8 +596,10 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
         Button show = new Button("Humanized Notification",
                 new Button.ClickListener() {
                     public void buttonClick(ClickEvent event) {
-                        new Notification(title.getValue(), message.getValue())
-                                .show(Page.getCurrent());
+                        Notification notification = new Notification(
+                                title.getValue(), message.getValue());
+                        notification.setHtmlContentAllowed(true);
+                        notification.show(Page.getCurrent());
                     }
                 });
         l.addComponent(show);
@@ -606,7 +608,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
         show = new Button("Warning Notification", new Button.ClickListener() {
             public void buttonClick(ClickEvent event) {
                 new Notification(title.getValue(), message.getValue(),
-                        Notification.TYPE_WARNING_MESSAGE).show(Page
+                        Notification.TYPE_WARNING_MESSAGE, true).show(Page
                         .getCurrent());
 
             }
@@ -617,7 +619,8 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
         show = new Button("Error Notification", new Button.ClickListener() {
             public void buttonClick(ClickEvent event) {
                 new Notification(title.getValue(), message.getValue(),
-                        Notification.TYPE_ERROR_MESSAGE).show(Page.getCurrent());
+                        Notification.TYPE_ERROR_MESSAGE, true).show(Page
+                        .getCurrent());
 
             }
         });
@@ -627,7 +630,7 @@ public class LiferayThemeDemo extends Application.LegacyApplication {
         show = new Button("Tray Notification", new Button.ClickListener() {
             public void buttonClick(ClickEvent event) {
                 new Notification(title.getValue(), message.getValue(),
-                        Notification.TYPE_TRAY_NOTIFICATION).show(Page
+                        Notification.TYPE_TRAY_NOTIFICATION, true).show(Page
                         .getCurrent());
 
             }
index dd32242062d3440664cde304cfac2376c7432d14..66185ef6a6f4e6d9b1e2cbd40089e52980a12d34 100644 (file)
@@ -41,8 +41,8 @@ public class IntegerTextFieldDataSource extends AbstractTestRoot {
                 int dataModelValue = myBean.getValue();
 
                 Notification.show("UI value (String): " + uiValue
-                        + "<br />Property value (Integer): " + propertyValue
-                        + "<br />Data model value (int): " + dataModelValue);
+                        + "\nProperty value (Integer): " + propertyValue
+                        + "\nData model value (int): " + dataModelValue);
             }
         });