| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 TemporaryChange<bool> traversing(m_traversingClients, true); | 62 TemporaryChange<bool> traversing(m_traversingClients, true); |
| 63 m_clients[i]->importChildWasDestroyed(this); | 63 m_clients[i]->importChildWasDestroyed(this); |
| 64 } | 64 } |
| 65 } | 65 } |
| 66 | 66 |
| 67 void HTMLImportChild::wasAlreadyLoaded() | 67 void HTMLImportChild::wasAlreadyLoaded() |
| 68 { | 68 { |
| 69 ASSERT(!m_loader); | 69 ASSERT(!m_loader); |
| 70 ASSERT(m_clients.size()); | 70 ASSERT(m_clients.size()); |
| 71 | 71 |
| 72 ensureLoader(); |
| 72 loaderWasResolved(); | 73 loaderWasResolved(); |
| 73 ensureLoader(); | |
| 74 } | 74 } |
| 75 | 75 |
| 76 void HTMLImportChild::startLoading(const ResourcePtr<RawResource>& resource) | 76 void HTMLImportChild::startLoading(const ResourcePtr<RawResource>& resource) |
| 77 { | 77 { |
| 78 ASSERT(!hasResource()); | 78 ASSERT(!hasResource()); |
| 79 ASSERT(!m_loader); | 79 ASSERT(!m_loader); |
| 80 | 80 |
| 81 if (isCreatedByParser()) { | 81 if (isCreatedByParser()) { |
| 82 ASSERT(!m_customElementMicrotaskStep); | 82 ASSERT(!m_customElementMicrotaskStep); |
| 83 m_customElementMicrotaskStep = CustomElement::didCreateImport(this); | 83 m_customElementMicrotaskStep = CustomElement::didCreateImport(this); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 ASSERT(m_loader->isOwnedBy(this)); | 154 ASSERT(m_loader->isOwnedBy(this)); |
| 155 m_loader->didFinishParsing(); | 155 m_loader->didFinishParsing(); |
| 156 } | 156 } |
| 157 | 157 |
| 158 // Once all preceding imports are loaded and "document blocking" ends, | 158 // Once all preceding imports are loaded and "document blocking" ends, |
| 159 // HTMLImportChild can decide whether it should load the import by itself | 159 // HTMLImportChild can decide whether it should load the import by itself |
| 160 // or it can share existing one. | 160 // or it can share existing one. |
| 161 void HTMLImportChild::didUnblockFromCreatingDocument() | 161 void HTMLImportChild::didUnblockFromCreatingDocument() |
| 162 { | 162 { |
| 163 HTMLImport::didUnblockFromCreatingDocument(); | 163 HTMLImport::didUnblockFromCreatingDocument(); |
| 164 ASSERT(!m_loader || !m_loader->isOwnedBy(this)); | |
| 165 ensureLoader(); | 164 ensureLoader(); |
| 166 } | 165 } |
| 167 | 166 |
| 168 void HTMLImportChild::didBecomeReady() | 167 void HTMLImportChild::didBecomeReady() |
| 169 { | 168 { |
| 170 HTMLImport::didBecomeReady(); | 169 HTMLImport::didBecomeReady(); |
| 171 didFinish(); | 170 didFinish(); |
| 172 } | 171 } |
| 173 | 172 |
| 174 void HTMLImportChild::ensureLoader() | 173 void HTMLImportChild::ensureLoader() |
| (...skipping 22 matching lines...) Expand all Loading... |
| 197 m_loader = loader->m_loader; | 196 m_loader = loader->m_loader; |
| 198 m_loader->addClient(this); | 197 m_loader->addClient(this); |
| 199 root()->blockerGone(); | 198 root()->blockerGone(); |
| 200 } | 199 } |
| 201 | 200 |
| 202 bool HTMLImportChild::isDone() const | 201 bool HTMLImportChild::isDone() const |
| 203 { | 202 { |
| 204 return m_loader && m_loader->isDone(); | 203 return m_loader && m_loader->isDone(); |
| 205 } | 204 } |
| 206 | 205 |
| 206 bool HTMLImportChild::hasLoader() const |
| 207 { |
| 208 return m_loader; |
| 209 } |
| 210 |
| 207 bool HTMLImportChild::ownsLoader() const | 211 bool HTMLImportChild::ownsLoader() const |
| 208 { | 212 { |
| 209 return m_loader->isOwnedBy(this); | 213 return m_loader->isOwnedBy(this); |
| 210 } | 214 } |
| 211 | 215 |
| 212 bool HTMLImportChild::loaderHasError() const | 216 bool HTMLImportChild::loaderHasError() const |
| 213 { | 217 { |
| 214 return m_loader && m_loader->hasError(); | 218 return m_loader && m_loader->hasError(); |
| 215 } | 219 } |
| 216 | 220 |
| 217 | 221 |
| 218 void HTMLImportChild::addClient(HTMLImportChildClient* client) | 222 void HTMLImportChild::addClient(HTMLImportChildClient* client) |
| 219 { | 223 { |
| 220 ASSERT(!m_traversingClients); | 224 ASSERT(!m_traversingClients); |
| 221 ASSERT(!m_clients.contains(client)); | 225 ASSERT(!m_clients.contains(client)); |
| 222 m_clients.append(client); | 226 m_clients.append(client); |
| 223 } | 227 } |
| 224 | 228 |
| 225 void HTMLImportChild::removeClient(HTMLImportChildClient* client) | 229 void HTMLImportChild::removeClient(HTMLImportChildClient* client) |
| 226 { | 230 { |
| 227 ASSERT(!m_traversingClients); | 231 ASSERT(!m_traversingClients); |
| 228 size_t i = m_clients.find(client); | 232 size_t i = m_clients.find(client); |
| 229 ASSERT(i != kNotFound); | 233 ASSERT(i != kNotFound); |
| 230 m_clients.remove(i); | 234 m_clients.remove(i); |
| 231 } | 235 } |
| 232 | 236 |
| 233 } // namespace WebCore | 237 } // namespace WebCore |
| OLD | NEW |