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

Side by Side Diff: lib/src/encoding_parser.dart

Issue 2560823004: Strong mode fixes for html package (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « lib/dom.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 library encoding_parser; 1 library encoding_parser;
2 2
3 import 'constants.dart'; 3 import 'constants.dart';
4 import 'inputstream.dart'; 4 import 'inputstream.dart';
5 5
6 // TODO(jmesserly): I converted StopIteration to StateError("No more elements"). 6 // TODO(jmesserly): I converted StopIteration to StateError("No more elements").
7 // Seems strange to throw this from outside of an iterator though. 7 // Seems strange to throw this from outside of an iterator though.
8 /// String-like object with an associated position and various extra methods 8 /// String-like object with an associated position and various extra methods
9 /// If the position is ever greater than the string length then an exception is 9 /// If the position is ever greater than the string length then an exception is
10 /// raised. 10 /// raised.
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 } else if (attr[0] == "content") { 193 } else if (attr[0] == "content") {
194 var contentParser = new ContentAttrParser(new EncodingBytes(attr[1])); 194 var contentParser = new ContentAttrParser(new EncodingBytes(attr[1]));
195 var tentativeEncoding = contentParser.parse(); 195 var tentativeEncoding = contentParser.parse();
196 var codec = codecName(tentativeEncoding); 196 var codec = codecName(tentativeEncoding);
197 if (codec != null) { 197 if (codec != null) {
198 encoding = codec; 198 encoding = codec;
199 return false; 199 return false;
200 } 200 }
201 } 201 }
202 } 202 }
203 return true; // unreachable
204 } 203 }
205 204
206 bool handlePossibleStartTag() => handlePossibleTag(false); 205 bool handlePossibleStartTag() => handlePossibleTag(false);
207 206
208 bool handlePossibleEndTag() { 207 bool handlePossibleEndTag() {
209 data.next(); 208 data.next();
210 return handlePossibleTag(true); 209 return handlePossibleTag(true);
211 } 210 }
212 211
213 bool handlePossibleTag(bool endTag) { 212 bool handlePossibleTag(bool endTag) {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 if (isSpaceOrAngleBracket(c)) { 314 if (isSpaceOrAngleBracket(c)) {
316 return [attrName.join(), attrValue.join()]; 315 return [attrName.join(), attrValue.join()];
317 } else if (c == null) { 316 } else if (c == null) {
318 return null; 317 return null;
319 } else if (isLetter(c)) { 318 } else if (isLetter(c)) {
320 attrValue.add(c.toLowerCase()); 319 attrValue.add(c.toLowerCase());
321 } else { 320 } else {
322 attrValue.add(c); 321 attrValue.add(c);
323 } 322 }
324 } 323 }
325 return null; // unreachable
326 } 324 }
327 } 325 }
328 326
329 class ContentAttrParser { 327 class ContentAttrParser {
330 final EncodingBytes data; 328 final EncodingBytes data;
331 329
332 ContentAttrParser(this.data); 330 ContentAttrParser(this.data);
333 331
334 String parse() { 332 String parse() {
335 try { 333 try {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 return null; 367 return null;
370 } 368 }
371 } 369 }
372 } 370 }
373 371
374 bool isSpaceOrAngleBracket(String char) { 372 bool isSpaceOrAngleBracket(String char) {
375 return char == ">" || char == "<" || isWhitespace(char); 373 return char == ">" || char == "<" || isWhitespace(char);
376 } 374 }
377 375
378 typedef bool CharPreciate(String char); 376 typedef bool CharPreciate(String char);
OLDNEW
« no previous file with comments | « lib/dom.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698