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

Unified Diff: sdk/lib/html/dartium/html_dartium.dart

Issue 1236413002: Make sure NodeValidator uriAttributes aren't passed as attributes (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: And regenerate libraries after formatting Created 5 years, 5 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:
Download patch
Index: sdk/lib/html/dartium/html_dartium.dart
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index e612c4518e75ea8b33c3e73cde6a2f7a16a8b147..218dc5129906b9f4a74c49c6f68ab1a71180e235 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -40352,17 +40352,17 @@ class NodeValidatorBuilder implements NodeValidator {
}
class _SimpleNodeValidator implements NodeValidator {
- final Set<String> allowedElements;
- final Set<String> allowedAttributes;
- final Set<String> allowedUriAttributes;
+ final Set<String> allowedElements = new Set<String>();
+ final Set<String> allowedAttributes = new Set<String>();
+ final Set<String> allowedUriAttributes = new Set<String>();
final UriPolicy uriPolicy;
factory _SimpleNodeValidator.allowNavigation(UriPolicy uriPolicy) {
return new _SimpleNodeValidator(uriPolicy,
- allowedElements: [
+ allowedElements: const [
'A',
'FORM'],
- allowedAttributes: [
+ allowedAttributes: const [
'A::accesskey',
'A::coords',
'A::hreflang',
@@ -40379,7 +40379,7 @@ class _SimpleNodeValidator implements NodeValidator {
'FORM::novalidate',
'FORM::target',
],
- allowedUriAttributes: [
+ allowedUriAttributes: const [
'A::href',
'FORM::action',
]);
@@ -40387,10 +40387,10 @@ class _SimpleNodeValidator implements NodeValidator {
factory _SimpleNodeValidator.allowImages(UriPolicy uriPolicy) {
return new _SimpleNodeValidator(uriPolicy,
- allowedElements: [
+ allowedElements: const [
'IMG'
],
- allowedAttributes: [
+ allowedAttributes: const [
'IMG::align',
'IMG::alt',
'IMG::border',
@@ -40402,14 +40402,14 @@ class _SimpleNodeValidator implements NodeValidator {
'IMG::vspace',
'IMG::width',
],
- allowedUriAttributes: [
+ allowedUriAttributes: const [
'IMG::src',
]);
}
factory _SimpleNodeValidator.allowTextElements() {
return new _SimpleNodeValidator(null,
- allowedElements: [
+ allowedElements: const [
'B',
'BLOCKQUOTE',
'BR',
@@ -40437,13 +40437,18 @@ class _SimpleNodeValidator implements NodeValidator {
*/
_SimpleNodeValidator(this.uriPolicy,
{Iterable<String> allowedElements, Iterable<String> allowedAttributes,
- Iterable<String> allowedUriAttributes}):
- this.allowedElements = allowedElements != null ?
- new Set.from(allowedElements) : new Set(),
- this.allowedAttributes = allowedAttributes != null ?
- new Set.from(allowedAttributes) : new Set(),
- this.allowedUriAttributes = allowedUriAttributes != null ?
- new Set.from(allowedUriAttributes) : new Set();
+ Iterable<String> allowedUriAttributes}) {
+ this.allowedElements.addAll(allowedElements ?? const []);
+ allowedAttributes = allowedAttributes ?? const [];
+ allowedUriAttributes = allowedUriAttributes ?? const [];
+ var legalAttributes = allowedAttributes.where(
+ (x) => !_Html5NodeValidator._uriAttributes.contains(x));
+ var extraUriAttributes = allowedAttributes.where(
+ (x) => _Html5NodeValidator._uriAttributes.contains(x));
+ this.allowedAttributes.addAll(legalAttributes);
+ this.allowedUriAttributes.addAll(allowedUriAttributes);
+ this.allowedUriAttributes.addAll(extraUriAttributes);
+ }
bool allowsElement(Element element) {
return allowedElements.contains(element.tagName);

Powered by Google App Engine
This is Rietveld 408576698