OLD | NEW |
1 // Copyright (c) 2009, Google Inc. | 1 // Copyright (c) 2009, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 // DartDOMData::current()->applicationLoader() may be 0 at this point. | 94 // DartDOMData::current()->applicationLoader() may be 0 at this point. |
95 return DartUtilities::canonicalizeUrl(library, urlHandle, url); | 95 return DartUtilities::canonicalizeUrl(library, urlHandle, url); |
96 } | 96 } |
97 | 97 |
98 ASSERT(DartDOMData::current()->applicationLoader()); | 98 ASSERT(DartDOMData::current()->applicationLoader()); |
99 return DartDOMData::current()->applicationLoader()->libraryTagHandler(tag, l
ibrary, urlHandle, url); | 99 return DartDOMData::current()->applicationLoader()->libraryTagHandler(tag, l
ibrary, urlHandle, url); |
100 } | 100 } |
101 | 101 |
102 Dart_Handle DartApplicationLoader::libraryTagHandler(Dart_LibraryTag tag, Dart_H
andle library, Dart_Handle urlHandle, String url) | 102 Dart_Handle DartApplicationLoader::libraryTagHandler(Dart_LibraryTag tag, Dart_H
andle library, Dart_Handle urlHandle, String url) |
103 { | 103 { |
104 ASSERT(m_asyncLoader->contains(url)); | 104 if (!m_asyncLoader->contains(url)) { |
| 105 scriptLoadError(url); |
| 106 return Dart_NewBoolean(false); |
| 107 } |
| 108 |
105 const String& source = m_asyncLoader->get(url); | 109 const String& source = m_asyncLoader->get(url); |
106 | 110 |
107 Dart_Handle import; | 111 Dart_Handle import; |
108 if (tag == Dart_kImportTag) { | 112 if (tag == Dart_kImportTag) { |
109 import = Dart_LoadLibrary(DartUtilities::stringToDartString(url), DartUt
ilities::convertSourceString(source)); | 113 import = Dart_LoadLibrary(DartUtilities::stringToDartString(url), DartUt
ilities::convertSourceString(source)); |
110 } else if (tag == Dart_kSourceTag) { | 114 } else if (tag == Dart_kSourceTag) { |
111 import = Dart_LoadSource(library, DartUtilities::stringToDartString(url)
, DartUtilities::convertSourceString(source)); | 115 import = Dart_LoadSource(library, DartUtilities::stringToDartString(url)
, DartUtilities::convertSourceString(source)); |
112 } else { | 116 } else { |
113 ASSERT_NOT_REACHED(); | 117 ASSERT_NOT_REACHED(); |
| 118 m_scriptHasError = true; |
114 DartUtilities::reportProblem(m_originDocument, "Invalid import tag"); | 119 DartUtilities::reportProblem(m_originDocument, "Invalid import tag"); |
115 return Dart_NewBoolean(false); | 120 return Dart_NewBoolean(false); |
116 } | 121 } |
117 | 122 |
118 if (Dart_IsError(import)) { | 123 if (Dart_IsError(import)) { |
119 reportDartError(import); | 124 reportDartError(import); |
120 return Dart_NewBoolean(false); | 125 return Dart_NewBoolean(false); |
121 } | 126 } |
122 | 127 |
123 return Dart_NewBoolean(true); | 128 return Dart_NewBoolean(true); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 | 258 |
254 Dart_Handle DartApplicationLoader::topLevelLibrary() | 259 Dart_Handle DartApplicationLoader::topLevelLibrary() |
255 { | 260 { |
256 Dart_Handle library = Dart_LookupLibrary(DartUtilities::stringToDartString(m
_libraryUrl)); | 261 Dart_Handle library = Dart_LookupLibrary(DartUtilities::stringToDartString(m
_libraryUrl)); |
257 ASSERT(!Dart_IsError(library)); | 262 ASSERT(!Dart_IsError(library)); |
258 return library; | 263 return library; |
259 } | 264 } |
260 | 265 |
261 void DartApplicationLoader::scriptLoadError(String failedUrl) | 266 void DartApplicationLoader::scriptLoadError(String failedUrl) |
262 { | 267 { |
| 268 m_scriptHasError = true; |
263 // FIXME: try to dig out line number, -1 for now. | 269 // FIXME: try to dig out line number, -1 for now. |
264 if (failedUrl.startsWith(String("dart:"))) { | 270 if (failedUrl.startsWith(String("dart:"))) { |
265 m_originDocument->logExceptionToConsole(String("The built-in library '")
+ failedUrl + String("' is not available on Dartium."), m_libraryUrl, -1, 0, 0)
; | 271 m_originDocument->logExceptionToConsole(String("The built-in library '")
+ failedUrl + String("' is not available on Dartium."), m_libraryUrl, -1, 0, 0)
; |
266 } else { | 272 } else { |
267 m_originDocument->logExceptionToConsole(String("Failed to load a file ")
+ failedUrl, m_libraryUrl, -1, 0, 0); | 273 m_originDocument->logExceptionToConsole(String("Failed to load a file ")
+ failedUrl, m_libraryUrl, -1, 0, 0); |
268 } | 274 } |
269 m_errorEventDispatcher->dispatchErrorEvent(); | 275 m_errorEventDispatcher->dispatchErrorEvent(); |
270 } | 276 } |
271 | 277 |
272 } | 278 } |
OLD | NEW |