| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 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 13 matching lines...) Expand all Loading... |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #ifndef WorkerThreadableLoader_h | 31 #ifndef WorkerThreadableLoader_h |
| 32 #define WorkerThreadableLoader_h | 32 #define WorkerThreadableLoader_h |
| 33 | 33 |
| 34 #include "core/dom/ExecutionContextTask.h" | |
| 35 #include "core/loader/ThreadableLoader.h" | 34 #include "core/loader/ThreadableLoader.h" |
| 36 #include "core/loader/ThreadableLoaderClient.h" | 35 #include "core/loader/ThreadableLoaderClient.h" |
| 37 #include "core/workers/WorkerThread.h" | 36 #include "core/workers/WorkerThread.h" |
| 38 #include "core/workers/WorkerThreadLifecycleObserver.h" | 37 #include "core/workers/WorkerThreadLifecycleObserver.h" |
| 39 #include "platform/WaitableEvent.h" | 38 #include "platform/WaitableEvent.h" |
| 40 #include "platform/heap/Handle.h" | 39 #include "platform/heap/Handle.h" |
| 41 #include "public/platform/WebTraceLocation.h" | 40 #include "public/platform/WebTraceLocation.h" |
| 42 #include "wtf/PassRefPtr.h" | 41 #include "wtf/PassRefPtr.h" |
| 43 #include "wtf/RefPtr.h" | 42 #include "wtf/RefPtr.h" |
| 44 #include "wtf/Threading.h" | 43 #include "wtf/Threading.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 // ThreadableLoader functions | 102 // ThreadableLoader functions |
| 104 void start(const ResourceRequest&) override; | 103 void start(const ResourceRequest&) override; |
| 105 void overrideTimeout(unsigned long timeout) override; | 104 void overrideTimeout(unsigned long timeout) override; |
| 106 void cancel() override; | 105 void cancel() override; |
| 107 | 106 |
| 108 DECLARE_TRACE(); | 107 DECLARE_TRACE(); |
| 109 | 108 |
| 110 private: | 109 private: |
| 111 enum BlockingBehavior { LoadSynchronously, LoadAsynchronously }; | 110 enum BlockingBehavior { LoadSynchronously, LoadAsynchronously }; |
| 112 | 111 |
| 113 // A TaskForwarder forwards an ExecutionContextTask to the worker thread. | 112 // A TaskForwarder forwards a task to the worker thread. |
| 114 class TaskForwarder : public GarbageCollectedFinalized<TaskForwarder> { | 113 class TaskForwarder : public GarbageCollectedFinalized<TaskForwarder> { |
| 115 public: | 114 public: |
| 116 virtual ~TaskForwarder() {} | 115 virtual ~TaskForwarder() {} |
| 117 virtual void forwardTask(const WebTraceLocation&, | 116 virtual void forwardTask(const WebTraceLocation&, |
| 118 std::unique_ptr<ExecutionContextTask>) = 0; | 117 std::unique_ptr<CrossThreadClosure>) = 0; |
| 119 virtual void forwardTaskWithDoneSignal( | 118 virtual void forwardTaskWithDoneSignal( |
| 120 const WebTraceLocation&, | 119 const WebTraceLocation&, |
| 121 std::unique_ptr<ExecutionContextTask>) = 0; | 120 std::unique_ptr<CrossThreadClosure>) = 0; |
| 122 virtual void abort() = 0; | 121 virtual void abort() = 0; |
| 123 | 122 |
| 124 DEFINE_INLINE_VIRTUAL_TRACE() {} | 123 DEFINE_INLINE_VIRTUAL_TRACE() {} |
| 125 }; | 124 }; |
| 126 class AsyncTaskForwarder; | 125 class AsyncTaskForwarder; |
| 127 struct TaskWithLocation; | 126 struct TaskWithLocation; |
| 128 class WaitableEventWithTasks; | 127 class WaitableEventWithTasks; |
| 129 class SyncTaskForwarder; | 128 class SyncTaskForwarder; |
| 130 | 129 |
| 131 // An instance of this class lives in the main thread. It is a | 130 // An instance of this class lives in the main thread. It is a |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 ResourceLoaderOptions m_resourceLoaderOptions; | 216 ResourceLoaderOptions m_resourceLoaderOptions; |
| 218 BlockingBehavior m_blockingBehavior; | 217 BlockingBehavior m_blockingBehavior; |
| 219 | 218 |
| 220 // |*m_mainThreadLoaderHolder| lives in the main thread. | 219 // |*m_mainThreadLoaderHolder| lives in the main thread. |
| 221 CrossThreadPersistent<MainThreadLoaderHolder> m_mainThreadLoaderHolder; | 220 CrossThreadPersistent<MainThreadLoaderHolder> m_mainThreadLoaderHolder; |
| 222 }; | 221 }; |
| 223 | 222 |
| 224 } // namespace blink | 223 } // namespace blink |
| 225 | 224 |
| 226 #endif // WorkerThreadableLoader_h | 225 #endif // WorkerThreadableLoader_h |
| OLD | NEW |