Ignore:
Timestamp:
Sep 28, 2009, 1:11:36 PM (16 years ago)
Author:
Simon Hausmann
Message:

[Qt] Implement XSLT support with QtXmlPatterns.
https://bugs.webkit.org/show_bug.cgi?id=28303

Patch by Jakub Wieczorek <[email protected]> on 2009-09-28
Reviewed by Simon Hausmann.

JavaScriptCore:

  • wtf/Platform.h: Add a WTF_USE_QXMLQUERY #define.

WebCore:

  • GNUmakefile.am:
  • WebCore.gypi:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::setTransformSource):

  • dom/Document.h:

(WebCore::Document::transformSource):

  • dom/TransformSource.h: Added.

(WebCore::TransformSource::platformSource):

  • dom/TransformSourceLibxslt.cpp: Added.

(WebCore::TransformSource::TransformSource): Wraps a libxml2 document.
(WebCore::TransformSource::~TransformSource):

  • dom/TransformSourceQt.cpp: Added.

(WebCore::TransformSource::TransformSource): Wraps a plain string.
(WebCore::TransformSource::~TransformSource):

  • dom/XMLTokenizerLibxml2.cpp:

(WebCore::XMLTokenizer::doEnd):

  • dom/XMLTokenizerQt.cpp:

(WebCore::XMLTokenizer::doEnd):
(WebCore::XMLTokenizer::parseProcessingInstruction):

  • xml/XSLStyleSheet.h:

(WebCore::XSLStyleSheet::sheetString):

  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::document):

  • xml/XSLStyleSheetQt.cpp: Added.
  • xml/XSLTProcessor.h:
  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::xmlDocPtrFromNode):

  • xml/XSLTProcessorQt.cpp: Added.

(WebCore::XSLTMessageHandler::XSLTMessageHandler): A subclass of QAbstractMessageHandler.
(WebCore::XSLTMessageHandler::handleMessage): Forwards all processor messages to the Console.
(WebCore::XSLTProcessor::transformToString): Uses QXmlQuery.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/dom/XMLTokenizerLibxml2.cpp

    r47313 r48826  
    5151#include "ScriptValue.h"
    5252#include "TextResourceDecoder.h"
     53#include "TransformSource.h"
    5354#include "XMLTokenizerScope.h"
    5455#include <libxml/parser.h>
     
    12811282#if ENABLE(XSLT)
    12821283    if (m_sawXSLTransform) {
    1283         m_doc->setTransformSource(xmlDocPtrForString(m_doc->docLoader(), m_originalSourceForTransform, m_doc->url().string()));
     1284        void* doc = xmlDocPtrForString(m_doc->docLoader(), m_originalSourceForTransform, m_doc->url().string());
     1285        m_doc->setTransformSource(new TransformSource(doc));
    12841286       
    12851287        m_doc->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
Note: See TracChangeset for help on using the changeset viewer.