<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[162275] trunk/Source/WebCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/162275">162275</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2014-01-18 14:48:46 -0800 (Sat, 18 Jan 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Modernize HTML parser code
https://bugs.webkit.org/show_bug.cgi?id=127236
Reviewed by Andreas Kling.
* html/parser/AtomicHTMLToken.h:
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::detach):
(WebCore::HTMLDocumentParser::stopParsing):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::ElementRecord::ElementRecord):
(WebCore::HTMLElementStack::insertAbove):
(WebCore::HTMLElementStack::pushCommon):
* html/parser/HTMLElementStack.h:
(WebCore::HTMLElementStack::ElementRecord::releaseNext):
(WebCore::HTMLElementStack::ElementRecord::setNext):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
* html/parser/HTMLMetaCharsetParser.h:
* html/parser/HTMLParserScheduler.h:
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
* html/parser/HTMLPreloadScanner.h:
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::HTMLResourcePreloader::takeAndPreload):
(WebCore::HTMLResourcePreloader::preload):
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::PreloadRequest):
* html/parser/HTMLScriptRunner.h:
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::releaseDoctypeData):
* html/parser/HTMLTokenizer.h:
* html/parser/HTMLTreeBuilder.h:
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
* html/parser/HTMLViewSourceParser.h:
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::XSSInfo):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
(WebCore::TextResourceDecoder::checkForMetaCharset):
* loader/TextResourceDecoder.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlparserAtomicHTMLTokenh">trunk/Source/WebCore/html/parser/AtomicHTMLToken.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserCSSPreloadScannercpp">trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLDocumentParsercpp">trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLDocumentParserh">trunk/Source/WebCore/html/parser/HTMLDocumentParser.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLElementStackcpp">trunk/Source/WebCore/html/parser/HTMLElementStack.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLElementStackh">trunk/Source/WebCore/html/parser/HTMLElementStack.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLMetaCharsetParsercpp">trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLMetaCharsetParserh">trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserSchedulerh">trunk/Source/WebCore/html/parser/HTMLParserScheduler.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLPreloadScannercpp">trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLPreloadScannerh">trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLResourcePreloadercpp">trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLResourcePreloaderh">trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLScriptRunnerh">trunk/Source/WebCore/html/parser/HTMLScriptRunner.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTokenh">trunk/Source/WebCore/html/parser/HTMLToken.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTokenizerh">trunk/Source/WebCore/html/parser/HTMLTokenizer.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuilderh">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLViewSourceParsercpp">trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLViewSourceParserh">trunk/Source/WebCore/html/parser/HTMLViewSourceParser.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserXSSAuditorcpp">trunk/Source/WebCore/html/parser/XSSAuditor.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserXSSAuditorh">trunk/Source/WebCore/html/parser/XSSAuditor.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserXSSAuditorDelegateh">trunk/Source/WebCore/html/parser/XSSAuditorDelegate.h</a></li>
<li><a href="#trunkSourceWebCoreloaderTextResourceDecodercpp">trunk/Source/WebCore/loader/TextResourceDecoder.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderTextResourceDecoderh">trunk/Source/WebCore/loader/TextResourceDecoder.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/ChangeLog        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2014-01-18 Anders Carlsson <andersca@apple.com>
+
+ Modernize HTML parser code
+ https://bugs.webkit.org/show_bug.cgi?id=127236
+
+ Reviewed by Andreas Kling.
+
+ * html/parser/AtomicHTMLToken.h:
+ * html/parser/CSSPreloadScanner.cpp:
+ (WebCore::CSSPreloadScanner::emitRule):
+ * html/parser/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::HTMLDocumentParser):
+ (WebCore::HTMLDocumentParser::detach):
+ (WebCore::HTMLDocumentParser::stopParsing):
+ (WebCore::HTMLDocumentParser::pumpTokenizer):
+ (WebCore::HTMLDocumentParser::insert):
+ (WebCore::HTMLDocumentParser::append):
+ (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
+ * html/parser/HTMLDocumentParser.h:
+ * html/parser/HTMLElementStack.cpp:
+ (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
+ (WebCore::HTMLElementStack::insertAbove):
+ (WebCore::HTMLElementStack::pushCommon):
+ * html/parser/HTMLElementStack.h:
+ (WebCore::HTMLElementStack::ElementRecord::releaseNext):
+ (WebCore::HTMLElementStack::ElementRecord::setNext):
+ * html/parser/HTMLMetaCharsetParser.cpp:
+ (WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
+ * html/parser/HTMLMetaCharsetParser.h:
+ * html/parser/HTMLParserScheduler.h:
+ * html/parser/HTMLPreloadScanner.cpp:
+ (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
+ (WebCore::TokenPreloadScanner::scan):
+ (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
+ * html/parser/HTMLPreloadScanner.h:
+ * html/parser/HTMLResourcePreloader.cpp:
+ (WebCore::HTMLResourcePreloader::takeAndPreload):
+ (WebCore::HTMLResourcePreloader::preload):
+ * html/parser/HTMLResourcePreloader.h:
+ (WebCore::PreloadRequest::PreloadRequest):
+ * html/parser/HTMLScriptRunner.h:
+ * html/parser/HTMLToken.h:
+ (WebCore::HTMLToken::beginDOCTYPE):
+ (WebCore::HTMLToken::releaseDoctypeData):
+ * html/parser/HTMLTokenizer.h:
+ * html/parser/HTMLTreeBuilder.h:
+ * html/parser/HTMLViewSourceParser.cpp:
+ (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
+ * html/parser/HTMLViewSourceParser.h:
+ * html/parser/XSSAuditor.cpp:
+ (WebCore::XSSAuditor::init):
+ (WebCore::XSSAuditor::filterToken):
+ * html/parser/XSSAuditor.h:
+ * html/parser/XSSAuditorDelegate.h:
+ (WebCore::XSSInfo::XSSInfo):
+ * loader/TextResourceDecoder.cpp:
+ (WebCore::TextResourceDecoder::checkForHeadCharset):
+ (WebCore::TextResourceDecoder::checkForMetaCharset):
+ * loader/TextResourceDecoder.h:
+
</ins><span class="cx"> 2014-01-18 Benjamin Poulain <benjamin@webkit.org>
</span><span class="cx">
</span><span class="cx"> Make ElementData JIT friendly
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserAtomicHTMLTokenh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/AtomicHTMLToken.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/AtomicHTMLToken.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/AtomicHTMLToken.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> bool m_isAll8BitData;
</span><span class="cx">
</span><span class="cx"> // For DOCTYPE
</span><del>- OwnPtr<DoctypeData> m_doctypeData;
</del><ins>+ std::unique_ptr<DoctypeData> m_doctypeData;
</ins><span class="cx">
</span><span class="cx"> // For StartTag and EndTag
</span><span class="cx"> bool m_selfClosing;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserCSSPreloadScannercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -208,9 +208,9 @@
</span><span class="cx"> String url = parseCSSStringOrURL(m_ruleValue.data(), m_ruleValue.size());
</span><span class="cx"> if (!url.isEmpty()) {
</span><span class="cx"> URL baseElementURL; // FIXME: This should be passed in from the HTMLPreloadScaner via scan()!
</span><del>- OwnPtr<PreloadRequest> request = PreloadRequest::create("css", url, baseElementURL, CachedResource::CSSStyleSheet);
</del><ins>+
</ins><span class="cx"> // FIXME: Should this be including the charset in the preload request?
</span><del>- m_requests->append(request.release());
</del><ins>+ m_requests->append(std::make_unique<PreloadRequest>("css", url, baseElementURL, CachedResource::CSSStyleSheet, String()));
</ins><span class="cx"> }
</span><span class="cx"> m_state = Initial;
</span><span class="cx"> } else if (ruleEqualIgnoringCase(m_rule, "charset"))
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLDocumentParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -70,13 +70,13 @@
</span><span class="cx"> HTMLDocumentParser::HTMLDocumentParser(HTMLDocument& document)
</span><span class="cx"> : ScriptableDocumentParser(document)
</span><span class="cx"> , m_options(document)
</span><del>- , m_token(adoptPtr(new HTMLToken))
- , m_tokenizer(HTMLTokenizer::create(m_options))
- , m_scriptRunner(HTMLScriptRunner::create(document, *this))
- , m_treeBuilder(HTMLTreeBuilder::create(*this, document, parserContentPolicy(), m_options))
- , m_parserScheduler(HTMLParserScheduler::create(*this))
</del><ins>+ , m_token(std::make_unique<HTMLToken>())
+ , m_tokenizer(std::make_unique<HTMLTokenizer>(m_options))
+ , m_scriptRunner(std::make_unique<HTMLScriptRunner>(document, static_cast<HTMLScriptRunnerHost&>(*this)))
+ , m_treeBuilder(std::make_unique<HTMLTreeBuilder>(*this, document, parserContentPolicy(), m_options))
+ , m_parserScheduler(std::make_unique<HTMLParserScheduler>(*this))
</ins><span class="cx"> , m_xssAuditorDelegate(document)
</span><del>- , m_preloader(adoptPtr(new HTMLResourcePreloader(document)))
</del><ins>+ , m_preloader(std::make_unique<HTMLResourcePreloader>(document))
</ins><span class="cx"> , m_endWasDelayed(false)
</span><span class="cx"> , m_haveBackgroundParser(false)
</span><span class="cx"> , m_pumpSessionNestingLevel(0)
</span><span class="lines">@@ -90,9 +90,9 @@
</span><span class="cx"> HTMLDocumentParser::HTMLDocumentParser(DocumentFragment& fragment, Element* contextElement, ParserContentPolicy parserContentPolicy)
</span><span class="cx"> : ScriptableDocumentParser(fragment.document(), parserContentPolicy)
</span><span class="cx"> , m_options(fragment.document())
</span><del>- , m_token(adoptPtr(new HTMLToken))
- , m_tokenizer(HTMLTokenizer::create(m_options))
- , m_treeBuilder(HTMLTreeBuilder::create(*this, fragment, contextElement, this->parserContentPolicy(), m_options))
</del><ins>+ , m_token(std::make_unique<HTMLToken>())
+ , m_tokenizer(std::make_unique<HTMLTokenizer>(m_options))
+ , m_treeBuilder(std::make_unique<HTMLTreeBuilder>(*this, fragment, contextElement, this->parserContentPolicy(), m_options))
</ins><span class="cx"> , m_xssAuditorDelegate(fragment.document())
</span><span class="cx"> , m_endWasDelayed(false)
</span><span class="cx"> , m_haveBackgroundParser(false)
</span><span class="lines">@@ -121,15 +121,15 @@
</span><span class="cx"> m_treeBuilder->detach();
</span><span class="cx"> // FIXME: It seems wrong that we would have a preload scanner here.
</span><span class="cx"> // Yet during fast/dom/HTMLScriptElement/script-load-events.html we do.
</span><del>- m_preloadScanner.clear();
- m_insertionPreloadScanner.clear();
- m_parserScheduler.clear(); // Deleting the scheduler will clear any timers.
</del><ins>+ m_preloadScanner = nullptr;
+ m_insertionPreloadScanner = nullptr;
+ m_parserScheduler = nullptr; // Deleting the scheduler will clear any timers.
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLDocumentParser::stopParsing()
</span><span class="cx"> {
</span><span class="cx"> DocumentParser::stopParsing();
</span><del>- m_parserScheduler.clear(); // Deleting the scheduler will clear any timers.
</del><ins>+ m_parserScheduler = nullptr; // Deleting the scheduler will clear any timers.
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // This kicks off "Once the user agent stops parsing" as described by:
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">
</span><span class="cx"> // We do not XSS filter innerHTML, which means we (intentionally) fail
</span><span class="cx"> // http/tests/security/xssAuditor/dom-write-innerHTML.html
</span><del>- if (OwnPtr<XSSInfo> xssInfo = m_xssAuditor.filterToken(FilterTokenRequest(token(), m_sourceTracker, m_tokenizer->shouldAllowCDATA())))
</del><ins>+ if (auto xssInfo = m_xssAuditor.filterToken(FilterTokenRequest(token(), m_sourceTracker, m_tokenizer->shouldAllowCDATA())))
</ins><span class="cx"> m_xssAuditorDelegate.didBlockScript(*xssInfo);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx"> if (isWaitingForScripts()) {
</span><span class="cx"> ASSERT(m_tokenizer->state() == HTMLTokenizer::DataState);
</span><span class="cx"> if (!m_preloadScanner) {
</span><del>- m_preloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url(), document()->deviceScaleFactor()));
</del><ins>+ m_preloadScanner = std::make_unique<HTMLPreloadScanner>(m_options, document()->url(), document()->deviceScaleFactor());
</ins><span class="cx"> m_preloadScanner->appendToEnd(m_input.current());
</span><span class="cx"> }
</span><span class="cx"> m_preloadScanner->scan(m_preloader.get(), document()->baseElementURL());
</span><span class="lines">@@ -385,7 +385,7 @@
</span><span class="cx"> // Check the document.write() output with a separate preload scanner as
</span><span class="cx"> // the main scanner can't deal with insertions.
</span><span class="cx"> if (!m_insertionPreloadScanner) {
</span><del>- m_insertionPreloadScanner = adoptPtr(new HTMLPreloadScanner(m_options, document()->url(), document()->deviceScaleFactor()));
</del><ins>+ m_insertionPreloadScanner = std::make_unique<HTMLPreloadScanner>(m_options, document()->url(), document()->deviceScaleFactor());
</ins><span class="cx"> }
</span><span class="cx"> m_insertionPreloadScanner->appendToEnd(source);
</span><span class="cx"> m_insertionPreloadScanner->scan(m_preloader.get(), document()->baseElementURL());
</span><span class="lines">@@ -408,7 +408,7 @@
</span><span class="cx"> if (m_input.current().isEmpty() && !isWaitingForScripts()) {
</span><span class="cx"> // We have parsed until the end of the current input and so are now moving ahead of the preload scanner.
</span><span class="cx"> // Clear the scanner so we know to scan starting from the current input point if we block again.
</span><del>- m_preloadScanner.clear();
</del><ins>+ m_preloadScanner = nullptr;
</ins><span class="cx"> } else {
</span><span class="cx"> m_preloadScanner->appendToEnd(source);
</span><span class="cx"> if (isWaitingForScripts())
</span><span class="lines">@@ -527,7 +527,7 @@
</span><span class="cx"> ASSERT(!isExecutingScript());
</span><span class="cx"> ASSERT(!isWaitingForScripts());
</span><span class="cx">
</span><del>- m_insertionPreloadScanner.clear();
</del><ins>+ m_insertionPreloadScanner = nullptr;
</ins><span class="cx"> pumpTokenizerIfPossible(AllowYield);
</span><span class="cx"> endIfDelayed();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLDocumentParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -40,7 +40,6 @@
</span><span class="cx"> #include "XSSAuditor.h"
</span><span class="cx"> #include "XSSAuditorDelegate.h"
</span><span class="cx"> #include <wtf/Deque.h>
</span><del>-#include <wtf/OwnPtr.h>
</del><span class="cx"> #include <wtf/WeakPtr.h>
</span><span class="cx"> #include <wtf/text/TextPosition.h>
</span><span class="cx">
</span><span class="lines">@@ -148,19 +147,19 @@
</span><span class="cx"> HTMLParserOptions m_options;
</span><span class="cx"> HTMLInputStream m_input;
</span><span class="cx">
</span><del>- OwnPtr<HTMLToken> m_token;
- OwnPtr<HTMLTokenizer> m_tokenizer;
- OwnPtr<HTMLScriptRunner> m_scriptRunner;
- OwnPtr<HTMLTreeBuilder> m_treeBuilder;
- OwnPtr<HTMLPreloadScanner> m_preloadScanner;
- OwnPtr<HTMLPreloadScanner> m_insertionPreloadScanner;
- OwnPtr<HTMLParserScheduler> m_parserScheduler;
</del><ins>+ std::unique_ptr<HTMLToken> m_token;
+ std::unique_ptr<HTMLTokenizer> m_tokenizer;
+ std::unique_ptr<HTMLScriptRunner> m_scriptRunner;
+ std::unique_ptr<HTMLTreeBuilder> m_treeBuilder;
+ std::unique_ptr<HTMLPreloadScanner> m_preloadScanner;
+ std::unique_ptr<HTMLPreloadScanner> m_insertionPreloadScanner;
+ std::unique_ptr<HTMLParserScheduler> m_parserScheduler;
</ins><span class="cx"> HTMLSourceTracker m_sourceTracker;
</span><span class="cx"> TextPosition m_textPosition;
</span><span class="cx"> XSSAuditor m_xssAuditor;
</span><span class="cx"> XSSAuditorDelegate m_xssAuditorDelegate;
</span><span class="cx">
</span><del>- OwnPtr<HTMLResourcePreloader> m_preloader;
</del><ins>+ std::unique_ptr<HTMLResourcePreloader> m_preloader;
</ins><span class="cx">
</span><span class="cx"> bool m_endWasDelayed;
</span><span class="cx"> bool m_haveBackgroundParser;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLElementStackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLElementStack.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLElementStack.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLElementStack.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx">
</span><del>-HTMLElementStack::ElementRecord::ElementRecord(PassRefPtr<HTMLStackItem> item, OwnPtr<ElementRecord> next)
</del><ins>+HTMLElementStack::ElementRecord::ElementRecord(PassRefPtr<HTMLStackItem> item, std::unique_ptr<ElementRecord> next)
</ins><span class="cx"> : m_item(item)
</span><span class="cx"> , m_next(std::move(next))
</span><span class="cx"> {
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx"> ASSERT(!item->hasTagName(HTMLNames::headTag));
</span><span class="cx"> ASSERT(!item->hasTagName(HTMLNames::bodyTag));
</span><span class="cx"> ASSERT(m_rootNode);
</span><del>- if (recordBelow == m_top) {
</del><ins>+ if (recordBelow == m_top.get()) {
</ins><span class="cx"> push(item);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -369,7 +369,7 @@
</span><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> m_stackDepth++;
</span><del>- recordAbove->setNext(adoptPtr(new ElementRecord(item, recordAbove->releaseNext())));
</del><ins>+ recordAbove->setNext(std::make_unique<ElementRecord>(item, recordAbove->releaseNext()));
</ins><span class="cx"> recordAbove->next()->element()->beginParsingChildren();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -567,7 +567,7 @@
</span><span class="cx"> ASSERT(m_rootNode);
</span><span class="cx">
</span><span class="cx"> m_stackDepth++;
</span><del>- m_top = adoptPtr(new ElementRecord(item, m_top.release()));
</del><ins>+ m_top = std::make_unique<ElementRecord>(item, std::move(m_top));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLElementStack::popCommon()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLElementStackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLElementStack.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLElementStack.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLElementStack.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -30,8 +30,6 @@
</span><span class="cx"> #include "HTMLStackItem.h"
</span><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/Noncopyable.h>
</span><del>-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -52,7 +50,8 @@
</span><span class="cx"> class ElementRecord {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(ElementRecord); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- ~ElementRecord(); // Public for ~PassOwnPtr()
</del><ins>+ ElementRecord(PassRefPtr<HTMLStackItem>, std::unique_ptr<ElementRecord>);
+ ~ElementRecord();
</ins><span class="cx">
</span><span class="cx"> Element* element() const { return m_item->element(); }
</span><span class="cx"> ContainerNode* node() const { return m_item->node(); }
</span><span class="lines">@@ -66,13 +65,11 @@
</span><span class="cx"> private:
</span><span class="cx"> friend class HTMLElementStack;
</span><span class="cx">
</span><del>- ElementRecord(PassRefPtr<HTMLStackItem>, OwnPtr<ElementRecord>);
</del><ins>+ std::unique_ptr<ElementRecord> releaseNext() { return std::move(m_next); }
+ void setNext(std::unique_ptr<ElementRecord> next) { m_next = std::move(next); }
</ins><span class="cx">
</span><del>- OwnPtr<ElementRecord> releaseNext() { return m_next.release(); }
- void setNext(OwnPtr<ElementRecord> next) { m_next = std::move(next); }
-
</del><span class="cx"> RefPtr<HTMLStackItem> m_item;
</span><del>- OwnPtr<ElementRecord> m_next;
</del><ins>+ std::unique_ptr<ElementRecord> m_next;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> unsigned stackDepth() const { return m_stackDepth; }
</span><span class="lines">@@ -171,7 +168,7 @@
</span><span class="cx"> void popCommon();
</span><span class="cx"> void removeNonTopCommon(Element*);
</span><span class="cx">
</span><del>- OwnPtr<ElementRecord> m_top;
</del><ins>+ std::unique_ptr<ElementRecord> m_top;
</ins><span class="cx">
</span><span class="cx"> // We remember the root node, <head> and <body> as they are pushed. Their
</span><span class="cx"> // ElementRecords keep them alive. The root node is never popped.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLMetaCharsetParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx">
</span><span class="cx"> HTMLMetaCharsetParser::HTMLMetaCharsetParser()
</span><del>- : m_tokenizer(HTMLTokenizer::create(HTMLParserOptions()))
</del><ins>+ : m_tokenizer(std::make_unique<HTMLTokenizer>(HTMLParserOptions()))
</ins><span class="cx"> , m_assumedCodec(newTextCodec(Latin1Encoding()))
</span><span class="cx"> , m_inHeadSection(true)
</span><span class="cx"> , m_doneChecking(false)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLMetaCharsetParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -39,8 +39,7 @@
</span><span class="cx"> class HTMLMetaCharsetParser {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLMetaCharsetParser); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static OwnPtr<HTMLMetaCharsetParser> create() { return adoptPtr(new HTMLMetaCharsetParser()); }
-
</del><ins>+ HTMLMetaCharsetParser();
</ins><span class="cx"> ~HTMLMetaCharsetParser();
</span><span class="cx">
</span><span class="cx"> // Returns true if done checking, regardless whether an encoding is found.
</span><span class="lines">@@ -54,8 +53,6 @@
</span><span class="cx"> );
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- HTMLMetaCharsetParser();
-
</del><span class="cx"> bool processMeta();
</span><span class="cx"> static String extractCharset(const String&);
</span><span class="cx">
</span><span class="lines">@@ -65,7 +62,7 @@
</span><span class="cx"> Pragma,
</span><span class="cx"> };
</span><span class="cx">
</span><del>- OwnPtr<HTMLTokenizer> m_tokenizer;
</del><ins>+ std::unique_ptr<HTMLTokenizer> m_tokenizer;
</ins><span class="cx"> OwnPtr<TextCodec> m_assumedCodec;
</span><span class="cx"> SegmentedString m_input;
</span><span class="cx"> HTMLToken m_token;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserSchedulerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserScheduler.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserScheduler.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLParserScheduler.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -64,10 +64,7 @@
</span><span class="cx"> class HTMLParserScheduler {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLParserScheduler); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static OwnPtr<HTMLParserScheduler> create(HTMLDocumentParser& parser)
- {
- return adoptPtr(new HTMLParserScheduler(parser));
- }
</del><ins>+ explicit HTMLParserScheduler(HTMLDocumentParser&);
</ins><span class="cx"> ~HTMLParserScheduler();
</span><span class="cx">
</span><span class="cx"> // Inline as this is called after every token in the parser.
</span><span class="lines">@@ -101,8 +98,6 @@
</span><span class="cx"> void resume();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- HTMLParserScheduler(HTMLDocumentParser&);
-
</del><span class="cx"> void continueNextChunkTimerFired(Timer<HTMLParserScheduler>&);
</span><span class="cx">
</span><span class="cx"> HTMLDocumentParser& m_parser;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLPreloadScannercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -109,15 +109,16 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<PreloadRequest> createPreloadRequest(const URL& predictedBaseURL)
</del><ins>+ std::unique_ptr<PreloadRequest> createPreloadRequest(const URL& predictedBaseURL)
</ins><span class="cx"> {
</span><span class="cx"> if (!shouldPreload())
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- OwnPtr<PreloadRequest> request = PreloadRequest::create(initiatorFor(m_tagId), m_urlToLoad, predictedBaseURL, resourceType(), m_mediaAttribute);
</del><ins>+ auto request = std::make_unique<PreloadRequest>(initiatorFor(m_tagId), m_urlToLoad, predictedBaseURL, resourceType(), m_mediaAttribute);
+
</ins><span class="cx"> request->setCrossOriginModeAllowsCookies(crossOriginModeAllowsCookies());
</span><span class="cx"> request->setCharset(charset());
</span><del>- return request.release();
</del><ins>+ return request;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool match(const AtomicString& name, const QualifiedName& qName)
</span><span class="lines">@@ -261,7 +262,7 @@
</span><span class="cx"> m_checkpoints.clear();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void TokenPreloadScanner::scan(const HTMLToken& token, Vector<OwnPtr<PreloadRequest>>& requests)
</del><ins>+void TokenPreloadScanner::scan(const HTMLToken& token, Vector<std::unique_ptr<PreloadRequest>>& requests)
</ins><span class="cx"> {
</span><span class="cx"> switch (token.type()) {
</span><span class="cx"> case HTMLToken::Character:
</span><span class="lines">@@ -313,8 +314,8 @@
</span><span class="cx">
</span><span class="cx"> StartTagScanner scanner(tagId, m_deviceScaleFactor);
</span><span class="cx"> scanner.processAttributes(token.attributes());
</span><del>- if (OwnPtr<PreloadRequest> request = scanner.createPreloadRequest(m_predictedBaseElementURL))
- requests.append(request.release());
</del><ins>+ if (auto request = scanner.createPreloadRequest(m_predictedBaseElementURL))
+ requests.append(std::move(request));
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -333,7 +334,7 @@
</span><span class="cx">
</span><span class="cx"> HTMLPreloadScanner::HTMLPreloadScanner(const HTMLParserOptions& options, const URL& documentURL, float deviceScaleFactor)
</span><span class="cx"> : m_scanner(documentURL, deviceScaleFactor)
</span><del>- , m_tokenizer(HTMLTokenizer::create(options))
</del><ins>+ , m_tokenizer(std::make_unique<HTMLTokenizer>(options))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -363,7 +364,7 @@
</span><span class="cx"> m_token.clear();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- preloader->takeAndPreload(requests);
</del><ins>+ preloader->preload(std::move(requests));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLPreloadScannerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -132,7 +132,7 @@
</span><span class="cx"> TokenPreloadScanner m_scanner;
</span><span class="cx"> SegmentedString m_source;
</span><span class="cx"> HTMLToken m_token;
</span><del>- OwnPtr<HTMLTokenizer> m_tokenizer;
</del><ins>+ std::unique_ptr<HTMLTokenizer> m_tokenizer;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLResourcePreloadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -61,13 +61,10 @@
</span><span class="cx"> return request;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLResourcePreloader::takeAndPreload(PreloadRequestStream& r)
</del><ins>+void HTMLResourcePreloader::preload(PreloadRequestStream requests)
</ins><span class="cx"> {
</span><del>- PreloadRequestStream requests;
- requests.swap(r);
-
- for (PreloadRequestStream::iterator it = requests.begin(); it != requests.end(); ++it)
- preload(it->release());
</del><ins>+ for (auto& request : requests)
+ preload(std::move(request));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool mediaAttributeMatches(Frame* frame, RenderStyle* renderStyle, const String& attributeValue)
</span><span class="lines">@@ -77,7 +74,7 @@
</span><span class="cx"> return mediaQueryEvaluator.eval(mediaQueries.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLResourcePreloader::preload(OwnPtr<PreloadRequest> preload)
</del><ins>+void HTMLResourcePreloader::preload(std::unique_ptr<PreloadRequest> preload)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_document.frame());
</span><span class="cx"> ASSERT(m_document.renderView());
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLResourcePreloaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -33,16 +33,16 @@
</span><span class="cx">
</span><span class="cx"> class PreloadRequest {
</span><span class="cx"> public:
</span><del>- static OwnPtr<PreloadRequest> create(const String& initiator, const String& resourceURL, const URL& baseURL, CachedResource::Type resourceType, const String& mediaAttribute)
</del><ins>+ PreloadRequest(const String& initiator, const String& resourceURL, const URL& baseURL, CachedResource::Type resourceType, const String& mediaAttribute)
+ : m_initiator(initiator)
+ , m_resourceURL(resourceURL.isolatedCopy())
+ , m_baseURL(baseURL.copy())
+ , m_resourceType(resourceType)
+ , m_mediaAttribute(mediaAttribute.isolatedCopy())
+ , m_crossOriginModeAllowsCookies(false)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new PreloadRequest(initiator, resourceURL, baseURL, resourceType, mediaAttribute));
</del><span class="cx"> }
</span><span class="cx">
</span><del>- static OwnPtr<PreloadRequest> create(const String& initiator, const String& resourceURL, const URL& baseURL, CachedResource::Type resourceType)
- {
- return adoptPtr(new PreloadRequest(initiator, resourceURL, baseURL, resourceType, String()));
- }
-
</del><span class="cx"> bool isSafeToSendToAnotherThread() const;
</span><span class="cx">
</span><span class="cx"> CachedResourceRequest resourceRequest(Document&);
</span><span class="lines">@@ -54,16 +54,6 @@
</span><span class="cx"> CachedResource::Type resourceType() const { return m_resourceType; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- PreloadRequest(const String& initiator, const String& resourceURL, const URL& baseURL, CachedResource::Type resourceType, const String& mediaAttribute)
- : m_initiator(initiator)
- , m_resourceURL(resourceURL.isolatedCopy())
- , m_baseURL(baseURL.copy())
- , m_resourceType(resourceType)
- , m_mediaAttribute(mediaAttribute.isolatedCopy())
- , m_crossOriginModeAllowsCookies(false)
- {
- }
-
</del><span class="cx"> URL completeURL(Document&);
</span><span class="cx">
</span><span class="cx"> String m_initiator;
</span><span class="lines">@@ -75,7 +65,7 @@
</span><span class="cx"> bool m_crossOriginModeAllowsCookies;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-typedef Vector<OwnPtr<PreloadRequest>> PreloadRequestStream;
</del><ins>+typedef Vector<std::unique_ptr<PreloadRequest>> PreloadRequestStream;
</ins><span class="cx">
</span><span class="cx"> class HTMLResourcePreloader {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLResourcePreloader); WTF_MAKE_FAST_ALLOCATED;
</span><span class="lines">@@ -86,8 +76,8 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void takeAndPreload(PreloadRequestStream&);
- void preload(OwnPtr<PreloadRequest>);
</del><ins>+ void preload(PreloadRequestStream);
+ void preload(std::unique_ptr<PreloadRequest>);
</ins><span class="cx">
</span><span class="cx"> WeakPtr<HTMLResourcePreloader> createWeakPtr() { return m_weakFactory.createWeakPtr(); }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLScriptRunnerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLScriptRunner.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLScriptRunner.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLScriptRunner.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include "PendingScript.h"
</span><span class="cx"> #include <wtf/Deque.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/text/TextPosition.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -44,10 +43,7 @@
</span><span class="cx"> class HTMLScriptRunner {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLScriptRunner); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static OwnPtr<HTMLScriptRunner> create(Document& document, HTMLScriptRunnerHost& host)
- {
- return adoptPtr(new HTMLScriptRunner(document, host));
- }
</del><ins>+ HTMLScriptRunner(Document&, HTMLScriptRunnerHost&);
</ins><span class="cx"> ~HTMLScriptRunner();
</span><span class="cx">
</span><span class="cx"> void detach();
</span><span class="lines">@@ -64,8 +60,6 @@
</span><span class="cx"> bool isExecutingScript() const { return !!m_scriptNestingLevel; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- HTMLScriptRunner(Document&, HTMLScriptRunnerHost&);
-
</del><span class="cx"> Frame* frame() const;
</span><span class="cx">
</span><span class="cx"> void executeParsingBlockingScript();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTokenh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLToken.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLToken.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLToken.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_type == Uninitialized);
</span><span class="cx"> m_type = DOCTYPE;
</span><del>- m_doctypeData = adoptPtr(new DoctypeData);
</del><ins>+ m_doctypeData = std::make_unique<DoctypeData>();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void beginDOCTYPE(UChar character)
</span><span class="lines">@@ -226,9 +226,9 @@
</span><span class="cx"> m_doctypeData->m_systemIdentifier.append(character);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<DoctypeData> releaseDoctypeData()
</del><ins>+ std::unique_ptr<DoctypeData> releaseDoctypeData()
</ins><span class="cx"> {
</span><del>- return m_doctypeData.release();
</del><ins>+ return std::move(m_doctypeData);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /* Start/End Tag Tokens */
</span><span class="lines">@@ -445,7 +445,7 @@
</span><span class="cx"> Attribute* m_currentAttribute;
</span><span class="cx">
</span><span class="cx"> // For DOCTYPE
</span><del>- OwnPtr<DoctypeData> m_doctypeData;
</del><ins>+ std::unique_ptr<DoctypeData> m_doctypeData;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTokenizerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTokenizer.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTokenizer.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLTokenizer.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLTokenizer);
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static OwnPtr<HTMLTokenizer> create(const HTMLParserOptions& options) { return adoptPtr(new HTMLTokenizer(options)); }
</del><ins>+ explicit HTMLTokenizer(const HTMLParserOptions&);
</ins><span class="cx"> ~HTMLTokenizer();
</span><span class="cx">
</span><span class="cx"> void reset();
</span><span class="lines">@@ -173,8 +173,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- explicit HTMLTokenizer(const HTMLParserOptions&);
-
</del><span class="cx"> inline bool processEntity(SegmentedString&);
</span><span class="cx">
</span><span class="cx"> inline void parseError();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuilderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -57,14 +57,8 @@
</span><span class="cx"> class HTMLTreeBuilder {
</span><span class="cx"> WTF_MAKE_NONCOPYABLE(HTMLTreeBuilder); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>- static OwnPtr<HTMLTreeBuilder> create(HTMLDocumentParser& parser, HTMLDocument& document, ParserContentPolicy parserContentPolicy, const HTMLParserOptions& options)
- {
- return adoptPtr(new HTMLTreeBuilder(parser, document, parserContentPolicy, options));
- }
- static OwnPtr<HTMLTreeBuilder> create(HTMLDocumentParser& parser, DocumentFragment& fragment, Element* contextElement, ParserContentPolicy parserContentPolicy, const HTMLParserOptions& options)
- {
- return adoptPtr(new HTMLTreeBuilder(parser, fragment, contextElement, parserContentPolicy, options));
- }
</del><ins>+ HTMLTreeBuilder(HTMLDocumentParser&, HTMLDocument&, ParserContentPolicy, const HTMLParserOptions&);
+ HTMLTreeBuilder(HTMLDocumentParser&, DocumentFragment&, Element* contextElement, ParserContentPolicy, const HTMLParserOptions&);
</ins><span class="cx"> ~HTMLTreeBuilder();
</span><span class="cx">
</span><span class="cx"> const HTMLElementStack* openElements() const { return m_tree.openElements(); }
</span><span class="lines">@@ -120,9 +114,6 @@
</span><span class="cx"> AfterAfterFramesetMode,
</span><span class="cx"> };
</span><span class="cx">
</span><del>- HTMLTreeBuilder(HTMLDocumentParser&, HTMLDocument&, ParserContentPolicy, const HTMLParserOptions&);
- HTMLTreeBuilder(HTMLDocumentParser&, DocumentFragment&, Element* contextElement, ParserContentPolicy, const HTMLParserOptions&);
-
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> void insertPhoneNumberLink(const String&);
</span><span class="cx"> void linkifyPhoneNumbers(const String&);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLViewSourceParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx">
</span><span class="cx"> HTMLViewSourceParser::HTMLViewSourceParser(HTMLViewSourceDocument& document)
</span><span class="cx"> : DecodedDataDocumentParser(document)
</span><del>- , m_tokenizer(HTMLTokenizer::create(HTMLParserOptions(document)))
</del><ins>+ , m_tokenizer(std::make_unique<HTMLTokenizer>(HTMLParserOptions(document)))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLViewSourceParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLViewSourceParser.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLViewSourceParser.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/HTMLViewSourceParser.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> HTMLInputStream m_input;
</span><span class="cx"> HTMLToken m_token;
</span><span class="cx"> HTMLSourceTracker m_sourceTracker;
</span><del>- OwnPtr<HTMLTokenizer> m_tokenizer;
</del><ins>+ std::unique_ptr<HTMLTokenizer> m_tokenizer;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserXSSAuditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/XSSAuditor.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/XSSAuditor.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/XSSAuditor.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -305,7 +305,7 @@
</span><span class="cx"> if (m_decodedHTTPBody.find(isRequiredForInjection) == notFound)
</span><span class="cx"> m_decodedHTTPBody = String();
</span><span class="cx"> if (m_decodedHTTPBody.length() >= minimumLengthForSuffixTree)
</span><del>- m_decodedHTTPBodySuffixTree = adoptPtr(new SuffixTree<ASCIICodebook>(m_decodedHTTPBody, suffixTreeDepth));
</del><ins>+ m_decodedHTTPBodySuffixTree = std::make_unique<SuffixTree<ASCIICodebook>>(m_decodedHTTPBody, suffixTreeDepth);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -316,7 +316,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-OwnPtr<XSSInfo> XSSAuditor::filterToken(const FilterTokenRequest& request)
</del><ins>+std::unique_ptr<XSSInfo> XSSAuditor::filterToken(const FilterTokenRequest& request)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_state == Initialized);
</span><span class="cx"> if (!m_isEnabled || m_xssProtection == ContentSecurityPolicy::AllowReflectedXSS)
</span><span class="lines">@@ -332,12 +332,11 @@
</span><span class="cx"> filterEndToken(request);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (didBlockScript) {
- bool didBlockEntirePage = (m_xssProtection == ContentSecurityPolicy::BlockReflectedXSS);
- OwnPtr<XSSInfo> xssInfo = XSSInfo::create(didBlockEntirePage, m_didSendValidXSSProtectionHeader, m_didSendValidCSPHeader);
- return xssInfo.release();
- }
- return nullptr;
</del><ins>+ if (!didBlockScript)
+ return nullptr;
+
+ bool didBlockEntirePage = (m_xssProtection == ContentSecurityPolicy::BlockReflectedXSS);
+ return std::make_unique<XSSInfo>(didBlockEntirePage, m_didSendValidXSSProtectionHeader, m_didSendValidCSPHeader);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool XSSAuditor::filterStartToken(const FilterTokenRequest& request)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserXSSAuditorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/XSSAuditor.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/XSSAuditor.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/XSSAuditor.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> void init(Document*, XSSAuditorDelegate*);
</span><span class="cx"> void initForFragment();
</span><span class="cx">
</span><del>- OwnPtr<XSSInfo> filterToken(const FilterTokenRequest&);
</del><ins>+ std::unique_ptr<XSSInfo> filterToken(const FilterTokenRequest&);
</ins><span class="cx"> bool isSafeToSendToAnotherThread() const;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">
</span><span class="cx"> String m_decodedURL;
</span><span class="cx"> String m_decodedHTTPBody;
</span><del>- OwnPtr<SuffixTree<ASCIICodebook>> m_decodedHTTPBodySuffixTree;
</del><ins>+ std::unique_ptr<SuffixTree<ASCIICodebook>> m_decodedHTTPBodySuffixTree;
</ins><span class="cx">
</span><span class="cx"> State m_state;
</span><span class="cx"> String m_cachedDecodedSnippet;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserXSSAuditorDelegateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/XSSAuditorDelegate.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/XSSAuditorDelegate.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/html/parser/XSSAuditorDelegate.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -39,23 +39,17 @@
</span><span class="cx">
</span><span class="cx"> class XSSInfo {
</span><span class="cx"> public:
</span><del>- static OwnPtr<XSSInfo> create(bool didBlockEntirePage, bool didSendXSSProtectionHeader, bool didSendCSPHeader)
</del><ins>+ XSSInfo(bool didBlockEntirePage, bool didSendXSSProtectionHeader, bool didSendCSPHeader)
+ : m_didBlockEntirePage(didBlockEntirePage)
+ , m_didSendXSSProtectionHeader(didSendXSSProtectionHeader)
+ , m_didSendCSPHeader(didSendCSPHeader)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new XSSInfo(didBlockEntirePage, didSendXSSProtectionHeader, didSendCSPHeader));
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool m_didBlockEntirePage;
</span><span class="cx"> bool m_didSendXSSProtectionHeader;
</span><span class="cx"> bool m_didSendCSPHeader;
</span><span class="cx"> TextPosition m_textPosition;
</span><del>-
-private:
- XSSInfo(bool didBlockEntirePage, bool didSendXSSProtectionHeader, bool didSendCSPHeader)
- : m_didBlockEntirePage(didBlockEntirePage)
- , m_didSendXSSProtectionHeader(didSendXSSProtectionHeader)
- , m_didSendCSPHeader(didSendCSPHeader)
- {
- }
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class XSSAuditorDelegate {
</span><span class="lines">@@ -74,8 +68,6 @@
</span><span class="cx"> URL m_reportURL;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-typedef Vector<OwnPtr<XSSInfo>> XSSInfoStream;
-
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderTextResourceDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/TextResourceDecoder.cpp (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/TextResourceDecoder.cpp        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/loader/TextResourceDecoder.cpp        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -543,7 +543,7 @@
</span><span class="cx"> if (m_contentType == XML)
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- m_charsetParser = HTMLMetaCharsetParser::create();
</del><ins>+ m_charsetParser = std::make_unique<HTMLMetaCharsetParser>();
</ins><span class="cx"> return checkForMetaCharset(data, len);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -553,7 +553,7 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> setEncoding(m_charsetParser->encoding(), EncodingFromMetaTag);
</span><del>- m_charsetParser.clear();
</del><ins>+ m_charsetParser = nullptr;
</ins><span class="cx"> m_checkedForHeadCharset = true;
</span><span class="cx"> return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderTextResourceDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/TextResourceDecoder.h (162274 => 162275)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/TextResourceDecoder.h        2014-01-18 22:17:09 UTC (rev 162274)
+++ trunk/Source/WebCore/loader/TextResourceDecoder.h        2014-01-18 22:48:46 UTC (rev 162275)
</span><span class="lines">@@ -67,8 +67,7 @@
</span><span class="cx"> bool sawError() const { return m_sawError; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- TextResourceDecoder(const String& mimeType, const TextEncoding& defaultEncoding,
- bool usesEncodingDetector);
</del><ins>+ TextResourceDecoder(const String& mimeType, const TextEncoding& defaultEncoding, bool usesEncodingDetector);
</ins><span class="cx">
</span><span class="cx"> enum ContentType { PlainText, HTML, XML, CSS }; // PlainText only checks for BOM.
</span><span class="cx"> static ContentType determineContentType(const String& mimeType);
</span><span class="lines">@@ -94,7 +93,7 @@
</span><span class="cx"> bool m_sawError;
</span><span class="cx"> bool m_usesEncodingDetector;
</span><span class="cx">
</span><del>- OwnPtr<HTMLMetaCharsetParser> m_charsetParser;
</del><ins>+ std::unique_ptr<HTMLMetaCharsetParser> m_charsetParser;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>