LayoutTests/ChangeLog

22
33 Reviewed by NOBODY (OOPS!).
44
 5 HTML tags should break out of foreign content
 6 https://bugs.webkit.org/show_bug.cgi?id=42106
 7
 8 * html5lib/runner-expected-html5.txt:
 9
 102010-07-12 Eric Seidel <eric@webkit.org>
 11
 12 Reviewed by NOBODY (OOPS!).
 13
514 HTMLTreeBuilder needs to support mixing SVG and MathML content
615 https://bugs.webkit.org/show_bug.cgi?id=42096
716

LayoutTests/html5lib/runner-expected-html5.txt

@@Expected:
386386resources/tests8.dat: PASS
387387
388388resources/tests9.dat:
389 13
39038914
391 15
392 18
393 19
394 
395 Test 13 of 25 in resources/tests9.dat failed. Input:
396 <!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
397 Got:
398 | <!DOCTYPE html>
399 | <html>
400 | <head>
401 | <body>
402 | <table>
403 | <caption>
404 | <math math>
405 | <math mi>
406 | "foo"
407 | <math mi>
408 | "bar"
409 | <math p>
410 | "baz"
411 | <math p>
412 | "quux"
413 Expected:
414 | <!DOCTYPE html>
415 | <html>
416 | <head>
417 | <body>
418 | <table>
419 | <caption>
420 | <math math>
421 | <math mi>
422 | "foo"
423 | <math mi>
424 | "bar"
425 | <p>
426 | "baz"
427 | <p>
428 | "quux"
429390
430391Test 14 of 25 in resources/tests9.dat failed. Input:
431392<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux

@@Got:
442403| <math mi>
443404| "bar"
444405| "baz"
445 | <math p>
446 | "quux"
 406| <p>
 407| "quux"
447408Expected:
448409| <!DOCTYPE html>
449410| <html>

@@Expected:
459420| "baz"
460421| <p>
461422| "quux"
462 
463 Test 15 of 25 in resources/tests9.dat failed. Input:
464 <!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux
465 Got:
466 | <!DOCTYPE html>
467 | <html>
468 | <head>
469 | <body>
470 | <math math>
471 | <math mi>
472 | "foo"
473 | <math mi>
474 | "bar"
475 | <math p>
476 | "baz"
477 | <math p>
478 | "quux"
479 | <table>
480 | <colgroup>
481 Expected:
482 | <!DOCTYPE html>
483 | <html>
484 | <head>
485 | <body>
486 | <math math>
487 | <math mi>
488 | "foo"
489 | <math mi>
490 | "bar"
491 | <p>
492 | "baz"
493 | <table>
494 | <colgroup>
495 | <p>
496 | "quux"
497 
498 Test 18 of 25 in resources/tests9.dat failed. Input:
499 <!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz
500 Got:
501 | <!DOCTYPE html>
502 | <html>
503 | <head>
504 | <body>
505 | <math math>
506 | <math mi>
507 | "foo"
508 | <math mi>
509 | "bar"
510 | <math p>
511 | "baz"
512 Expected:
513 | <!DOCTYPE html>
514 | <html>
515 | <head>
516 | <body>
517 | <math math>
518 | <math mi>
519 | "foo"
520 | <math mi>
521 | "bar"
522 | <p>
523 | "baz"
524 
525 Test 19 of 25 in resources/tests9.dat failed. Input:
526 <!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz
527 Got:
528 | <!DOCTYPE html>
529 | <html>
530 | <head>
531 | <body>
532 | <math math>
533 | <math mi>
534 | "foo"
535 | <math mi>
536 | "bar"
537 | <math p>
538 | "baz"
539 Expected:
540 | <!DOCTYPE html>
541 | <html>
542 | <head>
543 | <body>
544 | <math math>
545 | <math mi>
546 | "foo"
547 | <math mi>
548 | "bar"
549 | <p>
550 | "baz"
551423resources/tests10.dat:
552 13
55342414
554 15
555 18
556 19
557 
558 Test 13 of 25 in resources/tests10.dat failed. Input:
559 <!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
560 Got:
561 | <!DOCTYPE html>
562 | <html>
563 | <head>
564 | <body>
565 | <table>
566 | <caption>
567 | <svg svg>
568 | <svg g>
569 | "foo"
570 | <svg g>
571 | "bar"
572 | <svg p>
573 | "baz"
574 | <svg p>
575 | "quux"
576 Expected:
577 | <!DOCTYPE html>
578 | <html>
579 | <head>
580 | <body>
581 | <table>
582 | <caption>
583 | <svg svg>
584 | <svg g>
585 | "foo"
586 | <svg g>
587 | "bar"
588 | <p>
589 | "baz"
590 | <p>
591 | "quux"
592425
593426Test 14 of 25 in resources/tests10.dat failed. Input:
594427<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux

@@Got:
605438| <svg g>
606439| "bar"
607440| "baz"
608 | <svg p>
609 | "quux"
 441| <p>
 442| "quux"
610443Expected:
611444| <!DOCTYPE html>
612445| <html>

@@Expected:
622455| "baz"
623456| <p>
624457| "quux"
625 
626 Test 15 of 25 in resources/tests10.dat failed. Input:
627 <!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux
628 Got:
629 | <!DOCTYPE html>
630 | <html>
631 | <head>
632 | <body>
633 | <svg svg>
634 | <svg g>
635 | "foo"
636 | <svg g>
637 | "bar"
638 | <svg p>
639 | "baz"
640 | <svg p>
641 | "quux"
642 | <table>
643 | <colgroup>
644 Expected:
645 | <!DOCTYPE html>
646 | <html>
647 | <head>
648 | <body>
649 | <svg svg>
650 | <svg g>
651 | "foo"
652 | <svg g>
653 | "bar"
654 | <p>
655 | "baz"
656 | <table>
657 | <colgroup>
658 | <p>
659 | "quux"
660 
661 Test 18 of 25 in resources/tests10.dat failed. Input:
662 <!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz
663 Got:
664 | <!DOCTYPE html>
665 | <html>
666 | <head>
667 | <body>
668 | <svg svg>
669 | <svg g>
670 | "foo"
671 | <svg g>
672 | "bar"
673 | <svg p>
674 | "baz"
675 Expected:
676 | <!DOCTYPE html>
677 | <html>
678 | <head>
679 | <body>
680 | <svg svg>
681 | <svg g>
682 | "foo"
683 | <svg g>
684 | "bar"
685 | <p>
686 | "baz"
687 
688 Test 19 of 25 in resources/tests10.dat failed. Input:
689 <!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz
690 Got:
691 | <!DOCTYPE html>
692 | <html>
693 | <head>
694 | <body>
695 | <svg svg>
696 | <svg g>
697 | "foo"
698 | <svg g>
699 | "bar"
700 | <svg p>
701 | "baz"
702 Expected:
703 | <!DOCTYPE html>
704 | <html>
705 | <head>
706 | <body>
707 | <svg svg>
708 | <svg g>
709 | "foo"
710 | <svg g>
711 | "bar"
712 | <p>
713 | "baz"
714458resources/tests11.dat: PASS
715459
716460resources/tests12.dat:

WebCore/ChangeLog

22
33 Reviewed by NOBODY (OOPS!).
44
 5 HTML tags should break out of foreign content
 6 https://bugs.webkit.org/show_bug.cgi?id=42106
 7
 8 Implement another paragraph of the spec to pass another
 9 bunch of foreign content tests.
 10
 11 This fixes a bunch of tests in html5lib/runner.html.
 12 After this change we only have 4 remaining foreign content failures.
 13
 14 * html/HTMLTreeBuilder.cpp:
 15 (WebCore::HTMLTreeBuilder::processStartTag):
 16
 172010-07-12 Eric Seidel <eric@webkit.org>
 18
 19 Reviewed by NOBODY (OOPS!).
 20
521 HTMLTreeBuilder needs to support mixing SVG and MathML content
622 https://bugs.webkit.org/show_bug.cgi?id=42096
723

WebCore/html/HTMLTreeBuilder.cpp

@@void HTMLTreeBuilder::processStartTag(AtomicHTMLToken& token)
14911491 processUsingSecondaryInsertionModeAndAdjustInsertionMode(token);
14921492 return;
14931493 }
1494  notImplemented();
 1494 if (token.name() == bTag
 1495 || token.name() == bigTag
 1496 || token.name() == blockquoteTag
 1497 || token.name() == bodyTag
 1498 || token.name() == brTag
 1499 || token.name() == centerTag
 1500 || token.name() == codeTag
 1501 || token.name() == ddTag
 1502 || token.name() == divTag
 1503 || token.name() == dlTag
 1504 || token.name() == dtTag
 1505 || token.name() == emTag
 1506 || token.name() == embedTag
 1507 || isNumberedHeaderTag(token.name())
 1508 || token.name() == headTag
 1509 || token.name() == hrTag
 1510 || token.name() == iTag
 1511 || token.name() == imgTag
 1512 || token.name() == liTag
 1513 || token.name() == listingTag
 1514 || token.name() == menuTag
 1515 || token.name() == metaTag
 1516 || token.name() == nobrTag
 1517 || token.name() == olTag
 1518 || token.name() == pTag
 1519 || token.name() == preTag
 1520 || token.name() == rubyTag
 1521 || token.name() == sTag
 1522 || token.name() == smallTag
 1523 || token.name() == spanTag
 1524 || token.name() == strongTag
 1525 || token.name() == strikeTag
 1526 || token.name() == subTag
 1527 || token.name() == supTag
 1528 || token.name() == tableTag
 1529 || token.name() == ttTag
 1530 || token.name() == uTag
 1531 || token.name() == ulTag
 1532 || token.name() == varTag
 1533 || (token.name() == fontTag && (token.getAttributeItem(colorAttr) || token.getAttributeItem(faceAttr) || token.getAttributeItem(sizeAttr)))) {
 1534 while (m_tree.currentElement()) {
 1535 if (m_tree.currentElement()->namespaceURI() == xhtmlNamespaceURI)
 1536 break;
 1537 m_tree.openElements()->pop();
 1538 }
 1539 setInsertionMode(m_secondaryInsertionMode);
 1540 processStartTag(token);
 1541 return;
 1542 }
14951543 const AtomicString& currentNamespace = m_tree.currentElement()->namespaceURI();
14961544 if (currentNamespace == MathMLNames::mathmlNamespaceURI)
14971545 adjustMathMLAttributes(token);