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

Side by Side Diff: third_party/WebKit/Source/core/html/parser/HTMLTokenizer.cpp

Issue 2583233002: Migrate WTF::Vector::append() to ::push_back() [part 7 of N] (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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/ 3 * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/
4 * Copyright (C) 2010 Google, Inc. All Rights Reserved. 4 * Copyright (C) 2010 Google, Inc. All Rights Reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 HTML_ADVANCE_TO(RCDATAEndTagOpenState); 325 HTML_ADVANCE_TO(RCDATAEndTagOpenState);
326 } else { 326 } else {
327 bufferCharacter('<'); 327 bufferCharacter('<');
328 HTML_RECONSUME_IN(RCDATAState); 328 HTML_RECONSUME_IN(RCDATAState);
329 } 329 }
330 } 330 }
331 END_STATE() 331 END_STATE()
332 332
333 HTML_BEGIN_STATE(RCDATAEndTagOpenState) { 333 HTML_BEGIN_STATE(RCDATAEndTagOpenState) {
334 if (isASCIIUpper(cc)) { 334 if (isASCIIUpper(cc)) {
335 m_temporaryBuffer.append(static_cast<LChar>(cc)); 335 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
336 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 336 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
337 HTML_ADVANCE_TO(RCDATAEndTagNameState); 337 HTML_ADVANCE_TO(RCDATAEndTagNameState);
338 } else if (isASCIILower(cc)) { 338 } else if (isASCIILower(cc)) {
339 m_temporaryBuffer.append(static_cast<LChar>(cc)); 339 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
340 addToPossibleEndTag(static_cast<LChar>(cc)); 340 addToPossibleEndTag(static_cast<LChar>(cc));
341 HTML_ADVANCE_TO(RCDATAEndTagNameState); 341 HTML_ADVANCE_TO(RCDATAEndTagNameState);
342 } else { 342 } else {
343 bufferCharacter('<'); 343 bufferCharacter('<');
344 bufferCharacter('/'); 344 bufferCharacter('/');
345 HTML_RECONSUME_IN(RCDATAState); 345 HTML_RECONSUME_IN(RCDATAState);
346 } 346 }
347 } 347 }
348 END_STATE() 348 END_STATE()
349 349
350 HTML_BEGIN_STATE(RCDATAEndTagNameState) { 350 HTML_BEGIN_STATE(RCDATAEndTagNameState) {
351 if (isASCIIUpper(cc)) { 351 if (isASCIIUpper(cc)) {
352 m_temporaryBuffer.append(static_cast<LChar>(cc)); 352 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
353 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 353 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
354 HTML_ADVANCE_TO(RCDATAEndTagNameState); 354 HTML_ADVANCE_TO(RCDATAEndTagNameState);
355 } else if (isASCIILower(cc)) { 355 } else if (isASCIILower(cc)) {
356 m_temporaryBuffer.append(static_cast<LChar>(cc)); 356 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
357 addToPossibleEndTag(static_cast<LChar>(cc)); 357 addToPossibleEndTag(static_cast<LChar>(cc));
358 HTML_ADVANCE_TO(RCDATAEndTagNameState); 358 HTML_ADVANCE_TO(RCDATAEndTagNameState);
359 } else { 359 } else {
360 if (isTokenizerWhitespace(cc)) { 360 if (isTokenizerWhitespace(cc)) {
361 if (isAppropriateEndTag()) { 361 if (isAppropriateEndTag()) {
362 m_temporaryBuffer.append(static_cast<LChar>(cc)); 362 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
363 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); 363 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
364 } 364 }
365 } else if (cc == '/') { 365 } else if (cc == '/') {
366 if (isAppropriateEndTag()) { 366 if (isAppropriateEndTag()) {
367 m_temporaryBuffer.append(static_cast<LChar>(cc)); 367 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
368 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); 368 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
369 } 369 }
370 } else if (cc == '>') { 370 } else if (cc == '>') {
371 if (isAppropriateEndTag()) { 371 if (isAppropriateEndTag()) {
372 m_temporaryBuffer.append(static_cast<LChar>(cc)); 372 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
373 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState); 373 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
374 } 374 }
375 } 375 }
376 bufferCharacter('<'); 376 bufferCharacter('<');
377 bufferCharacter('/'); 377 bufferCharacter('/');
378 m_token->appendToCharacter(m_temporaryBuffer); 378 m_token->appendToCharacter(m_temporaryBuffer);
379 m_bufferedEndTagName.clear(); 379 m_bufferedEndTagName.clear();
380 m_temporaryBuffer.clear(); 380 m_temporaryBuffer.clear();
381 HTML_RECONSUME_IN(RCDATAState); 381 HTML_RECONSUME_IN(RCDATAState);
382 } 382 }
383 } 383 }
384 END_STATE() 384 END_STATE()
385 385
386 HTML_BEGIN_STATE(RAWTEXTLessThanSignState) { 386 HTML_BEGIN_STATE(RAWTEXTLessThanSignState) {
387 if (cc == '/') { 387 if (cc == '/') {
388 m_temporaryBuffer.clear(); 388 m_temporaryBuffer.clear();
389 ASSERT(m_bufferedEndTagName.isEmpty()); 389 ASSERT(m_bufferedEndTagName.isEmpty());
390 HTML_ADVANCE_TO(RAWTEXTEndTagOpenState); 390 HTML_ADVANCE_TO(RAWTEXTEndTagOpenState);
391 } else { 391 } else {
392 bufferCharacter('<'); 392 bufferCharacter('<');
393 HTML_RECONSUME_IN(RAWTEXTState); 393 HTML_RECONSUME_IN(RAWTEXTState);
394 } 394 }
395 } 395 }
396 END_STATE() 396 END_STATE()
397 397
398 HTML_BEGIN_STATE(RAWTEXTEndTagOpenState) { 398 HTML_BEGIN_STATE(RAWTEXTEndTagOpenState) {
399 if (isASCIIUpper(cc)) { 399 if (isASCIIUpper(cc)) {
400 m_temporaryBuffer.append(static_cast<LChar>(cc)); 400 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
401 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 401 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
402 HTML_ADVANCE_TO(RAWTEXTEndTagNameState); 402 HTML_ADVANCE_TO(RAWTEXTEndTagNameState);
403 } else if (isASCIILower(cc)) { 403 } else if (isASCIILower(cc)) {
404 m_temporaryBuffer.append(static_cast<LChar>(cc)); 404 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
405 addToPossibleEndTag(static_cast<LChar>(cc)); 405 addToPossibleEndTag(static_cast<LChar>(cc));
406 HTML_ADVANCE_TO(RAWTEXTEndTagNameState); 406 HTML_ADVANCE_TO(RAWTEXTEndTagNameState);
407 } else { 407 } else {
408 bufferCharacter('<'); 408 bufferCharacter('<');
409 bufferCharacter('/'); 409 bufferCharacter('/');
410 HTML_RECONSUME_IN(RAWTEXTState); 410 HTML_RECONSUME_IN(RAWTEXTState);
411 } 411 }
412 } 412 }
413 END_STATE() 413 END_STATE()
414 414
415 HTML_BEGIN_STATE(RAWTEXTEndTagNameState) { 415 HTML_BEGIN_STATE(RAWTEXTEndTagNameState) {
416 if (isASCIIUpper(cc)) { 416 if (isASCIIUpper(cc)) {
417 m_temporaryBuffer.append(static_cast<LChar>(cc)); 417 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
418 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 418 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
419 HTML_ADVANCE_TO(RAWTEXTEndTagNameState); 419 HTML_ADVANCE_TO(RAWTEXTEndTagNameState);
420 } else if (isASCIILower(cc)) { 420 } else if (isASCIILower(cc)) {
421 m_temporaryBuffer.append(static_cast<LChar>(cc)); 421 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
422 addToPossibleEndTag(static_cast<LChar>(cc)); 422 addToPossibleEndTag(static_cast<LChar>(cc));
423 HTML_ADVANCE_TO(RAWTEXTEndTagNameState); 423 HTML_ADVANCE_TO(RAWTEXTEndTagNameState);
424 } else { 424 } else {
425 if (isTokenizerWhitespace(cc)) { 425 if (isTokenizerWhitespace(cc)) {
426 if (isAppropriateEndTag()) { 426 if (isAppropriateEndTag()) {
427 m_temporaryBuffer.append(static_cast<LChar>(cc)); 427 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
428 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); 428 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
429 } 429 }
430 } else if (cc == '/') { 430 } else if (cc == '/') {
431 if (isAppropriateEndTag()) { 431 if (isAppropriateEndTag()) {
432 m_temporaryBuffer.append(static_cast<LChar>(cc)); 432 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
433 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); 433 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
434 } 434 }
435 } else if (cc == '>') { 435 } else if (cc == '>') {
436 if (isAppropriateEndTag()) { 436 if (isAppropriateEndTag()) {
437 m_temporaryBuffer.append(static_cast<LChar>(cc)); 437 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
438 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState); 438 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
439 } 439 }
440 } 440 }
441 bufferCharacter('<'); 441 bufferCharacter('<');
442 bufferCharacter('/'); 442 bufferCharacter('/');
443 m_token->appendToCharacter(m_temporaryBuffer); 443 m_token->appendToCharacter(m_temporaryBuffer);
444 m_bufferedEndTagName.clear(); 444 m_bufferedEndTagName.clear();
445 m_temporaryBuffer.clear(); 445 m_temporaryBuffer.clear();
446 HTML_RECONSUME_IN(RAWTEXTState); 446 HTML_RECONSUME_IN(RAWTEXTState);
447 } 447 }
(...skipping 11 matching lines...) Expand all
459 HTML_ADVANCE_TO(ScriptDataEscapeStartState); 459 HTML_ADVANCE_TO(ScriptDataEscapeStartState);
460 } else { 460 } else {
461 bufferCharacter('<'); 461 bufferCharacter('<');
462 HTML_RECONSUME_IN(ScriptDataState); 462 HTML_RECONSUME_IN(ScriptDataState);
463 } 463 }
464 } 464 }
465 END_STATE() 465 END_STATE()
466 466
467 HTML_BEGIN_STATE(ScriptDataEndTagOpenState) { 467 HTML_BEGIN_STATE(ScriptDataEndTagOpenState) {
468 if (isASCIIUpper(cc)) { 468 if (isASCIIUpper(cc)) {
469 m_temporaryBuffer.append(static_cast<LChar>(cc)); 469 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
470 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 470 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
471 HTML_ADVANCE_TO(ScriptDataEndTagNameState); 471 HTML_ADVANCE_TO(ScriptDataEndTagNameState);
472 } else if (isASCIILower(cc)) { 472 } else if (isASCIILower(cc)) {
473 m_temporaryBuffer.append(static_cast<LChar>(cc)); 473 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
474 addToPossibleEndTag(static_cast<LChar>(cc)); 474 addToPossibleEndTag(static_cast<LChar>(cc));
475 HTML_ADVANCE_TO(ScriptDataEndTagNameState); 475 HTML_ADVANCE_TO(ScriptDataEndTagNameState);
476 } else { 476 } else {
477 bufferCharacter('<'); 477 bufferCharacter('<');
478 bufferCharacter('/'); 478 bufferCharacter('/');
479 HTML_RECONSUME_IN(ScriptDataState); 479 HTML_RECONSUME_IN(ScriptDataState);
480 } 480 }
481 } 481 }
482 END_STATE() 482 END_STATE()
483 483
484 HTML_BEGIN_STATE(ScriptDataEndTagNameState) { 484 HTML_BEGIN_STATE(ScriptDataEndTagNameState) {
485 if (isASCIIUpper(cc)) { 485 if (isASCIIUpper(cc)) {
486 m_temporaryBuffer.append(static_cast<LChar>(cc)); 486 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
487 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 487 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
488 HTML_ADVANCE_TO(ScriptDataEndTagNameState); 488 HTML_ADVANCE_TO(ScriptDataEndTagNameState);
489 } else if (isASCIILower(cc)) { 489 } else if (isASCIILower(cc)) {
490 m_temporaryBuffer.append(static_cast<LChar>(cc)); 490 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
491 addToPossibleEndTag(static_cast<LChar>(cc)); 491 addToPossibleEndTag(static_cast<LChar>(cc));
492 HTML_ADVANCE_TO(ScriptDataEndTagNameState); 492 HTML_ADVANCE_TO(ScriptDataEndTagNameState);
493 } else { 493 } else {
494 if (isTokenizerWhitespace(cc)) { 494 if (isTokenizerWhitespace(cc)) {
495 if (isAppropriateEndTag()) { 495 if (isAppropriateEndTag()) {
496 m_temporaryBuffer.append(static_cast<LChar>(cc)); 496 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
497 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); 497 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
498 } 498 }
499 } else if (cc == '/') { 499 } else if (cc == '/') {
500 if (isAppropriateEndTag()) { 500 if (isAppropriateEndTag()) {
501 m_temporaryBuffer.append(static_cast<LChar>(cc)); 501 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
502 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); 502 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
503 } 503 }
504 } else if (cc == '>') { 504 } else if (cc == '>') {
505 if (isAppropriateEndTag()) { 505 if (isAppropriateEndTag()) {
506 m_temporaryBuffer.append(static_cast<LChar>(cc)); 506 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
507 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState); 507 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
508 } 508 }
509 } 509 }
510 bufferCharacter('<'); 510 bufferCharacter('<');
511 bufferCharacter('/'); 511 bufferCharacter('/');
512 m_token->appendToCharacter(m_temporaryBuffer); 512 m_token->appendToCharacter(m_temporaryBuffer);
513 m_bufferedEndTagName.clear(); 513 m_bufferedEndTagName.clear();
514 m_temporaryBuffer.clear(); 514 m_temporaryBuffer.clear();
515 HTML_RECONSUME_IN(ScriptDataState); 515 HTML_RECONSUME_IN(ScriptDataState);
516 } 516 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 588
589 HTML_BEGIN_STATE(ScriptDataEscapedLessThanSignState) { 589 HTML_BEGIN_STATE(ScriptDataEscapedLessThanSignState) {
590 if (cc == '/') { 590 if (cc == '/') {
591 m_temporaryBuffer.clear(); 591 m_temporaryBuffer.clear();
592 ASSERT(m_bufferedEndTagName.isEmpty()); 592 ASSERT(m_bufferedEndTagName.isEmpty());
593 HTML_ADVANCE_TO(ScriptDataEscapedEndTagOpenState); 593 HTML_ADVANCE_TO(ScriptDataEscapedEndTagOpenState);
594 } else if (isASCIIUpper(cc)) { 594 } else if (isASCIIUpper(cc)) {
595 bufferCharacter('<'); 595 bufferCharacter('<');
596 bufferCharacter(cc); 596 bufferCharacter(cc);
597 m_temporaryBuffer.clear(); 597 m_temporaryBuffer.clear();
598 m_temporaryBuffer.append(toLowerCase(cc)); 598 m_temporaryBuffer.push_back(toLowerCase(cc));
599 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); 599 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
600 } else if (isASCIILower(cc)) { 600 } else if (isASCIILower(cc)) {
601 bufferCharacter('<'); 601 bufferCharacter('<');
602 bufferCharacter(cc); 602 bufferCharacter(cc);
603 m_temporaryBuffer.clear(); 603 m_temporaryBuffer.clear();
604 m_temporaryBuffer.append(static_cast<LChar>(cc)); 604 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
605 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); 605 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
606 } else { 606 } else {
607 bufferCharacter('<'); 607 bufferCharacter('<');
608 HTML_RECONSUME_IN(ScriptDataEscapedState); 608 HTML_RECONSUME_IN(ScriptDataEscapedState);
609 } 609 }
610 } 610 }
611 END_STATE() 611 END_STATE()
612 612
613 HTML_BEGIN_STATE(ScriptDataEscapedEndTagOpenState) { 613 HTML_BEGIN_STATE(ScriptDataEscapedEndTagOpenState) {
614 if (isASCIIUpper(cc)) { 614 if (isASCIIUpper(cc)) {
615 m_temporaryBuffer.append(static_cast<LChar>(cc)); 615 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
616 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 616 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
617 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); 617 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
618 } else if (isASCIILower(cc)) { 618 } else if (isASCIILower(cc)) {
619 m_temporaryBuffer.append(static_cast<LChar>(cc)); 619 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
620 addToPossibleEndTag(static_cast<LChar>(cc)); 620 addToPossibleEndTag(static_cast<LChar>(cc));
621 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); 621 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
622 } else { 622 } else {
623 bufferCharacter('<'); 623 bufferCharacter('<');
624 bufferCharacter('/'); 624 bufferCharacter('/');
625 HTML_RECONSUME_IN(ScriptDataEscapedState); 625 HTML_RECONSUME_IN(ScriptDataEscapedState);
626 } 626 }
627 } 627 }
628 END_STATE() 628 END_STATE()
629 629
630 HTML_BEGIN_STATE(ScriptDataEscapedEndTagNameState) { 630 HTML_BEGIN_STATE(ScriptDataEscapedEndTagNameState) {
631 if (isASCIIUpper(cc)) { 631 if (isASCIIUpper(cc)) {
632 m_temporaryBuffer.append(static_cast<LChar>(cc)); 632 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
633 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc))); 633 addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
634 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); 634 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
635 } else if (isASCIILower(cc)) { 635 } else if (isASCIILower(cc)) {
636 m_temporaryBuffer.append(static_cast<LChar>(cc)); 636 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
637 addToPossibleEndTag(static_cast<LChar>(cc)); 637 addToPossibleEndTag(static_cast<LChar>(cc));
638 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState); 638 HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
639 } else { 639 } else {
640 if (isTokenizerWhitespace(cc)) { 640 if (isTokenizerWhitespace(cc)) {
641 if (isAppropriateEndTag()) { 641 if (isAppropriateEndTag()) {
642 m_temporaryBuffer.append(static_cast<LChar>(cc)); 642 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
643 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState); 643 FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
644 } 644 }
645 } else if (cc == '/') { 645 } else if (cc == '/') {
646 if (isAppropriateEndTag()) { 646 if (isAppropriateEndTag()) {
647 m_temporaryBuffer.append(static_cast<LChar>(cc)); 647 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
648 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState); 648 FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
649 } 649 }
650 } else if (cc == '>') { 650 } else if (cc == '>') {
651 if (isAppropriateEndTag()) { 651 if (isAppropriateEndTag()) {
652 m_temporaryBuffer.append(static_cast<LChar>(cc)); 652 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
653 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState); 653 return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
654 } 654 }
655 } 655 }
656 bufferCharacter('<'); 656 bufferCharacter('<');
657 bufferCharacter('/'); 657 bufferCharacter('/');
658 m_token->appendToCharacter(m_temporaryBuffer); 658 m_token->appendToCharacter(m_temporaryBuffer);
659 m_bufferedEndTagName.clear(); 659 m_bufferedEndTagName.clear();
660 m_temporaryBuffer.clear(); 660 m_temporaryBuffer.clear();
661 HTML_RECONSUME_IN(ScriptDataEscapedState); 661 HTML_RECONSUME_IN(ScriptDataEscapedState);
662 } 662 }
663 } 663 }
664 END_STATE() 664 END_STATE()
665 665
666 HTML_BEGIN_STATE(ScriptDataDoubleEscapeStartState) { 666 HTML_BEGIN_STATE(ScriptDataDoubleEscapeStartState) {
667 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') { 667 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') {
668 bufferCharacter(cc); 668 bufferCharacter(cc);
669 if (temporaryBufferIs(scriptTag.localName())) 669 if (temporaryBufferIs(scriptTag.localName()))
670 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); 670 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
671 else 671 else
672 HTML_ADVANCE_TO(ScriptDataEscapedState); 672 HTML_ADVANCE_TO(ScriptDataEscapedState);
673 } else if (isASCIIUpper(cc)) { 673 } else if (isASCIIUpper(cc)) {
674 bufferCharacter(cc); 674 bufferCharacter(cc);
675 m_temporaryBuffer.append(toLowerCase(cc)); 675 m_temporaryBuffer.push_back(toLowerCase(cc));
676 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); 676 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
677 } else if (isASCIILower(cc)) { 677 } else if (isASCIILower(cc)) {
678 bufferCharacter(cc); 678 bufferCharacter(cc);
679 m_temporaryBuffer.append(static_cast<LChar>(cc)); 679 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
680 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState); 680 HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
681 } else 681 } else
682 HTML_RECONSUME_IN(ScriptDataEscapedState); 682 HTML_RECONSUME_IN(ScriptDataEscapedState);
683 } 683 }
684 END_STATE() 684 END_STATE()
685 685
686 HTML_BEGIN_STATE(ScriptDataDoubleEscapedState) { 686 HTML_BEGIN_STATE(ScriptDataDoubleEscapedState) {
687 if (cc == '-') { 687 if (cc == '-') {
688 bufferCharacter(cc); 688 bufferCharacter(cc);
689 HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashState); 689 HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashState);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 749
750 HTML_BEGIN_STATE(ScriptDataDoubleEscapeEndState) { 750 HTML_BEGIN_STATE(ScriptDataDoubleEscapeEndState) {
751 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') { 751 if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') {
752 bufferCharacter(cc); 752 bufferCharacter(cc);
753 if (temporaryBufferIs(scriptTag.localName())) 753 if (temporaryBufferIs(scriptTag.localName()))
754 HTML_ADVANCE_TO(ScriptDataEscapedState); 754 HTML_ADVANCE_TO(ScriptDataEscapedState);
755 else 755 else
756 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState); 756 HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
757 } else if (isASCIIUpper(cc)) { 757 } else if (isASCIIUpper(cc)) {
758 bufferCharacter(cc); 758 bufferCharacter(cc);
759 m_temporaryBuffer.append(toLowerCase(cc)); 759 m_temporaryBuffer.push_back(toLowerCase(cc));
760 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState); 760 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState);
761 } else if (isASCIILower(cc)) { 761 } else if (isASCIILower(cc)) {
762 bufferCharacter(cc); 762 bufferCharacter(cc);
763 m_temporaryBuffer.append(static_cast<LChar>(cc)); 763 m_temporaryBuffer.push_back(static_cast<LChar>(cc));
764 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState); 764 HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState);
765 } else 765 } else
766 HTML_RECONSUME_IN(ScriptDataDoubleEscapedState); 766 HTML_RECONSUME_IN(ScriptDataDoubleEscapedState);
767 } 767 }
768 END_STATE() 768 END_STATE()
769 769
770 HTML_BEGIN_STATE(BeforeAttributeNameState) { 770 HTML_BEGIN_STATE(BeforeAttributeNameState) {
771 if (isTokenizerWhitespace(cc)) 771 if (isTokenizerWhitespace(cc))
772 HTML_ADVANCE_TO(BeforeAttributeNameState); 772 HTML_ADVANCE_TO(BeforeAttributeNameState);
773 else if (cc == '/') 773 else if (cc == '/')
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 (threadSafeMatch(tagName, noscriptTag) && m_options.scriptEnabled)) 1559 (threadSafeMatch(tagName, noscriptTag) && m_options.scriptEnabled))
1560 setState(HTMLTokenizer::RAWTEXTState); 1560 setState(HTMLTokenizer::RAWTEXTState);
1561 } 1561 }
1562 1562
1563 inline bool HTMLTokenizer::temporaryBufferIs(const String& expectedString) { 1563 inline bool HTMLTokenizer::temporaryBufferIs(const String& expectedString) {
1564 return vectorEqualsString(m_temporaryBuffer, expectedString); 1564 return vectorEqualsString(m_temporaryBuffer, expectedString);
1565 } 1565 }
1566 1566
1567 inline void HTMLTokenizer::addToPossibleEndTag(LChar cc) { 1567 inline void HTMLTokenizer::addToPossibleEndTag(LChar cc) {
1568 ASSERT(isEndTagBufferingState(m_state)); 1568 ASSERT(isEndTagBufferingState(m_state));
1569 m_bufferedEndTagName.append(cc); 1569 m_bufferedEndTagName.push_back(cc);
1570 } 1570 }
1571 1571
1572 inline bool HTMLTokenizer::isAppropriateEndTag() { 1572 inline bool HTMLTokenizer::isAppropriateEndTag() {
1573 if (m_bufferedEndTagName.size() != m_appropriateEndTagName.size()) 1573 if (m_bufferedEndTagName.size() != m_appropriateEndTagName.size())
1574 return false; 1574 return false;
1575 1575
1576 size_t numCharacters = m_bufferedEndTagName.size(); 1576 size_t numCharacters = m_bufferedEndTagName.size();
1577 1577
1578 for (size_t i = 0; i < numCharacters; i++) { 1578 for (size_t i = 0; i < numCharacters; i++) {
1579 if (m_bufferedEndTagName[i] != m_appropriateEndTagName[i]) 1579 if (m_bufferedEndTagName[i] != m_appropriateEndTagName[i])
1580 return false; 1580 return false;
1581 } 1581 }
1582 1582
1583 return true; 1583 return true;
1584 } 1584 }
1585 1585
1586 inline void HTMLTokenizer::parseError() { 1586 inline void HTMLTokenizer::parseError() {
1587 DVLOG(1) << "Not implemented."; 1587 DVLOG(1) << "Not implemented.";
1588 } 1588 }
1589 1589
1590 } // namespace blink 1590 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/parser/HTMLToken.h ('k') | third_party/WebKit/Source/core/html/parser/HTMLTreeBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698