Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(622)

Side by Side Diff: third_party/WebKit/Source/core/loader/WorkerThreadableLoader.h

Issue 2645613006: Worker: Stop using ExecutionContextTask on WorkerLoaderProxy::postTaskToWorkerGlobalScope (Closed)
Patch Set: address review comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698