Changeset 62916 in webkit


Ignore:
Timestamp:
Jul 9, 2010 1:26:09 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-07-09 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Add insertForeignElement in preparation for adding "in foreign content" support
https://bugs.webkit.org/show_bug.cgi?id=41940

No functional changes, thus no tests.

  • html/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::insertForeignElement): (WebCore::HTMLConstructionSite::createElement): (WebCore::HTMLConstructionSite::createHTMLElement):
  • html/HTMLConstructionSite.h:
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r62914 r62916  
     12010-07-09  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Add insertForeignElement in preparation for adding "in foreign content" support
     6        https://bugs.webkit.org/show_bug.cgi?id=41940
     7
     8        No functional changes, thus no tests.
     9
     10        * html/HTMLConstructionSite.cpp:
     11        (WebCore::HTMLConstructionSite::insertForeignElement):
     12        (WebCore::HTMLConstructionSite::createElement):
     13        (WebCore::HTMLConstructionSite::createHTMLElement):
     14        * html/HTMLConstructionSite.h:
     15
    1162010-07-09  Adam Barth  <abarth@webkit.org>
    217
  • trunk/WebCore/html/HTMLConstructionSite.cpp

    r62912 r62916  
    220220}
    221221
     222void HTMLConstructionSite::insertForeignElement(AtomicHTMLToken& token, const AtomicString& namespaceURI)
     223{
     224    ASSERT(token.type() == HTMLToken::StartTag);
     225    notImplemented(); // parseError when xmlns or xmlns:xlink are wrong.
     226
     227    RefPtr<Element> element = attach(currentElement(), createElement(token, namespaceURI));
     228    if (!token.selfClosing())
     229        m_openElements.push(element);
     230}
     231
    222232void HTMLConstructionSite::insertTextNode(const String& characters)
    223233{
     
    234244}
    235245
     246PassRefPtr<Element> HTMLConstructionSite::createElement(AtomicHTMLToken& token, const AtomicString& namespaceURI)
     247{
     248    QualifiedName tagName(nullAtom, token.name(), namespaceURI);
     249    RefPtr<Element> element = m_document->createElement(tagName, true);
     250    element->setAttributeMap(token.takeAtributes(), m_fragmentScriptingPermission);
     251    return element.release();
     252}
     253
    236254PassRefPtr<Element> HTMLConstructionSite::createHTMLElement(AtomicHTMLToken& token)
    237255{
    238     RefPtr<Element> element = HTMLElementFactory::createHTMLElement(QualifiedName(nullAtom, token.name(), xhtmlNamespaceURI), m_document, 0);
    239     element->setAttributeMap(token.takeAtributes(), m_fragmentScriptingPermission);
     256    RefPtr<Element> element = createElement(token, xhtmlNamespaceURI);
     257    ASSERT(element->isHTMLElement());
    240258    return element.release();
    241259}
  • trunk/WebCore/html/HTMLConstructionSite.h

    r62912 r62916  
    5858    void insertScriptElement(AtomicHTMLToken&);
    5959    void insertTextNode(const String&);
     60    void insertForeignElement(AtomicHTMLToken&, const AtomicString& namespaceURI);
    6061
    6162    void insertHTMLHtmlStartTagBeforeHTML(AtomicHTMLToken&);
     
    111112    PassRefPtr<ChildType> attach(Node* parent, PassRefPtr<ChildType> prpChild);
    112113
     114    PassRefPtr<Element> createElement(AtomicHTMLToken&, const AtomicString& namespaceURI);
     115
    113116    PassRefPtr<Element> createHTMLElementAndAttachToCurrent(AtomicHTMLToken&);
    114117    void mergeAttributesFromTokenIntoElement(AtomicHTMLToken&, Element*);
Note: See TracChangeset for help on using the changeset viewer.