[HTMLTemplateElement] prevent </template> from matching "template" in a non-HTML tags on the stack of open elements
https://bugs.webkit.org/show_bug.cgi?id=112487

Reviewed by Adam Barth.

Source/WebCore:

When processing an end template tag, the parser now pops until a "template" tag is parsed, but now ensures that
the "template" it pops is in the HTML namespace.

Tests added to the html5lib test suite.

* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntil):
(WebCore):
(WebCore::HTMLElementStack::popUntilPopped):
* html/parser/HTMLElementStack.h:
(HTMLElementStack):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):

LayoutTests:

* html5lib/resources/template.dat:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146028 268f45cc-cd09-0410-ab3c-d52691b4dbfc