Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv ed. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserv ed. |
| 6 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> | 6 * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 156 m_element->dispatchEvent(Event::create(EventTypeNames::error)); | 156 m_element->dispatchEvent(Event::create(EventTypeNames::error)); |
| 157 } | 157 } |
| 158 | 158 |
| 159 void ScriptLoader::dispatchLoadEvent() | 159 void ScriptLoader::dispatchLoadEvent() |
| 160 { | 160 { |
| 161 if (ScriptLoaderClient* client = this->client()) | 161 if (ScriptLoaderClient* client = this->client()) |
| 162 client->dispatchLoadEvent(); | 162 client->dispatchLoadEvent(); |
| 163 setHaveFiredLoadEvent(true); | 163 setHaveFiredLoadEvent(true); |
| 164 } | 164 } |
| 165 | 165 |
| 166 bool ScriptLoader::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes) c onst | 166 // static |
|
Yoav Weiss
2016/06/25 08:08:16
delete?
Charlie Harrison
2016/06/27 19:44:10
Done.
| |
| 167 bool ScriptLoader::isValidScriptTypeAndLanguage(const String& type, const String & language, LegacyTypeSupport supportLegacyTypes) | |
| 167 { | 168 { |
| 168 // FIXME: isLegacySupportedJavaScriptLanguage() is not valid HTML5. It is us ed here to maintain backwards compatibility with existing layout tests. The spec ific violations are: | 169 // FIXME: isLegacySupportedJavaScriptLanguage() is not valid HTML5. It is us ed here to maintain backwards compatibility with existing layout tests. The spec ific violations are: |
| 169 // - Allowing type=javascript. type= should only support MIME types, such as text/javascript. | 170 // - Allowing type=javascript. type= should only support MIME types, such as text/javascript. |
| 170 // - Allowing a different set of languages for language= and type=. language = supports Javascript 1.1 and 1.4-1.6, but type= does not. | 171 // - Allowing a different set of languages for language= and type=. language = supports Javascript 1.1 and 1.4-1.6, but type= does not. |
| 171 | 172 |
| 172 String type = client()->typeAttributeValue(); | |
| 173 String language = client()->languageAttributeValue(); | |
| 174 if (type.isEmpty() && language.isEmpty()) | 173 if (type.isEmpty() && language.isEmpty()) |
|
Yoav Weiss
2016/06/25 08:08:16
nit: we can move the language.isEmpty() check to t
Charlie Harrison
2016/06/27 19:44:10
Done.
| |
| 175 return true; // Assume text/javascript. | 174 return true; // Assume text/javascript. |
| 176 if (type.isEmpty()) { | 175 if (type.isEmpty()) { |
| 177 type = "text/" + language.lower(); | 176 if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type + language.lowe r()) || isLegacySupportedJavaScriptLanguage(language)) |
|
Yoav Weiss
2016/06/25 08:08:16
why "type + " here if type is empty? Did you mean
Charlie Harrison
2016/06/27 19:44:10
Oops. Fixed.
| |
| 178 if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type) || isLegacySup portedJavaScriptLanguage(language)) | |
| 179 return true; | 177 return true; |
| 180 } else if (RuntimeEnabledFeatures::moduleScriptsEnabled() && type == "module ") { | 178 } else if (RuntimeEnabledFeatures::moduleScriptsEnabled() && type == "module ") { |
| 181 return true; | 179 return true; |
| 182 } else if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type.stripWhiteSp ace()) || (supportLegacyTypes == AllowLegacyTypeInTypeAttribute && isLegacySuppo rtedJavaScriptLanguage(type))) { | 180 } else if (MIMETypeRegistry::isSupportedJavaScriptMIMEType(type.stripWhiteSp ace()) || (supportLegacyTypes == AllowLegacyTypeInTypeAttribute && isLegacySuppo rtedJavaScriptLanguage(type))) { |
| 183 return true; | 181 return true; |
| 184 } | 182 } |
| 185 | 183 |
| 186 return false; | 184 return false; |
| 187 } | 185 } |
| 188 | 186 |
| 187 bool ScriptLoader::isScriptTypeSupported(LegacyTypeSupport supportLegacyTypes) c onst | |
| 188 { | |
| 189 return isValidScriptTypeAndLanguage(client()->typeAttributeValue(), client() ->languageAttributeValue(), supportLegacyTypes); | |
| 190 } | |
| 191 | |
| 189 // http://dev.w3.org/html5/spec/Overview.html#prepare-a-script | 192 // http://dev.w3.org/html5/spec/Overview.html#prepare-a-script |
| 190 bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy TypeSupport supportLegacyTypes) | 193 bool ScriptLoader::prepareScript(const TextPosition& scriptStartPosition, Legacy TypeSupport supportLegacyTypes) |
| 191 { | 194 { |
| 192 if (m_alreadyStarted) | 195 if (m_alreadyStarted) |
| 193 return false; | 196 return false; |
| 194 | 197 |
| 195 ScriptLoaderClient* client = this->client(); | 198 ScriptLoaderClient* client = this->client(); |
| 196 | 199 |
| 197 bool wasParserInserted; | 200 bool wasParserInserted; |
| 198 if (m_parserInserted) { | 201 if (m_parserInserted) { |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 520 if (isHTMLScriptLoader(element)) | 523 if (isHTMLScriptLoader(element)) |
| 521 return toHTMLScriptElement(element)->loader(); | 524 return toHTMLScriptElement(element)->loader(); |
| 522 | 525 |
| 523 if (isSVGScriptLoader(element)) | 526 if (isSVGScriptLoader(element)) |
| 524 return toSVGScriptElement(element)->loader(); | 527 return toSVGScriptElement(element)->loader(); |
| 525 | 528 |
| 526 return 0; | 529 return 0; |
| 527 } | 530 } |
| 528 | 531 |
| 529 } // namespace blink | 532 } // namespace blink |
| OLD | NEW |