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

Side by Side Diff: tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate

Issue 16374007: First rev of Safe DOM (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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of $LIBRARYNAME; 5 part of $LIBRARYNAME;
6 6
7 $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { 7 $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
8 factory $CLASSNAME() => document.createDocumentFragment(); 8 factory $CLASSNAME() => document.createDocumentFragment();
9 9
10 factory $CLASSNAME.html(String html) { 10 factory $CLASSNAME.html(String html,
11 final fragment = new DocumentFragment(); 11 {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
12 fragment.innerHtml = html; 12
13 return fragment; 13 return document.body.createFragment(html,
14 validator: validator, treeSanitizer: treeSanitizer);
14 } 15 }
15 16
16 factory $CLASSNAME.svg(String svgContent) { 17 factory $CLASSNAME.svg(String svgContent,
17 final fragment = new DocumentFragment(); 18 {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
18 final e = new svg.SvgSvgElement();
19 e.innerHtml = svgContent;
20 19
21 // Copy list first since we don't want liveness during iteration. 20 return new svg.SvgSvgElement().createFragment(svgContent,
22 final List nodes = new List.from(e.nodes); 21 validator: validator, treeSanitizer: treeSanitizer);
23 fragment.nodes.addAll(nodes);
24 return fragment;
25 } 22 }
26 23
27 $if DART2JS 24 $if DART2JS
28 // Native field is used only by Dart code so does not lead to instantiation 25 // Native field is used only by Dart code so does not lead to instantiation
29 // of native classes 26 // of native classes
30 @Creates('Null') 27 @Creates('Null')
31 $endif 28 $endif
32 List<Element> _children; 29 List<Element> _children;
33 30
34 List<Element> get children { 31 List<Element> get children {
(...skipping 15 matching lines...) Expand all
50 47
51 List<Element> queryAll(String selectors) => 48 List<Element> queryAll(String selectors) =>
52 new _FrozenElementList._wrap(_querySelectorAll(selectors)); 49 new _FrozenElementList._wrap(_querySelectorAll(selectors));
53 50
54 String get innerHtml { 51 String get innerHtml {
55 final e = new Element.tag("div"); 52 final e = new Element.tag("div");
56 e.append(this.clone(true)); 53 e.append(this.clone(true));
57 return e.innerHtml; 54 return e.innerHtml;
58 } 55 }
59 56
60 // TODO(nweiz): Do we want to support some variant of innerHtml for XML and/or
61 // SVG strings?
62 void set innerHtml(String value) { 57 void set innerHtml(String value) {
58 this.setInnerHtml(value);
59 }
60
61 void setInnerHtml(String html,
62 {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
63
63 this.nodes.clear(); 64 this.nodes.clear();
64 65 append(document.body.createFragment(
65 final e = new Element.tag("div"); 66 html, validator: validator, treeSanitizer: treeSanitizer));
66 e.innerHtml = value;
67
68 // Copy list first since we don't want liveness during iteration.
69 List nodes = new List.from(e.nodes, growable: false);
70 this.nodes.addAll(nodes);
71 } 67 }
72 68
73 /** 69 /**
74 * Adds the specified text as a text node after the last child of this 70 * Adds the specified text as a text node after the last child of this
75 * document fragment. 71 * document fragment.
76 */ 72 */
77 void appendText(String text) { 73 void appendText(String text) {
78 this.append(new Text(text)); 74 this.append(new Text(text));
79 } 75 }
80 76
81 77
82 /** 78 /**
83 * Parses the specified text as HTML and adds the resulting node after the 79 * Parses the specified text as HTML and adds the resulting node after the
84 * last child of this document fragment. 80 * last child of this document fragment.
85 */ 81 */
86 void appendHtml(String text) { 82 void appendHtml(String text) {
87 this.append(new DocumentFragment.html(text)); 83 this.append(new DocumentFragment.html(text));
88 } 84 }
89 85
90 $!MEMBERS 86 $!MEMBERS
91 } 87 }
OLDNEW
« no previous file with comments | « tools/dom/templates/html/dartium/html_dartium.darttemplate ('k') | tools/dom/templates/html/impl/impl_Element.darttemplate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698