Changeset 61986 in webkit


Ignore:
Timestamp:
Jun 28, 2010 1:15:58 AM (14 years ago)
Author:
abarth@webkit.org
Message:

2010-06-28 Adam Barth <abarth@webkit.org>

Reviewed by Eric Seidel.

Add support for parsing attributes
https://bugs.webkit.org/show_bug.cgi?id=41272

This patch lets use parse the following document:

<script src="data:text/javascript,alert('PASS')"></script>

  • html/HTMLTreeBuilder.cpp: (WebCore::HTMLTreeBuilder::constructTreeFromToken): (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML): (WebCore::HTMLTreeBuilder::insertScriptElement): (WebCore::HTMLTreeBuilder::createElement):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r61985 r61986  
     12010-06-28  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Add support for parsing attributes
     6        https://bugs.webkit.org/show_bug.cgi?id=41272
     7
     8        This patch lets use parse the following document:
     9
     10        <script src="data:text/javascript,alert('PASS')"></script>
     11
     12        * html/HTMLTreeBuilder.cpp:
     13        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
     14        (WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
     15        (WebCore::HTMLTreeBuilder::insertScriptElement):
     16        (WebCore::HTMLTreeBuilder::createElement):
     17
    1182010-06-28  Eric Seidel  <eric@webkit.org>
    219
  • trunk/WebCore/html/HTMLTreeBuilder.cpp

    r61982 r61986  
    273273}
    274274
    275 void HTMLTreeBuilder::insertHTMLStartTagBeforeHTML(AtomicHTMLToken&)
     275void HTMLTreeBuilder::insertHTMLStartTagBeforeHTML(AtomicHTMLToken& token)
    276276{
    277277    RefPtr<Element> element = HTMLHtmlElement::create(m_document);
    278     // FIXME: Add attributes to |element|.
     278    element->setAttributeMap(token.attributes(), m_fragmentScriptingPermission);
    279279    m_document->addChild(element);
    280280    m_openElements.push(element.release());
     
    840840    ASSERT_UNUSED(token, token.type() == HTMLToken::StartTag);
    841841    RefPtr<HTMLScriptElement> element = HTMLScriptElement::create(scriptTag, m_document, true);
     842    element->setAttributeMap(token.attributes(), m_fragmentScriptingPermission);
    842843    currentElement()->addChild(element);
    843844    m_openElements.push(element.release());
     
    849850PassRefPtr<Element> HTMLTreeBuilder::createElement(AtomicHTMLToken& token)
    850851{
    851     return HTMLElementFactory::createHTMLElement(QualifiedName(nullAtom, token.name(), xhtmlNamespaceURI), m_document, 0);
     852    RefPtr<Element> element = HTMLElementFactory::createHTMLElement(QualifiedName(nullAtom, token.name(), xhtmlNamespaceURI), m_document, 0);
     853    element->setAttributeMap(token.attributes(), m_fragmentScriptingPermission);
     854    return element.release();
    852855}
    853856
Note: See TracChangeset for help on using the changeset viewer.