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

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

Issue 18261015: Rename ScriptElement to ScriptLoader (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 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/ScriptLoader.h ('k') | Source/core/dom/ScriptLoaderClient.h » ('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/ScriptElement.cpp b/Source/core/dom/ScriptLoader.cpp
similarity index 82%
rename from Source/core/dom/ScriptElement.cpp
rename to Source/core/dom/ScriptLoader.cpp
index 2c0ca9073796343041ec7f10feb87adbeaffb095..664c9a76e7cc341368b181bad49bd56264c58567 100644
--- a/Source/core/dom/ScriptElement.cpp
+++ b/Source/core/dom/ScriptLoader.cpp
@@ -22,7 +22,7 @@
*/
#include "config.h"
-#include "core/dom/ScriptElement.h"
+#include "core/dom/ScriptLoader.h"
#include "HTMLNames.h"
#include "SVGNames.h"
@@ -31,6 +31,7 @@
#include "core/dom/Document.h"
#include "core/dom/Event.h"
#include "core/dom/IgnoreDestructiveWriteCountIncrementer.h"
+#include "core/dom/ScriptLoaderClient.h"
#include "core/dom/ScriptRunner.h"
#include "core/dom/ScriptableDocumentParser.h"
#include "core/dom/Text.h"
@@ -51,7 +52,7 @@
namespace WebCore {
-ScriptElement::ScriptElement(Element* element, bool parserInserted, bool alreadyStarted)
+ScriptLoader::ScriptLoader(Element* element, bool parserInserted, bool alreadyStarted)
: m_element(element)
, m_cachedScript(0)
, m_startLineNumber(WTF::OrdinalNumber::beforeFirst())
@@ -70,24 +71,24 @@ ScriptElement::ScriptElement(Element* element, bool parserInserted, bool already
m_startLineNumber = element->document()->scriptableDocumentParser()->lineNumber();
}
-ScriptElement::~ScriptElement()
+ScriptLoader::~ScriptLoader()
{
stopLoadRequest();
}
-void ScriptElement::insertedInto(ContainerNode* insertionPoint)
+void ScriptLoader::insertedInto(ContainerNode* insertionPoint)
{
if (insertionPoint->inDocument() && !m_parserInserted)
prepareScript(); // FIXME: Provide a real starting line number here.
}
-void ScriptElement::childrenChanged()
+void ScriptLoader::childrenChanged()
{
if (!m_parserInserted && m_element->inDocument())
prepareScript(); // FIXME: Provide a real starting line number here.
}
-void ScriptElement::handleSourceAttribute(const String& sourceUrl)
+void ScriptLoader::handleSourceAttribute(const String& sourceUrl)
{
if (ignoresLoadRequest() || sourceUrl.isEmpty())
return;
@@ -95,7 +96,7 @@ void ScriptElement::handleSourceAttribute(const String& sourceUrl)
prepareScript(); // FIXME: Provide a real starting line number here.
}
-void ScriptElement::handleAsyncAttribute()
+void ScriptLoader::handleAsyncAttribute()
{
m_forceAsync = false;
}
@@ -131,20 +132,20 @@ static bool isLegacySupportedJavaScriptLanguage(const String& language)
return languages.contains(language);
}
-void ScriptElement::dispatchErrorEvent()
+void ScriptLoader::dispatchErrorEvent()
{
m_element->dispatchEvent(Event::create(eventNames().errorEvent, false, false));
}
-void ScriptElement::dispatchLoadEvent()
+void ScriptLoader::dispatchLoadEvent()
{
ASSERT(!haveFiredLoadEvent());
- if (ScriptElementClient* client = this->client())
+ if (ScriptLoaderClient* client = this->client())
client->dispatchLoadEvent();
setHaveFiredLoadEvent(true);
}
-bool ScriptElement::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes) const
+bool ScriptLoader::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes) const
{
// FIXME: isLegacySupportedJavaScriptLanguage() is not valid HTML5. It is used here to maintain backwards compatibility with existing layout tests. The specific violations are:
// - Allowing type=javascript. type= should only support MIME types, such as text/javascript.
@@ -158,25 +159,28 @@ bool ScriptElement::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes)
type = "text/" + language.lower();
if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type) || isLegacySupportedJavaScriptLanguage(language))
return true;
- } else if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type.stripWhiteSpace().lower()) || (supportLegacyTypes == AllowLegacyTypeInTypeAttribute && isLegacySupportedJavaScriptLanguage(type)))
+ } else if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type.stripWhiteSpace().lower()) || (supportLegacyTypes == AllowLegacyTypeInTypeAttribute && isLegacySupportedJavaScriptLanguage(type))) {
return true;
+ }
+
return false;
}
// http://dev.w3.org/html5/spec/Overview.html#prepare-a-script
-bool ScriptElement::prepareScript(const TextPosition& scriptStartPosition, LegacyTypeSupport supportLegacyTypes)
+bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, LegacyTypeSupport supportLegacyTypes)
{
if (m_alreadyStarted)
return false;
- ScriptElementClient* client = this->client();
+ ScriptLoaderClient* client = this->client();
bool wasParserInserted;
if (m_parserInserted) {
wasParserInserted = true;
m_parserInserted = false;
- } else
+ } else {
wasParserInserted = false;
+ }
if (wasParserInserted && !client->asyncAttributeValue())
m_forceAsync = true;
@@ -218,16 +222,17 @@ bool ScriptElement::prepareScript(const TextPosition& scriptStartPosition, Legac
else
m_characterEncoding = document->charset();
- if (client->hasSourceAttribute())
+ if (client->hasSourceAttribute()) {
if (!requestScript(client->sourceAttributeValue()))
return false;
+ }
if (client->hasSourceAttribute() && client->deferAttributeValue() && m_parserInserted && !client->asyncAttributeValue()) {
m_willExecuteWhenDocumentFinishedParsing = true;
m_willBeParserExecuted = true;
- } else if (client->hasSourceAttribute() && m_parserInserted && !client->asyncAttributeValue())
+ } else if (client->hasSourceAttribute() && m_parserInserted && !client->asyncAttributeValue()) {
m_willBeParserExecuted = true;
- else if (!client->hasSourceAttribute() && m_parserInserted && !document->haveStylesheetsAndImportsLoaded()) {
+ } else if (!client->hasSourceAttribute() && m_parserInserted && !document->haveStylesheetsAndImportsLoaded()) {
m_willBeParserExecuted = true;
m_readyToBeParserExecuted = true;
} else if (client->hasSourceAttribute() && !client->asyncAttributeValue() && !m_forceAsync) {
@@ -247,7 +252,7 @@ bool ScriptElement::prepareScript(const TextPosition& scriptStartPosition, Legac
return true;
}
-bool ScriptElement::requestScript(const String& sourceUrl)
+bool ScriptLoader::requestScript(const String& sourceUrl)
{
ASSERT(m_element);
@@ -284,17 +289,17 @@ bool ScriptElement::requestScript(const String& sourceUrl)
return false;
}
-bool isHTMLScriptElement(Element* element)
+bool isHTMLScriptLoader(Element* element)
{
return element->hasTagName(HTMLNames::scriptTag);
}
-bool isSVGScriptElement(Element* element)
+bool isSVGScriptLoader(Element* element)
{
return element->hasTagName(SVGNames::scriptTag);
}
-void ScriptElement::executeScript(const ScriptSourceCode& sourceCode)
+void ScriptLoader::executeScript(const ScriptSourceCode& sourceCode)
{
ASSERT(m_alreadyStarted);
@@ -315,26 +320,24 @@ void ScriptElement::executeScript(const ScriptSourceCode& sourceCode)
}
if (frame) {
- {
- IgnoreDestructiveWriteCountIncrementer ignoreDesctructiveWriteCountIncrementer(m_isExternalScript ? document.get() : 0);
+ IgnoreDestructiveWriteCountIncrementer ignoreDesctructiveWriteCountIncrementer(m_isExternalScript ? document.get() : 0);
- if (isHTMLScriptElement(m_element))
- document->pushCurrentScript(toHTMLScriptElement(m_element));
+ if (isHTMLScriptLoader(m_element))
+ document->pushCurrentScript(toHTMLScriptElement(m_element));
- // Create a script from the script element node, using the script
- // block's source and the script block's type.
- // Note: This is where the script is compiled and actually executed.
- frame->script()->executeScriptInMainWorld(sourceCode);
+ // Create a script from the script element node, using the script
+ // block's source and the script block's type.
+ // Note: This is where the script is compiled and actually executed.
+ frame->script()->executeScriptInMainWorld(sourceCode);
- if (isHTMLScriptElement(m_element)) {
- ASSERT(document->currentScript() == m_element);
- document->popCurrentScript();
- }
+ if (isHTMLScriptLoader(m_element)) {
+ ASSERT(document->currentScript() == m_element);
+ document->popCurrentScript();
}
}
}
-void ScriptElement::stopLoadRequest()
+void ScriptLoader::stopLoadRequest()
{
if (m_cachedScript) {
if (!m_willBeParserExecuted)
@@ -343,25 +346,25 @@ void ScriptElement::stopLoadRequest()
}
}
-void ScriptElement::execute(CachedScript* cachedScript)
+void ScriptLoader::execute(CachedScript* cachedScript)
{
ASSERT(!m_willBeParserExecuted);
ASSERT(cachedScript);
- if (cachedScript->errorOccurred())
+ if (cachedScript->errorOccurred()) {
dispatchErrorEvent();
- else if (!cachedScript->wasCanceled()) {
+ } else if (!cachedScript->wasCanceled()) {
executeScript(ScriptSourceCode(cachedScript));
dispatchLoadEvent();
}
cachedScript->removeClient(this);
}
-void ScriptElement::notifyFinished(CachedResource* resource)
+void ScriptLoader::notifyFinished(CachedResource* resource)
{
ASSERT(!m_willBeParserExecuted);
// CachedResource possibly invokes this notifyFinished() more than
- // once because ScriptElement doesn't unsubscribe itself from
+ // once because ScriptLoader doesn't unsubscribe itself from
// CachedResource here and does it in execute() instead.
// We use m_cachedScript to check if this function is already called.
ASSERT_UNUSED(resource, resource == m_cachedScript);
@@ -380,12 +383,12 @@ void ScriptElement::notifyFinished(CachedResource* resource)
m_cachedScript = 0;
}
-bool ScriptElement::ignoresLoadRequest() const
+bool ScriptLoader::ignoresLoadRequest() const
{
return m_alreadyStarted || m_isExternalScript || m_parserInserted || !element() || !element()->inDocument();
}
-bool ScriptElement::isScriptForEventSupported() const
+bool ScriptLoader::isScriptForEventSupported() const
{
String eventAttribute = client()->eventAttributeValue();
String forAttribute = client()->forAttributeValue();
@@ -401,30 +404,30 @@ bool ScriptElement::isScriptForEventSupported() const
return true;
}
-String ScriptElement::scriptContent() const
+String ScriptLoader::scriptContent() const
{
return m_element->textFromChildren();
}
-ScriptElementClient* ScriptElement::client() const
+ScriptLoaderClient* ScriptLoader::client() const
{
- if (isHTMLScriptElement(m_element))
+ if (isHTMLScriptLoader(m_element))
return toHTMLScriptElement(m_element);
- if (isSVGScriptElement(m_element))
+ if (isSVGScriptLoader(m_element))
return toSVGScriptElement(m_element);
ASSERT_NOT_REACHED();
return 0;
}
-ScriptElement* toScriptElementIfPossible(Element* element)
+ScriptLoader* toScriptLoaderIfPossible(Element* element)
{
- if (isHTMLScriptElement(element))
- return toHTMLScriptElement(element)->scriptElement();
+ if (isHTMLScriptLoader(element))
+ return toHTMLScriptElement(element)->loader();
- if (isSVGScriptElement(element))
- return toSVGScriptElement(element)->scriptElement();
+ if (isSVGScriptLoader(element))
+ return toSVGScriptElement(element)->loader();
return 0;
}
« no previous file with comments | « Source/core/dom/ScriptLoader.h ('k') | Source/core/dom/ScriptLoaderClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698