OLD | NEW |
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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 { | 80 { |
81 if (m_errorCallback) | 81 if (m_errorCallback) |
82 handleEventOrScheduleCallback(m_errorCallback.release(), FileError::crea
te(static_cast<FileError::ErrorCode>(code))); | 82 handleEventOrScheduleCallback(m_errorCallback.release(), FileError::crea
te(static_cast<FileError::ErrorCode>(code))); |
83 } | 83 } |
84 | 84 |
85 bool FileSystemCallbacksBase::shouldScheduleCallback() const | 85 bool FileSystemCallbacksBase::shouldScheduleCallback() const |
86 { | 86 { |
87 return !shouldBlockUntilCompletion() && m_executionContext && m_executionCon
text->activeDOMObjectsAreSuspended(); | 87 return !shouldBlockUntilCompletion() && m_executionContext && m_executionCon
text->activeDOMObjectsAreSuspended(); |
88 } | 88 } |
89 | 89 |
90 #if !ENABLE(OILPAN) | |
91 template <typename CB, typename CBArg> | |
92 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback,
RawPtr<CBArg> arg) | |
93 { | |
94 handleEventOrScheduleCallback(callback, arg.get()); | |
95 } | |
96 #endif | |
97 | |
98 template <typename CB, typename CBArg> | 90 template <typename CB, typename CBArg> |
99 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback,
CBArg* arg) | 91 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback,
CBArg* arg) |
100 { | 92 { |
101 ASSERT(callback); | 93 ASSERT(callback); |
102 InspectorInstrumentationCookie cookie = InspectorInstrumentation::traceAsync
OperationCompletedCallbackStarting(m_executionContext.get(), m_asyncOperationId)
; | 94 InspectorInstrumentationCookie cookie = InspectorInstrumentation::traceAsync
OperationCompletedCallbackStarting(m_executionContext.get(), m_asyncOperationId)
; |
103 if (shouldScheduleCallback()) | 95 if (shouldScheduleCallback()) |
104 DOMFileSystem::scheduleCallback(m_executionContext.get(), callback.get()
, arg); | 96 DOMFileSystem::scheduleCallback(m_executionContext.get(), callback.get()
, arg); |
105 else if (callback) | 97 else if (callback) |
106 callback->handleEvent(arg); | 98 callback->handleEvent(arg); |
107 m_executionContext.clear(); | 99 m_executionContext.clear(); |
108 InspectorInstrumentation::traceAsyncCallbackCompleted(cookie); | 100 InspectorInstrumentation::traceAsyncCallbackCompleted(cookie); |
109 } | 101 } |
110 | 102 |
111 template <typename CB, typename CBArg> | |
112 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback,
PassRefPtrWillBeRawPtr<CBArg> arg) | |
113 { | |
114 ASSERT(callback); | |
115 InspectorInstrumentationCookie cookie = InspectorInstrumentation::traceAsync
OperationCompletedCallbackStarting(m_executionContext.get(), m_asyncOperationId)
; | |
116 if (shouldScheduleCallback()) | |
117 DOMFileSystem::scheduleCallback(m_executionContext.get(), callback.get()
, arg); | |
118 else if (callback) | |
119 callback->handleEvent(arg.get()); | |
120 m_executionContext.clear(); | |
121 InspectorInstrumentation::traceAsyncCallbackCompleted(cookie); | |
122 } | |
123 | |
124 template <typename CB> | 103 template <typename CB> |
125 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback) | 104 void FileSystemCallbacksBase::handleEventOrScheduleCallback(RawPtr<CB> callback) |
126 { | 105 { |
127 ASSERT(callback); | 106 ASSERT(callback); |
128 InspectorInstrumentationCookie cookie = InspectorInstrumentation::traceAsync
OperationCompletedCallbackStarting(m_executionContext.get(), m_asyncOperationId)
; | 107 InspectorInstrumentationCookie cookie = InspectorInstrumentation::traceAsync
OperationCompletedCallbackStarting(m_executionContext.get(), m_asyncOperationId)
; |
129 if (shouldScheduleCallback()) | 108 if (shouldScheduleCallback()) |
130 DOMFileSystem::scheduleCallback(m_executionContext.get(), callback.get()
); | 109 DOMFileSystem::scheduleCallback(m_executionContext.get(), callback.get()
); |
131 else if (callback) | 110 else if (callback) |
132 callback->handleEvent(); | 111 callback->handleEvent(); |
133 m_executionContext.clear(); | 112 m_executionContext.clear(); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 } | 240 } |
262 | 241 |
263 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) | 242 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) |
264 { | 243 { |
265 if (m_successCallback) | 244 if (m_successCallback) |
266 handleEventOrScheduleCallback(m_successCallback.release(), Metadata::cre
ate(metadata)); | 245 handleEventOrScheduleCallback(m_successCallback.release(), Metadata::cre
ate(metadata)); |
267 } | 246 } |
268 | 247 |
269 // FileWriterBaseCallbacks ---------------------------------------------------- | 248 // FileWriterBaseCallbacks ---------------------------------------------------- |
270 | 249 |
271 PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(PassRefPtrW
illBeRawPtr<FileWriterBase> fileWriter, FileWriterBaseCallback* successCallback,
ErrorCallback* errorCallback, ExecutionContext* context) | 250 PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(FileWriterB
ase* fileWriter, FileWriterBaseCallback* successCallback, ErrorCallback* errorCa
llback, ExecutionContext* context) |
272 { | 251 { |
273 return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, err
orCallback, context)); | 252 return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, err
orCallback, context)); |
274 } | 253 } |
275 | 254 |
276 FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtrWillBeRawPtr<FileWrit
erBase> fileWriter, FileWriterBaseCallback* successCallback, ErrorCallback* erro
rCallback, ExecutionContext* context) | 255 FileWriterBaseCallbacks::FileWriterBaseCallbacks(FileWriterBase* fileWriter, Fil
eWriterBaseCallback* successCallback, ErrorCallback* errorCallback, ExecutionCon
text* context) |
277 : FileSystemCallbacksBase(errorCallback, nullptr, context) | 256 : FileSystemCallbacksBase(errorCallback, nullptr, context) |
278 , m_fileWriter(fileWriter.get()) | 257 , m_fileWriter(fileWriter) |
279 , m_successCallback(successCallback) | 258 , m_successCallback(successCallback) |
280 { | 259 { |
281 } | 260 } |
282 | 261 |
283 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<WebFileWriter> file
Writer, long long length) | 262 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<WebFileWriter> file
Writer, long long length) |
284 { | 263 { |
285 m_fileWriter->initialize(fileWriter, length); | 264 m_fileWriter->initialize(fileWriter, length); |
286 if (m_successCallback) | 265 if (m_successCallback) |
287 handleEventOrScheduleCallback(m_successCallback.release(), m_fileWriter.
release()); | 266 handleEventOrScheduleCallback(m_successCallback.release(), m_fileWriter.
release().get()); |
288 } | 267 } |
289 | 268 |
290 // SnapshotFileCallback ------------------------------------------------------- | 269 // SnapshotFileCallback ------------------------------------------------------- |
291 | 270 |
292 PassOwnPtr<AsyncFileSystemCallbacks> SnapshotFileCallback::create(DOMFileSystemB
ase* filesystem, const String& name, const KURL& url, FileCallback* successCallb
ack, ErrorCallback* errorCallback, ExecutionContext* context) | 271 PassOwnPtr<AsyncFileSystemCallbacks> SnapshotFileCallback::create(DOMFileSystemB
ase* filesystem, const String& name, const KURL& url, FileCallback* successCallb
ack, ErrorCallback* errorCallback, ExecutionContext* context) |
293 { | 272 { |
294 return adoptPtr(new SnapshotFileCallback(filesystem, name, url, successCallb
ack, errorCallback, context)); | 273 return adoptPtr(new SnapshotFileCallback(filesystem, name, url, successCallb
ack, errorCallback, context)); |
295 } | 274 } |
296 | 275 |
297 SnapshotFileCallback::SnapshotFileCallback(DOMFileSystemBase* filesystem, const
String& name, const KURL& url, FileCallback* successCallback, ErrorCallback* err
orCallback, ExecutionContext* context) | 276 SnapshotFileCallback::SnapshotFileCallback(DOMFileSystemBase* filesystem, const
String& name, const KURL& url, FileCallback* successCallback, ErrorCallback* err
orCallback, ExecutionContext* context) |
(...skipping 30 matching lines...) Expand all Loading... |
328 { | 307 { |
329 } | 308 } |
330 | 309 |
331 void VoidCallbacks::didSucceed() | 310 void VoidCallbacks::didSucceed() |
332 { | 311 { |
333 if (m_successCallback) | 312 if (m_successCallback) |
334 handleEventOrScheduleCallback(m_successCallback.release()); | 313 handleEventOrScheduleCallback(m_successCallback.release()); |
335 } | 314 } |
336 | 315 |
337 } // namespace blink | 316 } // namespace blink |
OLD | NEW |