Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: Source/core/xml/XSLTProcessor.cpp

Issue 288343017: Oilpan: Replace RefPtrs to Node and its subclasses in core/xml/ with Oilpan transition types. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: nullptr Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/xml/XSLTProcessor.h ('k') | Source/core/xml/XSLTProcessorLibxslt.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of the XSL implementation. 2 * This file is part of the XSL implementation.
3 * 3 *
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple, Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple, Inc. All rights reserved.
5 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@webkit.org> 5 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@webkit.org>
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 } 53 }
54 54
55 XSLTProcessor::~XSLTProcessor() 55 XSLTProcessor::~XSLTProcessor()
56 { 56 {
57 #if !ENABLE(OILPAN) 57 #if !ENABLE(OILPAN)
58 // Stylesheet shouldn't outlive its root node. 58 // Stylesheet shouldn't outlive its root node.
59 ASSERT(!m_stylesheetRootNode || !m_stylesheet || m_stylesheet->hasOneRef()); 59 ASSERT(!m_stylesheetRootNode || !m_stylesheet || m_stylesheet->hasOneRef());
60 #endif 60 #endif
61 } 61 }
62 62
63 PassRefPtr<Document> XSLTProcessor::createDocumentFromSource(const String& sourc eString, 63 PassRefPtrWillBeRawPtr<Document> XSLTProcessor::createDocumentFromSource(const S tring& sourceString,
64 const String& sourceEncoding, const String& sourceMIMEType, Node* sourceNode , LocalFrame* frame) 64 const String& sourceEncoding, const String& sourceMIMEType, Node* sourceNode , LocalFrame* frame)
65 { 65 {
66 RefPtr<Document> ownerDocument(sourceNode->document()); 66 RefPtrWillBeRawPtr<Document> ownerDocument(sourceNode->document());
67 bool sourceIsDocument = (sourceNode == ownerDocument.get()); 67 bool sourceIsDocument = (sourceNode == ownerDocument.get());
68 String documentSource = sourceString; 68 String documentSource = sourceString;
69 69
70 RefPtr<Document> result; 70 RefPtrWillBeRawPtr<Document> result = nullptr;
71 DocumentInit init(sourceIsDocument ? ownerDocument->url() : KURL(), frame); 71 DocumentInit init(sourceIsDocument ? ownerDocument->url() : KURL(), frame);
72 72
73 bool forceXHTML = sourceMIMEType == "text/plain"; 73 bool forceXHTML = sourceMIMEType == "text/plain";
74 if (forceXHTML) 74 if (forceXHTML)
75 transformTextStringToXHTMLDocumentString(documentSource); 75 transformTextStringToXHTMLDocumentString(documentSource);
76 76
77 if (frame) { 77 if (frame) {
78 RefPtr<Document> oldDocument = frame->document(); 78 RefPtrWillBeRawPtr<Document> oldDocument = frame->document();
79 result = frame->domWindow()->installNewDocument(sourceMIMEType, init, fo rceXHTML); 79 result = frame->domWindow()->installNewDocument(sourceMIMEType, init, fo rceXHTML);
80 80
81 // Before parsing, we need to save & detach the old document and get the new document 81 // Before parsing, we need to save & detach the old document and get the new document
82 // in place. We have to do this only if we're rendering the result docum ent. 82 // in place. We have to do this only if we're rendering the result docum ent.
83 if (FrameView* view = frame->view()) 83 if (FrameView* view = frame->view())
84 view->clear(); 84 view->clear();
85 85
86 if (oldDocument) { 86 if (oldDocument) {
87 result->setTransformSourceDocument(oldDocument.get()); 87 result->setTransformSourceDocument(oldDocument.get());
88 result->updateSecurityOrigin(oldDocument->securityOrigin()); 88 result->updateSecurityOrigin(oldDocument->securityOrigin());
89 result->setCookieURL(oldDocument->cookieURL()); 89 result->setCookieURL(oldDocument->cookieURL());
90 result->contentSecurityPolicy()->copyStateFrom(oldDocument->contentS ecurityPolicy()); 90 result->contentSecurityPolicy()->copyStateFrom(oldDocument->contentS ecurityPolicy());
91 } 91 }
92 } else { 92 } else {
93 result = DOMWindow::createDocument(sourceMIMEType, init, forceXHTML); 93 result = DOMWindow::createDocument(sourceMIMEType, init, forceXHTML);
94 } 94 }
95 95
96 DocumentEncodingData data; 96 DocumentEncodingData data;
97 data.setEncoding(sourceEncoding.isEmpty() ? UTF8Encoding() : WTF::TextEncodi ng(sourceEncoding)); 97 data.setEncoding(sourceEncoding.isEmpty() ? UTF8Encoding() : WTF::TextEncodi ng(sourceEncoding));
98 result->setEncodingData(data); 98 result->setEncodingData(data);
99 result->setContent(documentSource); 99 result->setContent(documentSource);
100 100
101 return result.release(); 101 return result.release();
102 } 102 }
103 103
104 PassRefPtr<Document> XSLTProcessor::transformToDocument(Node* sourceNode) 104 PassRefPtrWillBeRawPtr<Document> XSLTProcessor::transformToDocument(Node* source Node)
105 { 105 {
106 if (!sourceNode) 106 if (!sourceNode)
107 return nullptr; 107 return nullptr;
108 108
109 String resultMIMEType; 109 String resultMIMEType;
110 String resultString; 110 String resultString;
111 String resultEncoding; 111 String resultEncoding;
112 if (!transformToString(sourceNode, resultMIMEType, resultString, resultEncod ing)) 112 if (!transformToString(sourceNode, resultMIMEType, resultString, resultEncod ing))
113 return nullptr; 113 return nullptr;
114 return createDocumentFromSource(resultString, resultEncoding, resultMIMEType , sourceNode, 0); 114 return createDocumentFromSource(resultString, resultEncoding, resultMIMEType , sourceNode, 0);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 void XSLTProcessor::reset() 155 void XSLTProcessor::reset()
156 { 156 {
157 m_stylesheet.clear(); 157 m_stylesheet.clear();
158 m_stylesheetRootNode.clear(); 158 m_stylesheetRootNode.clear();
159 m_parameters.clear(); 159 m_parameters.clear();
160 } 160 }
161 161
162 void XSLTProcessor::trace(Visitor* visitor) 162 void XSLTProcessor::trace(Visitor* visitor)
163 { 163 {
164 visitor->trace(m_stylesheet); 164 visitor->trace(m_stylesheet);
165 visitor->trace(m_stylesheetRootNode);
165 } 166 }
166 167
167 } // namespace WebCore 168 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/xml/XSLTProcessor.h ('k') | Source/core/xml/XSLTProcessorLibxslt.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698