| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "modules/fetch/FetchManager.h" | 5 #include "modules/fetch/FetchManager.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/ScriptPromiseResolver.h" | 8 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| 9 #include "bindings/core/v8/ScriptState.h" | 9 #include "bindings/core/v8/ScriptState.h" |
| 10 #include "bindings/core/v8/V8ThrowException.h" | 10 #include "bindings/core/v8/V8ThrowException.h" |
| (...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 void FetchManager::Loader::notifyFinished() { | 888 void FetchManager::Loader::notifyFinished() { |
| 889 if (m_fetchManager) | 889 if (m_fetchManager) |
| 890 m_fetchManager->onLoaderFinished(this); | 890 m_fetchManager->onLoaderFinished(this); |
| 891 } | 891 } |
| 892 | 892 |
| 893 FetchManager* FetchManager::create(ExecutionContext* executionContext) { | 893 FetchManager* FetchManager::create(ExecutionContext* executionContext) { |
| 894 return new FetchManager(executionContext); | 894 return new FetchManager(executionContext); |
| 895 } | 895 } |
| 896 | 896 |
| 897 FetchManager::FetchManager(ExecutionContext* executionContext) | 897 FetchManager::FetchManager(ExecutionContext* executionContext) |
| 898 : ContextLifecycleObserver(executionContext), m_isStopped(false) {} | 898 : ContextLifecycleObserver(executionContext) {} |
| 899 | 899 |
| 900 ScriptPromise FetchManager::fetch(ScriptState* scriptState, | 900 ScriptPromise FetchManager::fetch(ScriptState* scriptState, |
| 901 FetchRequestData* request) { | 901 FetchRequestData* request) { |
| 902 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); | 902 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
| 903 ScriptPromise promise = resolver->promise(); | 903 ScriptPromise promise = resolver->promise(); |
| 904 | 904 |
| 905 request->setContext(WebURLRequest::RequestContextFetch); | 905 request->setContext(WebURLRequest::RequestContextFetch); |
| 906 | 906 |
| 907 Loader* loader = | 907 Loader* loader = |
| 908 Loader::create(getExecutionContext(), this, resolver, request, | 908 Loader::create(getExecutionContext(), this, resolver, request, |
| 909 scriptState->world().isIsolatedWorld()); | 909 scriptState->world().isIsolatedWorld()); |
| 910 m_loaders.add(loader); | 910 m_loaders.add(loader); |
| 911 loader->start(); | 911 loader->start(); |
| 912 return promise; | 912 return promise; |
| 913 } | 913 } |
| 914 | 914 |
| 915 void FetchManager::contextDestroyed() { | 915 void FetchManager::contextDestroyed() { |
| 916 ASSERT(!m_isStopped); | |
| 917 m_isStopped = true; | |
| 918 for (auto& loader : m_loaders) | 916 for (auto& loader : m_loaders) |
| 919 loader->dispose(); | 917 loader->dispose(); |
| 920 } | 918 } |
| 921 | 919 |
| 922 void FetchManager::onLoaderFinished(Loader* loader) { | 920 void FetchManager::onLoaderFinished(Loader* loader) { |
| 923 m_loaders.remove(loader); | 921 m_loaders.remove(loader); |
| 924 loader->dispose(); | 922 loader->dispose(); |
| 925 } | 923 } |
| 926 | 924 |
| 927 DEFINE_TRACE(FetchManager) { | 925 DEFINE_TRACE(FetchManager) { |
| 928 visitor->trace(m_loaders); | 926 visitor->trace(m_loaders); |
| 929 ContextLifecycleObserver::trace(visitor); | 927 ContextLifecycleObserver::trace(visitor); |
| 930 } | 928 } |
| 931 | 929 |
| 932 } // namespace blink | 930 } // namespace blink |
| OLD | NEW |