Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Unified Diff: sdk/lib/convert/html_escape.dart

Issue 24339002: Escape slash since it helps to end an HTML entity. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/lib/convert/html_escape_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/convert/html_escape.dart
diff --git a/sdk/lib/convert/html_escape.dart b/sdk/lib/convert/html_escape.dart
index dd9f3e710ea2d939e5312f1fae1d1a14b5cf529e..6e9c5c1650ad962207502a2568de3d818c029d57 100644
--- a/sdk/lib/convert/html_escape.dart
+++ b/sdk/lib/convert/html_escape.dart
@@ -12,22 +12,23 @@ class HtmlEscapeMode {
final bool escapeLtGt;
final bool escapeQuot;
final bool escapeApos;
+ final bool escapeSlash;
// TODO(floitsch) - Document - Issue 13097
static const HtmlEscapeMode UNKNOWN =
- const HtmlEscapeMode._('unknown', true, true, true);
+ const HtmlEscapeMode._('unknown', true, true, true, true);
// TODO(floitsch) - Document - Issue 13097
static const HtmlEscapeMode ATTRIBUTE =
- const HtmlEscapeMode._('attribute', false, true, false);
+ const HtmlEscapeMode._('attribute', false, true, false, false);
// TODO(floitsch) - Document - Issue 13097
static const HtmlEscapeMode ELEMENT =
- const HtmlEscapeMode._('element', true, false, false);
+ const HtmlEscapeMode._('element', true, false, false, true);
// TODO(floitsch) - Document - Issue 13097
const HtmlEscapeMode._(this._name, this.escapeLtGt, this.escapeQuot,
- this.escapeApos);
+ this.escapeApos, this.escapeSlash);
String toString() => _name;
}
@@ -55,9 +56,10 @@ class HtmlEscape extends Converter<String, String> {
case '&': replace = '&amp;'; break;
case '\u00A0'/*NO-BREAK SPACE*/: replace = '&nbsp;'; break;
case '"': if (mode.escapeQuot) replace = '&quot;'; break;
- case "'": if (mode.escapeApos) replace = '&apos;'; break;
+ case "'": if (mode.escapeApos) replace = '&#x27;'; break;
case '<': if (mode.escapeLtGt) replace = '&lt;'; break;
case '>': if (mode.escapeLtGt) replace = '&gt;'; break;
+ case '/': if (mode.escapeSlash) replace = '&#x2F;'; break;
}
if (replace != null) {
if (result == null) result = new StringBuffer(text.substring(start, i));
« no previous file with comments | « no previous file | tests/lib/convert/html_escape_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698