Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 79 static const char fileSystemAgentEnabled[] = "fileSystemAgentEnabled"; | 79 static const char fileSystemAgentEnabled[] = "fileSystemAgentEnabled"; |
| 80 } | 80 } |
| 81 | 81 |
| 82 namespace { | 82 namespace { |
| 83 | 83 |
| 84 template<typename BaseCallback, typename Handler, typename Argument> | 84 template<typename BaseCallback, typename Handler, typename Argument> |
| 85 class CallbackDispatcher final : public BaseCallback { | 85 class CallbackDispatcher final : public BaseCallback { |
| 86 public: | 86 public: |
| 87 typedef bool (Handler::*HandlingMethod)(Argument); | 87 typedef bool (Handler::*HandlingMethod)(Argument); |
| 88 | 88 |
| 89 static CallbackDispatcher* create(PassRefPtr<Handler> handler, HandlingMetho d handlingMethod) | 89 static CallbackDispatcher* create(PassRefPtrWillBeRawPtr<Handler> handler, H andlingMethod handlingMethod) |
| 90 { | 90 { |
| 91 return new CallbackDispatcher(handler, handlingMethod); | 91 return new CallbackDispatcher(handler, handlingMethod); |
| 92 } | 92 } |
| 93 | 93 |
| 94 void handleEvent(Argument argument) override | 94 void handleEvent(Argument argument) override |
| 95 { | 95 { |
| 96 (m_handler.get()->*m_handlingMethod)(argument); | 96 (m_handler.get()->*m_handlingMethod)(argument); |
| 97 } | 97 } |
| 98 | 98 |
| 99 typedef int HasInlinedTraceMethodMarker; | |
| 100 GC_PLUGIN_IGNORE("") | |
|
haraken
2015/07/17 02:44:28
Hmm, this doesn't work either. I don't know how we
| |
| 101 virtual void trace(Visitor* visitor) | |
| 102 { | |
| 103 visitor->trace(m_handler); | |
| 104 BaseCallback::trace(visitor); | |
| 105 } | |
| 106 GC_PLUGIN_IGNORE("") | |
| 107 virtual void trace(InlinedGlobalMarkingVisitor visitor) | |
| 108 { | |
| 109 visitor->trace(m_handler); | |
| 110 BaseCallback::trace(visitor); | |
| 111 } | |
| 112 | |
| 99 private: | 113 private: |
| 100 CallbackDispatcher(PassRefPtr<Handler> handler, HandlingMethod handlingMetho d) | 114 CallbackDispatcher(PassRefPtrWillBeRawPtr<Handler> handler, HandlingMethod h andlingMethod) |
| 101 : m_handler(handler) | 115 : m_handler(handler) |
| 102 , m_handlingMethod(handlingMethod) { } | 116 , m_handlingMethod(handlingMethod) { } |
| 103 | 117 |
| 104 RefPtr<Handler> m_handler; | 118 RefPtrWillBeMember<Handler> m_handler; |
| 105 HandlingMethod m_handlingMethod; | 119 HandlingMethod m_handlingMethod; |
| 106 }; | 120 }; |
| 107 | 121 |
| 108 template<typename BaseCallback> | 122 template<typename BaseCallback> |
| 109 class CallbackDispatcherFactory { | 123 class CallbackDispatcherFactory { |
| 110 public: | 124 public: |
| 111 template<typename Handler, typename Argument> | 125 template<typename Handler, typename Argument> |
| 112 static CallbackDispatcher<BaseCallback, Handler, Argument>* create(Handler* handler, bool (Handler::*handlingMethod)(Argument)) | 126 static CallbackDispatcher<BaseCallback, Handler, Argument>* create(Handler* handler, bool (Handler::*handlingMethod)(Argument)) |
| 113 { | 127 { |
| 114 return CallbackDispatcher<BaseCallback, Handler, Argument>::create(PassR efPtr<Handler>(handler), handlingMethod); | 128 return CallbackDispatcher<BaseCallback, Handler, Argument>::create(PassR efPtrWillBeRawPtr<Handler>(handler), handlingMethod); |
| 115 } | 129 } |
| 116 }; | 130 }; |
| 117 | 131 |
| 118 class FileSystemRootRequest : public RefCounted<FileSystemRootRequest> { | 132 class FileSystemRootRequest final : public RefCountedWillBeGarbageCollectedFinal ized<FileSystemRootRequest> { |
| 119 WTF_MAKE_NONCOPYABLE(FileSystemRootRequest); | 133 WTF_MAKE_NONCOPYABLE(FileSystemRootRequest); |
| 120 public: | 134 public: |
| 121 static PassRefPtr<FileSystemRootRequest> create(PassRefPtrWillBeRawPtr<Reque stFileSystemRootCallback> requestCallback, const String& type) | 135 static PassRefPtrWillBeRawPtr<FileSystemRootRequest> create(PassRefPtrWillBe RawPtr<RequestFileSystemRootCallback> requestCallback, const String& type) |
| 122 { | 136 { |
| 123 return adoptRef(new FileSystemRootRequest(requestCallback, type)); | 137 return adoptRefWillBeNoop(new FileSystemRootRequest(requestCallback, typ e)); |
| 124 } | 138 } |
| 125 | 139 |
| 126 void start(ExecutionContext*); | 140 void start(ExecutionContext*); |
| 127 | 141 |
| 142 DEFINE_INLINE_TRACE() | |
| 143 { | |
| 144 visitor->trace(m_requestCallback); | |
| 145 } | |
| 146 | |
| 128 private: | 147 private: |
| 129 bool didHitError(FileError* error) | 148 bool didHitError(FileError* error) |
| 130 { | 149 { |
| 131 reportResult(error->code()); | 150 reportResult(error->code()); |
| 132 return true; | 151 return true; |
| 133 } | 152 } |
| 134 | 153 |
| 135 bool didGetEntry(Entry*); | 154 bool didGetEntry(Entry*); |
| 136 | 155 |
| 137 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<TypeBuilder::Fi leSystem::Entry> entry = nullptr) | 156 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<TypeBuilder::Fi leSystem::Entry> entry = nullptr) |
| 138 { | 157 { |
| 139 m_requestCallback->sendSuccess(static_cast<int>(errorCode), entry); | 158 m_requestCallback->sendSuccess(static_cast<int>(errorCode), entry); |
| 140 } | 159 } |
| 141 | 160 |
| 142 FileSystemRootRequest(PassRefPtrWillBeRawPtr<RequestFileSystemRootCallback> requestCallback, const String& type) | 161 FileSystemRootRequest(PassRefPtrWillBeRawPtr<RequestFileSystemRootCallback> requestCallback, const String& type) |
| 143 : m_requestCallback(requestCallback) | 162 : m_requestCallback(requestCallback) |
| 144 , m_type(type) { } | 163 , m_type(type) { } |
| 145 | 164 |
| 146 RefPtrWillBePersistent<RequestFileSystemRootCallback> m_requestCallback; | 165 RefPtrWillBeMember<RequestFileSystemRootCallback> m_requestCallback; |
| 147 String m_type; | 166 String m_type; |
| 148 }; | 167 }; |
| 149 | 168 |
| 150 void FileSystemRootRequest::start(ExecutionContext* executionContext) | 169 void FileSystemRootRequest::start(ExecutionContext* executionContext) |
| 151 { | 170 { |
| 152 ASSERT(executionContext); | 171 ASSERT(executionContext); |
| 153 | 172 |
| 154 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &FileSystemRootRequest::didHitError); | 173 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &FileSystemRootRequest::didHitError); |
| 155 | 174 |
| 156 FileSystemType type; | 175 FileSystemType type; |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 173 bool FileSystemRootRequest::didGetEntry(Entry* entry) | 192 bool FileSystemRootRequest::didGetEntry(Entry* entry) |
| 174 { | 193 { |
| 175 RefPtr<TypeBuilder::FileSystem::Entry> result = TypeBuilder::FileSystem::Ent ry::create() | 194 RefPtr<TypeBuilder::FileSystem::Entry> result = TypeBuilder::FileSystem::Ent ry::create() |
| 176 .setUrl(entry->toURL()) | 195 .setUrl(entry->toURL()) |
| 177 .setName("/") | 196 .setName("/") |
| 178 .setIsDirectory(true); | 197 .setIsDirectory(true); |
| 179 reportResult(static_cast<FileError::ErrorCode>(0), result); | 198 reportResult(static_cast<FileError::ErrorCode>(0), result); |
| 180 return true; | 199 return true; |
| 181 } | 200 } |
| 182 | 201 |
| 183 class DirectoryContentRequest final : public RefCounted<DirectoryContentRequest> { | 202 class DirectoryContentRequest final : public RefCountedWillBeGarbageCollectedFin alized<DirectoryContentRequest> { |
| 184 WTF_MAKE_NONCOPYABLE(DirectoryContentRequest); | 203 WTF_MAKE_NONCOPYABLE(DirectoryContentRequest); |
| 185 public: | 204 public: |
| 186 static PassRefPtr<DirectoryContentRequest> create(PassRefPtrWillBeRawPtr<Req uestDirectoryContentCallback> requestCallback, const String& url) | 205 static PassRefPtrWillBeRawPtr<DirectoryContentRequest> create(PassRefPtrWill BeRawPtr<RequestDirectoryContentCallback> requestCallback, const String& url) |
| 187 { | 206 { |
| 188 return adoptRef(new DirectoryContentRequest(requestCallback, url)); | 207 return adoptRefWillBeNoop(new DirectoryContentRequest(requestCallback, u rl)); |
| 189 } | 208 } |
| 190 | 209 |
| 191 ~DirectoryContentRequest() | 210 ~DirectoryContentRequest() |
| 192 { | 211 { |
| 193 reportResult(FileError::ABORT_ERR); | 212 reportResult(FileError::ABORT_ERR); |
|
haraken
2015/07/17 07:49:37
kinuko@: Currently we're reporting FileError::ABOR
| |
| 194 } | 213 } |
| 195 | 214 |
| 196 void start(ExecutionContext*); | 215 void start(ExecutionContext*); |
| 197 | 216 |
| 217 DEFINE_INLINE_VIRTUAL_TRACE() | |
| 218 { | |
| 219 visitor->trace(m_requestCallback); | |
| 220 visitor->trace(m_directoryReader); | |
| 221 } | |
| 222 | |
| 198 private: | 223 private: |
| 199 bool didHitError(FileError* error) | 224 bool didHitError(FileError* error) |
| 200 { | 225 { |
| 201 reportResult(error->code()); | 226 reportResult(error->code()); |
| 202 return true; | 227 return true; |
| 203 } | 228 } |
| 204 | 229 |
| 205 bool didGetEntry(Entry*); | 230 bool didGetEntry(Entry*); |
| 206 bool didReadDirectoryEntries(const EntryHeapVector&); | 231 bool didReadDirectoryEntries(const EntryHeapVector&); |
| 207 | 232 |
| 208 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<Array<TypeBuild er::FileSystem::Entry>> entries = nullptr) | 233 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<Array<TypeBuild er::FileSystem::Entry>> entries = nullptr) |
| 209 { | 234 { |
| 210 m_requestCallback->sendSuccess(static_cast<int>(errorCode), entries); | 235 m_requestCallback->sendSuccess(static_cast<int>(errorCode), entries); |
| 211 } | 236 } |
| 212 | 237 |
| 213 DirectoryContentRequest(PassRefPtrWillBeRawPtr<RequestDirectoryContentCallba ck> requestCallback, const String& url) | 238 DirectoryContentRequest(PassRefPtrWillBeRawPtr<RequestDirectoryContentCallba ck> requestCallback, const String& url) |
| 214 : m_requestCallback(requestCallback) | 239 : m_requestCallback(requestCallback) |
| 215 , m_url(ParsedURLString, url) { } | 240 , m_url(ParsedURLString, url) { } |
| 216 | 241 |
| 217 void readDirectoryEntries(); | 242 void readDirectoryEntries(); |
| 218 | 243 |
| 219 RefPtrWillBePersistent<RequestDirectoryContentCallback> m_requestCallback; | 244 RefPtrWillBeMember<RequestDirectoryContentCallback> m_requestCallback; |
| 220 KURL m_url; | 245 KURL m_url; |
| 221 RefPtr<Array<TypeBuilder::FileSystem::Entry>> m_entries; | 246 RefPtr<Array<TypeBuilder::FileSystem::Entry>> m_entries; |
| 222 Persistent<DirectoryReader> m_directoryReader; | 247 PersistentWillBeMember<DirectoryReader> m_directoryReader; |
| 223 }; | 248 }; |
| 224 | 249 |
| 225 void DirectoryContentRequest::start(ExecutionContext* executionContext) | 250 void DirectoryContentRequest::start(ExecutionContext* executionContext) |
| 226 { | 251 { |
| 227 ASSERT(executionContext); | 252 ASSERT(executionContext); |
| 228 | 253 |
| 229 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &DirectoryContentRequest::didHitError); | 254 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &DirectoryContentRequest::didHitError); |
| 230 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &DirectoryContentRequest::didGetEntry); | 255 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &DirectoryContentRequest::didGetEntry); |
| 231 | 256 |
| 232 OwnPtr<AsyncFileSystemCallbacks> fileSystemCallbacks = ResolveURICallbacks:: create(successCallback, errorCallback, executionContext); | 257 OwnPtr<AsyncFileSystemCallbacks> fileSystemCallbacks = ResolveURICallbacks:: create(successCallback, errorCallback, executionContext); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 294 entryForFrontend->setMimeType(mimeType); | 319 entryForFrontend->setMimeType(mimeType); |
| 295 entryForFrontend->setResourceType(resourceType); | 320 entryForFrontend->setResourceType(resourceType); |
| 296 } | 321 } |
| 297 | 322 |
| 298 m_entries->addItem(entryForFrontend); | 323 m_entries->addItem(entryForFrontend); |
| 299 } | 324 } |
| 300 readDirectoryEntries(); | 325 readDirectoryEntries(); |
| 301 return true; | 326 return true; |
| 302 } | 327 } |
| 303 | 328 |
| 304 class MetadataRequest final : public RefCounted<MetadataRequest> { | 329 class MetadataRequest final : public RefCountedWillBeGarbageCollectedFinalized<M etadataRequest> { |
| 305 WTF_MAKE_NONCOPYABLE(MetadataRequest); | 330 WTF_MAKE_NONCOPYABLE(MetadataRequest); |
| 306 public: | 331 public: |
| 307 static PassRefPtr<MetadataRequest> create(PassRefPtrWillBeRawPtr<RequestMeta dataCallback> requestCallback, const String& url) | 332 static PassRefPtrWillBeRawPtr<MetadataRequest> create(PassRefPtrWillBeRawPtr <RequestMetadataCallback> requestCallback, const String& url) |
| 308 { | 333 { |
| 309 return adoptRef(new MetadataRequest(requestCallback, url)); | 334 return adoptRefWillBeNoop(new MetadataRequest(requestCallback, url)); |
| 310 } | 335 } |
| 311 | 336 |
| 312 ~MetadataRequest() | 337 ~MetadataRequest() |
| 313 { | 338 { |
| 314 reportResult(FileError::ABORT_ERR); | 339 reportResult(FileError::ABORT_ERR); |
| 315 } | 340 } |
| 316 | 341 |
| 317 void start(ExecutionContext*); | 342 void start(ExecutionContext*); |
| 318 | 343 |
| 344 DEFINE_INLINE_VIRTUAL_TRACE() | |
| 345 { | |
| 346 visitor->trace(m_requestCallback); | |
| 347 } | |
| 348 | |
| 319 private: | 349 private: |
| 320 bool didHitError(FileError* error) | 350 bool didHitError(FileError* error) |
| 321 { | 351 { |
| 322 reportResult(error->code()); | 352 reportResult(error->code()); |
| 323 return true; | 353 return true; |
| 324 } | 354 } |
| 325 | 355 |
| 326 bool didGetEntry(Entry*); | 356 bool didGetEntry(Entry*); |
| 327 bool didGetMetadata(Metadata*); | 357 bool didGetMetadata(Metadata*); |
| 328 | 358 |
| 329 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<TypeBuilder::Fi leSystem::Metadata> metadata = nullptr) | 359 void reportResult(FileError::ErrorCode errorCode, PassRefPtr<TypeBuilder::Fi leSystem::Metadata> metadata = nullptr) |
| 330 { | 360 { |
| 331 m_requestCallback->sendSuccess(static_cast<int>(errorCode), metadata); | 361 m_requestCallback->sendSuccess(static_cast<int>(errorCode), metadata); |
| 332 } | 362 } |
| 333 | 363 |
| 334 MetadataRequest(PassRefPtrWillBeRawPtr<RequestMetadataCallback> requestCallb ack, const String& url) | 364 MetadataRequest(PassRefPtrWillBeRawPtr<RequestMetadataCallback> requestCallb ack, const String& url) |
| 335 : m_requestCallback(requestCallback) | 365 : m_requestCallback(requestCallback) |
| 336 , m_url(ParsedURLString, url) { } | 366 , m_url(ParsedURLString, url) { } |
| 337 | 367 |
| 338 RefPtrWillBePersistent<RequestMetadataCallback> m_requestCallback; | 368 RefPtrWillBeMember<RequestMetadataCallback> m_requestCallback; |
| 339 KURL m_url; | 369 KURL m_url; |
| 340 bool m_isDirectory; | 370 bool m_isDirectory; |
| 341 }; | 371 }; |
| 342 | 372 |
| 343 void MetadataRequest::start(ExecutionContext* executionContext) | 373 void MetadataRequest::start(ExecutionContext* executionContext) |
| 344 { | 374 { |
| 345 ASSERT(executionContext); | 375 ASSERT(executionContext); |
| 346 | 376 |
| 347 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &MetadataRequest::didHitError); | 377 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &MetadataRequest::didHitError); |
| 348 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &MetadataRequest::didGetEntry); | 378 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &MetadataRequest::didGetEntry); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 370 RefPtr<Metadata> result = Metadata::create() | 400 RefPtr<Metadata> result = Metadata::create() |
| 371 .setModificationTime(metadata->modificationTime()) | 401 .setModificationTime(metadata->modificationTime()) |
| 372 .setSize(metadata->size()); | 402 .setSize(metadata->size()); |
| 373 reportResult(static_cast<FileError::ErrorCode>(0), result); | 403 reportResult(static_cast<FileError::ErrorCode>(0), result); |
| 374 return true; | 404 return true; |
| 375 } | 405 } |
| 376 | 406 |
| 377 class FileContentRequest final : public EventListener { | 407 class FileContentRequest final : public EventListener { |
| 378 WTF_MAKE_NONCOPYABLE(FileContentRequest); | 408 WTF_MAKE_NONCOPYABLE(FileContentRequest); |
| 379 public: | 409 public: |
| 380 static PassRefPtr<FileContentRequest> create(PassRefPtrWillBeRawPtr<RequestF ileContentCallback> requestCallback, const String& url, bool readAsText, long lo ng start, long long end, const String& charset) | 410 static PassRefPtrWillBeRawPtr<FileContentRequest> create(PassRefPtrWillBeRaw Ptr<RequestFileContentCallback> requestCallback, const String& url, bool readAsT ext, long long start, long long end, const String& charset) |
| 381 { | 411 { |
| 382 return adoptRef(new FileContentRequest(requestCallback, url, readAsText, start, end, charset)); | 412 return adoptRefWillBeNoop(new FileContentRequest(requestCallback, url, r eadAsText, start, end, charset)); |
| 383 } | 413 } |
| 384 | 414 |
| 385 ~FileContentRequest() override | 415 ~FileContentRequest() override |
| 386 { | 416 { |
| 387 reportResult(FileError::ABORT_ERR); | 417 reportResult(FileError::ABORT_ERR); |
| 388 } | 418 } |
| 389 | 419 |
| 390 void start(ExecutionContext*); | 420 void start(ExecutionContext*); |
| 391 | 421 |
| 392 bool operator==(const EventListener& other) override | 422 bool operator==(const EventListener& other) override |
| 393 { | 423 { |
| 394 return this == &other; | 424 return this == &other; |
| 395 } | 425 } |
| 396 | 426 |
| 397 void handleEvent(ExecutionContext*, Event* event) override | 427 void handleEvent(ExecutionContext*, Event* event) override |
| 398 { | 428 { |
| 399 if (event->type() == EventTypeNames::load) | 429 if (event->type() == EventTypeNames::load) |
| 400 didRead(); | 430 didRead(); |
| 401 else if (event->type() == EventTypeNames::error) | 431 else if (event->type() == EventTypeNames::error) |
| 402 didHitError(m_reader->error()); | 432 didHitError(m_reader->error()); |
| 403 } | 433 } |
| 404 | 434 |
| 435 DEFINE_INLINE_VIRTUAL_TRACE() | |
| 436 { | |
| 437 visitor->trace(m_requestCallback); | |
| 438 visitor->trace(m_reader); | |
| 439 EventListener::trace(visitor); | |
| 440 } | |
| 441 | |
| 405 private: | 442 private: |
| 406 bool didHitError(FileError* error) | 443 bool didHitError(FileError* error) |
| 407 { | 444 { |
| 408 reportResult(error->code()); | 445 reportResult(error->code()); |
| 409 return true; | 446 return true; |
| 410 } | 447 } |
| 411 | 448 |
| 412 bool didGetEntry(Entry*); | 449 bool didGetEntry(Entry*); |
| 413 bool didGetFile(File*); | 450 bool didGetFile(File*); |
| 414 void didRead(); | 451 void didRead(); |
| 415 | 452 |
| 416 void reportResult(FileError::ErrorCode errorCode, const String* result = 0, const String* charset = 0) | 453 void reportResult(FileError::ErrorCode errorCode, const String* result = 0, const String* charset = 0) |
| 417 { | 454 { |
| 418 m_requestCallback->sendSuccess(static_cast<int>(errorCode), result, char set); | 455 m_requestCallback->sendSuccess(static_cast<int>(errorCode), result, char set); |
| 419 } | 456 } |
| 420 | 457 |
| 421 FileContentRequest(PassRefPtrWillBeRawPtr<RequestFileContentCallback> reques tCallback, const String& url, bool readAsText, long long start, long long end, c onst String& charset) | 458 FileContentRequest(PassRefPtrWillBeRawPtr<RequestFileContentCallback> reques tCallback, const String& url, bool readAsText, long long start, long long end, c onst String& charset) |
| 422 : EventListener(EventListener::CPPEventListenerType) | 459 : EventListener(EventListener::CPPEventListenerType) |
| 423 , m_requestCallback(requestCallback) | 460 , m_requestCallback(requestCallback) |
| 424 , m_url(ParsedURLString, url) | 461 , m_url(ParsedURLString, url) |
| 425 , m_readAsText(readAsText) | 462 , m_readAsText(readAsText) |
| 426 , m_start(start) | 463 , m_start(start) |
| 427 , m_end(end) | 464 , m_end(end) |
| 428 , m_charset(charset) { } | 465 , m_charset(charset) { } |
| 429 | 466 |
| 430 RefPtrWillBePersistent<RequestFileContentCallback> m_requestCallback; | 467 RefPtrWillBeMember<RequestFileContentCallback> m_requestCallback; |
| 431 KURL m_url; | 468 KURL m_url; |
| 432 bool m_readAsText; | 469 bool m_readAsText; |
| 433 int m_start; | 470 int m_start; |
| 434 long long m_end; | 471 long long m_end; |
| 435 String m_mimeType; | 472 String m_mimeType; |
| 436 String m_charset; | 473 String m_charset; |
| 437 | 474 |
| 438 Persistent<FileReader> m_reader; | 475 PersistentWillBeMember<FileReader> m_reader; |
| 439 }; | 476 }; |
| 440 | 477 |
| 441 void FileContentRequest::start(ExecutionContext* executionContext) | 478 void FileContentRequest::start(ExecutionContext* executionContext) |
| 442 { | 479 { |
| 443 ASSERT(executionContext); | 480 ASSERT(executionContext); |
| 444 | 481 |
| 445 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &FileContentRequest::didHitError); | 482 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &FileContentRequest::didHitError); |
| 446 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &FileContentRequest::didGetEntry); | 483 EntryCallback* successCallback = CallbackDispatcherFactory<EntryCallback>::c reate(this, &FileContentRequest::didGetEntry); |
| 447 | 484 |
| 448 OwnPtr<AsyncFileSystemCallbacks> fileSystemCallbacks = ResolveURICallbacks:: create(successCallback, errorCallback, executionContext); | 485 OwnPtr<AsyncFileSystemCallbacks> fileSystemCallbacks = ResolveURICallbacks:: create(successCallback, errorCallback, executionContext); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 493 return; | 530 return; |
| 494 } | 531 } |
| 495 | 532 |
| 496 OwnPtr<TextResourceDecoder> decoder = TextResourceDecoder::create(m_mimeType , m_charset, true); | 533 OwnPtr<TextResourceDecoder> decoder = TextResourceDecoder::create(m_mimeType , m_charset, true); |
| 497 String result = decoder->decode(static_cast<char*>(buffer->data()), buffer-> byteLength()); | 534 String result = decoder->decode(static_cast<char*>(buffer->data()), buffer-> byteLength()); |
| 498 result = result + decoder->flush(); | 535 result = result + decoder->flush(); |
| 499 m_charset = decoder->encoding().name(); | 536 m_charset = decoder->encoding().name(); |
| 500 reportResult(static_cast<FileError::ErrorCode>(0), &result, &m_charset); | 537 reportResult(static_cast<FileError::ErrorCode>(0), &result, &m_charset); |
| 501 } | 538 } |
| 502 | 539 |
| 503 class DeleteEntryRequest final : public RefCounted<DeleteEntryRequest> { | 540 class DeleteEntryRequest final : public RefCountedWillBeGarbageCollectedFinalize d<DeleteEntryRequest> { |
| 504 public: | 541 public: |
| 505 static PassRefPtr<DeleteEntryRequest> create(PassRefPtrWillBeRawPtr<DeleteEn tryCallback> requestCallback, const KURL& url) | 542 static PassRefPtrWillBeRawPtr<DeleteEntryRequest> create(PassRefPtrWillBeRaw Ptr<DeleteEntryCallback> requestCallback, const KURL& url) |
| 506 { | 543 { |
| 507 return adoptRef(new DeleteEntryRequest(requestCallback, url)); | 544 return adoptRefWillBeNoop(new DeleteEntryRequest(requestCallback, url)); |
| 508 } | 545 } |
| 509 | 546 |
| 510 ~DeleteEntryRequest() | 547 ~DeleteEntryRequest() |
| 511 { | 548 { |
| 512 reportResult(FileError::ABORT_ERR); | 549 reportResult(FileError::ABORT_ERR); |
| 513 } | 550 } |
| 514 | 551 |
| 515 void start(ExecutionContext*); | 552 void start(ExecutionContext*); |
| 516 | 553 |
| 554 DEFINE_INLINE_TRACE() | |
| 555 { | |
| 556 visitor->trace(m_requestCallback); | |
| 557 } | |
| 558 | |
| 517 private: | 559 private: |
| 518 // CallbackDispatcherFactory doesn't handle 0-arg handleEvent methods | 560 // CallbackDispatcherFactory doesn't handle 0-arg handleEvent methods |
| 519 class VoidCallbackImpl final : public VoidCallback { | 561 class VoidCallbackImpl final : public VoidCallback { |
| 520 public: | 562 public: |
| 521 explicit VoidCallbackImpl(PassRefPtr<DeleteEntryRequest> handler) | 563 explicit VoidCallbackImpl(PassRefPtrWillBeRawPtr<DeleteEntryRequest> han dler) |
| 522 : m_handler(handler) | 564 : m_handler(handler) |
| 523 { | 565 { |
| 524 } | 566 } |
| 525 | 567 |
| 526 void handleEvent() override | 568 void handleEvent() override |
| 527 { | 569 { |
| 528 m_handler->didDeleteEntry(); | 570 m_handler->didDeleteEntry(); |
| 529 } | 571 } |
| 530 | 572 |
| 573 DEFINE_INLINE_VIRTUAL_TRACE() | |
| 574 { | |
| 575 visitor->trace(m_handler); | |
| 576 VoidCallback::trace(visitor); | |
| 577 } | |
| 578 | |
| 531 private: | 579 private: |
| 532 RefPtr<DeleteEntryRequest> m_handler; | 580 RefPtrWillBeMember<DeleteEntryRequest> m_handler; |
| 533 }; | 581 }; |
| 534 | 582 |
| 535 bool didHitError(FileError* error) | 583 bool didHitError(FileError* error) |
| 536 { | 584 { |
| 537 reportResult(error->code()); | 585 reportResult(error->code()); |
| 538 return true; | 586 return true; |
| 539 } | 587 } |
| 540 | 588 |
| 541 bool didGetEntry(Entry*); | 589 bool didGetEntry(Entry*); |
| 542 bool didDeleteEntry(); | 590 bool didDeleteEntry(); |
| 543 | 591 |
| 544 void reportResult(FileError::ErrorCode errorCode) | 592 void reportResult(FileError::ErrorCode errorCode) |
| 545 { | 593 { |
| 546 m_requestCallback->sendSuccess(static_cast<int>(errorCode)); | 594 m_requestCallback->sendSuccess(static_cast<int>(errorCode)); |
| 547 } | 595 } |
| 548 | 596 |
| 549 DeleteEntryRequest(PassRefPtrWillBeRawPtr<DeleteEntryCallback> requestCallba ck, const KURL& url) | 597 DeleteEntryRequest(PassRefPtrWillBeRawPtr<DeleteEntryCallback> requestCallba ck, const KURL& url) |
| 550 : m_requestCallback(requestCallback) | 598 : m_requestCallback(requestCallback) |
| 551 , m_url(url) { } | 599 , m_url(url) { } |
| 552 | 600 |
| 553 RefPtrWillBePersistent<DeleteEntryCallback> m_requestCallback; | 601 RefPtrWillBeMember<DeleteEntryCallback> m_requestCallback; |
| 554 KURL m_url; | 602 KURL m_url; |
| 555 }; | 603 }; |
| 556 | 604 |
| 557 void DeleteEntryRequest::start(ExecutionContext* executionContext) | 605 void DeleteEntryRequest::start(ExecutionContext* executionContext) |
| 558 { | 606 { |
| 559 ASSERT(executionContext); | 607 ASSERT(executionContext); |
| 560 | 608 |
| 561 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &DeleteEntryRequest::didHitError); | 609 ErrorCallback* errorCallback = CallbackDispatcherFactory<ErrorCallback>::cre ate(this, &DeleteEntryRequest::didHitError); |
| 562 | 610 |
| 563 FileSystemType type; | 611 FileSystemType type; |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 725 return 0; | 773 return 0; |
| 726 } | 774 } |
| 727 | 775 |
| 728 DEFINE_TRACE(InspectorFileSystemAgent) | 776 DEFINE_TRACE(InspectorFileSystemAgent) |
| 729 { | 777 { |
| 730 visitor->trace(m_page); | 778 visitor->trace(m_page); |
| 731 InspectorBaseAgent::trace(visitor); | 779 InspectorBaseAgent::trace(visitor); |
| 732 } | 780 } |
| 733 | 781 |
| 734 } // namespace blink | 782 } // namespace blink |
| OLD | NEW |