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

Side by Side Diff: Source/modules/filesystem/DOMFileSystem.h

Issue 383123009: DevTools: Support async call stacks for FileSystem API (part 1). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 98
99 template <typename CB, typename CBArg> 99 template <typename CB, typename CBArg>
100 void scheduleCallback(PassOwnPtr<CB> callback, const CBArg& callbackArg) 100 void scheduleCallback(PassOwnPtr<CB> callback, const CBArg& callbackArg)
101 { 101 {
102 scheduleCallback(executionContext(), callback, callbackArg); 102 scheduleCallback(executionContext(), callback, callbackArg);
103 } 103 }
104 104
105 private: 105 private:
106 DOMFileSystem(ExecutionContext*, const String& name, FileSystemType, const K URL& rootURL); 106 DOMFileSystem(ExecutionContext*, const String& name, FileSystemType, const K URL& rootURL);
107 107
108 class DispatchCallbackTaskBase : public ExecutionContextTask {
109 public:
110 DispatchCallbackTaskBase()
111 : m_taskName("FileSystem")
112 {
113 }
114
115 virtual const String& taskNameForInstrumentation() const OVERRIDE
yurys 2014/07/14 14:55:54 Why do we return constr String& rather than String
116 {
117 return m_taskName;
118 }
119
120 private:
121 const String m_taskName;
122 };
123
108 // A helper template to schedule a callback task. 124 // A helper template to schedule a callback task.
109 template <typename CB, typename CBArg> 125 template <typename CB, typename CBArg>
110 class DispatchCallbackRefPtrArgTask FINAL : public ExecutionContextTask { 126 class DispatchCallbackRefPtrArgTask FINAL : public DispatchCallbackTaskBase {
111 public: 127 public:
112 DispatchCallbackRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtrWillBeR awPtr<CBArg> arg) 128 DispatchCallbackRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtrWillBeR awPtr<CBArg> arg)
113 : m_callback(callback) 129 : m_callback(callback)
114 , m_callbackArg(arg) 130 , m_callbackArg(arg)
115 { 131 {
116 } 132 }
117 133
118 virtual void performTask(ExecutionContext*) OVERRIDE 134 virtual void performTask(ExecutionContext*) OVERRIDE
119 { 135 {
120 m_callback->handleEvent(m_callbackArg.get()); 136 m_callback->handleEvent(m_callbackArg.get());
121 } 137 }
122 138
123 private: 139 private:
124 OwnPtr<CB> m_callback; 140 OwnPtr<CB> m_callback;
125 RefPtrWillBePersistent<CBArg> m_callbackArg; 141 RefPtrWillBePersistent<CBArg> m_callbackArg;
126 }; 142 };
127 143
128 template <typename CB, typename CBArg> 144 template <typename CB, typename CBArg>
129 class DispatchCallbackPtrArgTask FINAL : public ExecutionContextTask { 145 class DispatchCallbackPtrArgTask FINAL : public DispatchCallbackTaskBase {
130 public: 146 public:
131 DispatchCallbackPtrArgTask(PassOwnPtr<CB> callback, CBArg* arg) 147 DispatchCallbackPtrArgTask(PassOwnPtr<CB> callback, CBArg* arg)
132 : m_callback(callback) 148 : m_callback(callback)
133 , m_callbackArg(arg) 149 , m_callbackArg(arg)
134 { 150 {
135 } 151 }
136 152
137 virtual void performTask(ExecutionContext*) OVERRIDE 153 virtual void performTask(ExecutionContext*) OVERRIDE
138 { 154 {
139 m_callback->handleEvent(m_callbackArg.get()); 155 m_callback->handleEvent(m_callbackArg.get());
140 } 156 }
141 157
142 private: 158 private:
143 OwnPtr<CB> m_callback; 159 OwnPtr<CB> m_callback;
144 Persistent<CBArg> m_callbackArg; 160 Persistent<CBArg> m_callbackArg;
145 }; 161 };
146 162
147 template <typename CB, typename CBArg> 163 template <typename CB, typename CBArg>
148 class DispatchCallbackNonPtrArgTask FINAL : public ExecutionContextTask { 164 class DispatchCallbackNonPtrArgTask FINAL : public DispatchCallbackTaskBase {
149 public: 165 public:
150 DispatchCallbackNonPtrArgTask(PassOwnPtr<CB> callback, const CBArg& arg) 166 DispatchCallbackNonPtrArgTask(PassOwnPtr<CB> callback, const CBArg& arg)
151 : m_callback(callback) 167 : m_callback(callback)
152 , m_callbackArg(arg) 168 , m_callbackArg(arg)
153 { 169 {
154 } 170 }
155 171
156 virtual void performTask(ExecutionContext*) OVERRIDE 172 virtual void performTask(ExecutionContext*) OVERRIDE
157 { 173 {
158 m_callback->handleEvent(m_callbackArg); 174 m_callback->handleEvent(m_callbackArg);
159 } 175 }
160 176
161 private: 177 private:
162 OwnPtr<CB> m_callback; 178 OwnPtr<CB> m_callback;
163 CBArg m_callbackArg; 179 CBArg m_callbackArg;
164 }; 180 };
165 181
166 template <typename CB> 182 template <typename CB>
167 class DispatchCallbackNoArgTask FINAL : public ExecutionContextTask { 183 class DispatchCallbackNoArgTask FINAL : public DispatchCallbackTaskBase {
168 public: 184 public:
169 DispatchCallbackNoArgTask(PassOwnPtr<CB> callback) 185 DispatchCallbackNoArgTask(PassOwnPtr<CB> callback)
170 : m_callback(callback) 186 : m_callback(callback)
171 { 187 {
172 } 188 }
173 189
174 virtual void performTask(ExecutionContext*) OVERRIDE 190 virtual void performTask(ExecutionContext*) OVERRIDE
175 { 191 {
176 m_callback->handleEvent(); 192 m_callback->handleEvent();
177 } 193 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback) 235 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback)
220 { 236 {
221 ASSERT(executionContext->isContextThread()); 237 ASSERT(executionContext->isContextThread());
222 if (callback) 238 if (callback)
223 executionContext->postTask(adoptPtr(new DispatchCallbackNoArgTask<CB>(ca llback))); 239 executionContext->postTask(adoptPtr(new DispatchCallbackNoArgTask<CB>(ca llback)));
224 } 240 }
225 241
226 } // namespace 242 } // namespace
227 243
228 #endif // DOMFileSystem_h 244 #endif // DOMFileSystem_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698