Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/loader/modulescript/ModuleTreeLinker.h" | 5 #include "core/loader/modulescript/ModuleTreeLinker.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ScriptModule.h" | 7 #include "bindings/core/v8/ScriptModule.h" |
| 8 #include "core/dom/AncestorList.h" | 8 #include "core/dom/AncestorList.h" |
| 9 #include "core/dom/ModuleScript.h" | 9 #include "core/dom/ModuleScript.h" |
| 10 #include "core/loader/modulescript/ModuleScriptFetchRequest.h" | 10 #include "core/loader/modulescript/ModuleScriptFetchRequest.h" |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 369 Instantiate(); | 369 Instantiate(); |
| 370 } | 370 } |
| 371 } | 371 } |
| 372 | 372 |
| 373 void ModuleTreeLinker::Instantiate() { | 373 void ModuleTreeLinker::Instantiate() { |
| 374 CHECK(module_script_); | 374 CHECK(module_script_); |
| 375 AdvanceState(State::kInstantiating); | 375 AdvanceState(State::kInstantiating); |
| 376 | 376 |
| 377 // https://html.spec.whatwg.org/multipage/webappapis.html#internal-module-scri pt-graph-fetching-procedure | 377 // https://html.spec.whatwg.org/multipage/webappapis.html#internal-module-scri pt-graph-fetching-procedure |
| 378 | 378 |
| 379 // [nospec] Abort the steps if the browsing context is discarded. | |
|
hiroshige
2017/05/16 17:09:19
(Not blocking this CL) if we need to check the con
kouhei (in TOK)
2017/05/16 17:52:35
I checked other places when writing this CL, but t
| |
| 380 if (!modulator_->IsContextValid()) { | |
| 381 descendants_module_script_ = nullptr; | |
| 382 AdvanceState(State::kFinished); | |
| 383 return; | |
| 384 } | |
| 385 | |
| 379 // Step 5. Let instantiationStatus be null. | 386 // Step 5. Let instantiationStatus be null. |
| 380 // Note: The |error| variable corresponds to spec variable | 387 // Note: The |error| variable corresponds to spec variable |
| 381 // "instantiationStatus". If |error| is empty, it indicates successful | 388 // "instantiationStatus". If |error| is empty, it indicates successful |
| 382 // completion. | 389 // completion. |
| 383 ScriptValue error; | 390 ScriptValue error; |
| 384 | 391 |
| 385 // Step 6. If result's instantiation state is "errored",... | 392 // Step 6. If result's instantiation state is "errored",... |
| 386 if (module_script_->InstantiationState() == | 393 if (module_script_->InstantiationState() == |
| 387 ModuleInstantiationState::kErrored) { | 394 ModuleInstantiationState::kErrored) { |
| 388 // ... Set instantiationStatus to record.ModuleDeclarationInstantiation(). | 395 // ... Set instantiationStatus to record.ModuleDeclarationInstantiation(). |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 512 HeapHashSet<Member<ModuleScript>> uninstantiated_set; | 519 HeapHashSet<Member<ModuleScript>> uninstantiated_set; |
| 513 for (const auto& script : inclusive_descendants) { | 520 for (const auto& script : inclusive_descendants) { |
| 514 if (script->InstantiationState() == | 521 if (script->InstantiationState() == |
| 515 ModuleInstantiationState::kUninstantiated) | 522 ModuleInstantiationState::kUninstantiated) |
| 516 uninstantiated_set.insert(script); | 523 uninstantiated_set.insert(script); |
| 517 } | 524 } |
| 518 return uninstantiated_set; | 525 return uninstantiated_set; |
| 519 } | 526 } |
| 520 | 527 |
| 521 } // namespace blink | 528 } // namespace blink |
| OLD | NEW |