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

Unified Diff: Source/core/dom/ScriptLoader.cpp

Issue 23819007: Have Node::document() return a reference instead of a pointer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/Range.cpp ('k') | Source/core/dom/SelectorQuery.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/ScriptLoader.cpp
diff --git a/Source/core/dom/ScriptLoader.cpp b/Source/core/dom/ScriptLoader.cpp
index 30f9de974cfa0d978fbf0891728c995ca49ef93e..a8af44bf6875707f6ecb33ca52c1c992c609c52e 100644
--- a/Source/core/dom/ScriptLoader.cpp
+++ b/Source/core/dom/ScriptLoader.cpp
@@ -68,8 +68,8 @@ ScriptLoader::ScriptLoader(Element* element, bool parserInserted, bool alreadySt
, m_willExecuteInOrder(false)
{
ASSERT(m_element);
- if (parserInserted && element->document()->scriptableDocumentParser() && !element->document()->isInDocumentWrite())
- m_startLineNumber = element->document()->scriptableDocumentParser()->lineNumber();
+ if (parserInserted && element->document().scriptableDocumentParser() && !element->document().isInDocumentWrite())
+ m_startLineNumber = element->document().scriptableDocumentParser()->lineNumber();
}
ScriptLoader::~ScriptLoader()
@@ -168,10 +168,10 @@ bool ScriptLoader::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes) c
Document* ScriptLoader::executingDocument() const
{
- Document* document = m_element->document();
- if (!document->import())
- return document;
- return document->import()->master();
+ Document& document = m_element->document();
+ if (!document.import())
+ return &document;
+ return document.import()->master();
}
// http://dev.w3.org/html5/spec/Overview.html#prepare-a-script
@@ -212,7 +212,7 @@ bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy
// FIXME: If script is parser inserted, verify it's still in the original document.
Document* executingDocument = this->executingDocument();
- Document* elementDocument = m_element->document();
+ Document& elementDocument = m_element->document();
// FIXME: Eventually we'd like to evaluate scripts which are inserted into a
// viewless document but this'll do for now.
@@ -229,7 +229,7 @@ bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy
if (!client->charsetAttributeValue().isEmpty())
m_characterEncoding = client->charsetAttributeValue();
else
- m_characterEncoding = elementDocument->charset();
+ m_characterEncoding = elementDocument.charset();
if (client->hasSourceAttribute()) {
if (!fetchScript(client->sourceAttributeValue()))
@@ -241,7 +241,7 @@ bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy
m_willBeParserExecuted = true;
} else if (client->hasSourceAttribute() && m_parserInserted && !client->asyncAttributeValue()) {
m_willBeParserExecuted = true;
- } else if (!client->hasSourceAttribute() && m_parserInserted && !elementDocument->haveStylesheetsAndImportsLoaded()) {
+ } else if (!client->hasSourceAttribute() && m_parserInserted && !elementDocument.haveStylesheetsAndImportsLoaded()) {
m_willBeParserExecuted = true;
m_readyToBeParserExecuted = true;
} else if (client->hasSourceAttribute() && !client->asyncAttributeValue() && !m_forceAsync) {
@@ -253,8 +253,8 @@ bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy
m_resource->addClient(this);
} else {
// Reset line numbering for nested writes.
- TextPosition position = elementDocument->isInDocumentWrite() ? TextPosition() : scriptStartPosition;
- KURL scriptURL = (!elementDocument->isInDocumentWrite() && m_parserInserted) ? elementDocument->url() : KURL();
+ TextPosition position = elementDocument.isInDocumentWrite() ? TextPosition() : scriptStartPosition;
+ KURL scriptURL = (!elementDocument.isInDocumentWrite() && m_parserInserted) ? elementDocument.url() : KURL();
executeScript(ScriptSourceCode(scriptContent(), scriptURL, position));
}
@@ -265,10 +265,10 @@ bool ScriptLoader::fetchScript(const String& sourceUrl)
{
ASSERT(m_element);
- RefPtr<Document> elementDocument = m_element->document();
+ RefPtr<Document> elementDocument = &m_element->document();
if (!m_element->dispatchBeforeLoadEvent(sourceUrl))
return false;
- if (!m_element->inDocument() || m_element->document() != elementDocument)
+ if (!m_element->inDocument() || &m_element->document() != elementDocument)
return false;
ASSERT(!m_resource);
@@ -316,7 +316,7 @@ void ScriptLoader::executeScript(const ScriptSourceCode& sourceCode)
return;
RefPtr<Document> executingDocument = this->executingDocument();
- RefPtr<Document> elementDocument = m_element->document();
+ RefPtr<Document> elementDocument = &m_element->document();
Frame* frame = executingDocument->frame();
bool shouldBypassMainWorldContentSecurityPolicy = (frame && frame->script()->shouldBypassMainWorldContentSecurityPolicy()) || elementDocument->contentSecurityPolicy()->allowScriptNonce(m_element->fastGetAttribute(HTMLNames::nonceAttr));
@@ -336,7 +336,7 @@ void ScriptLoader::executeScript(const ScriptSourceCode& sourceCode)
executingDocument->pushCurrentScript(toHTMLScriptElement(m_element));
AccessControlStatus corsCheck = NotSharableCrossOrigin;
- if (sourceCode.resource() && sourceCode.resource()->passesAccessControlCheck(m_element->document()->securityOrigin()))
+ if (sourceCode.resource() && sourceCode.resource()->passesAccessControlCheck(m_element->document().securityOrigin()))
corsCheck = SharableCrossOrigin;
// Create a script from the script element node, using the script
@@ -378,7 +378,7 @@ void ScriptLoader::notifyFinished(Resource* resource)
ASSERT(!m_willBeParserExecuted);
RefPtr<Document> executingDocument = this->executingDocument();
- RefPtr<Document> elementDocument = m_element->document();
+ RefPtr<Document> elementDocument = &m_element->document();
// Resource possibly invokes this notifyFinished() more than
// once because ScriptLoader doesn't unsubscribe itself from
« no previous file with comments | « Source/core/dom/Range.cpp ('k') | Source/core/dom/SelectorQuery.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698