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

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

Issue 176853004: Oilpan: move core/fileapi to oilpan's heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased Created 6 years, 9 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
« no previous file with comments | « Source/core/xml/XMLHttpRequest.cpp ('k') | Source/modules/filesystem/DOMFileSystem.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 17 matching lines...) Expand all
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 DOMFileSystem_h 31 #ifndef DOMFileSystem_h
32 #define DOMFileSystem_h 32 #define DOMFileSystem_h
33 33
34 #include "bindings/v8/ScriptWrappable.h" 34 #include "bindings/v8/ScriptWrappable.h"
35 #include "core/dom/ActiveDOMObject.h" 35 #include "core/dom/ActiveDOMObject.h"
36 #include "core/dom/ExecutionContext.h" 36 #include "core/dom/ExecutionContext.h"
37 #include "core/dom/ExecutionContextTask.h" 37 #include "core/dom/ExecutionContextTask.h"
38 #include "heap/Handle.h"
38 #include "modules/filesystem/DOMFileSystemBase.h" 39 #include "modules/filesystem/DOMFileSystemBase.h"
39 #include "modules/filesystem/EntriesCallback.h" 40 #include "modules/filesystem/EntriesCallback.h"
40 41
41 namespace WebCore { 42 namespace WebCore {
42 43
43 class DirectoryEntry; 44 class DirectoryEntry;
44 class File; 45 class File;
45 class FileCallback; 46 class FileCallback;
46 class FileEntry; 47 class FileEntry;
47 class FileWriterCallback; 48 class FileWriterCallback;
48 49
49 class DOMFileSystem FINAL : public DOMFileSystemBase, public ScriptWrappable, pu blic ActiveDOMObject { 50 class DOMFileSystem FINAL : public DOMFileSystemBase, public ScriptWrappable, pu blic ActiveDOMObject {
50 public: 51 public:
51 static PassRefPtr<DOMFileSystem> create(ExecutionContext*, const String& nam e, FileSystemType, const KURL& rootURL); 52 static PassRefPtr<DOMFileSystem> create(ExecutionContext*, const String& nam e, FileSystemType, const KURL& rootURL);
52 53
53 // Creates a new isolated file system for the given filesystemId. 54 // Creates a new isolated file system for the given filesystemId.
54 static PassRefPtr<DOMFileSystem> createIsolatedFileSystem(ExecutionContext*, const String& filesystemId); 55 static PassRefPtr<DOMFileSystem> createIsolatedFileSystem(ExecutionContext*, const String& filesystemId);
55 56
56 PassRefPtr<DirectoryEntry> root(); 57 PassRefPtr<DirectoryEntry> root();
57 58
58 // DOMFileSystemBase overrides. 59 // DOMFileSystemBase overrides.
59 virtual void addPendingCallbacks() OVERRIDE; 60 virtual void addPendingCallbacks() OVERRIDE;
60 virtual void removePendingCallbacks() OVERRIDE; 61 virtual void removePendingCallbacks() OVERRIDE;
61 virtual void reportError(PassOwnPtr<ErrorCallback>, PassRefPtr<FileError>) O VERRIDE; 62 virtual void reportError(PassOwnPtr<ErrorCallback>, PassRefPtrWillBeRawPtr<F ileError>) OVERRIDE;
62 63
63 void createWriter(const FileEntry*, PassOwnPtr<FileWriterCallback>, PassOwnP tr<ErrorCallback>); 64 void createWriter(const FileEntry*, PassOwnPtr<FileWriterCallback>, PassOwnP tr<ErrorCallback>);
64 void createFile(const FileEntry*, PassOwnPtr<FileCallback>, PassOwnPtr<Error Callback>); 65 void createFile(const FileEntry*, PassOwnPtr<FileCallback>, PassOwnPtr<Error Callback>);
65 66
66 // Schedule a callback. This should not cross threads (should be called on t he same context thread). 67 // Schedule a callback. This should not cross threads (should be called on t he same context thread).
67 // FIXME: move this to a more generic place. 68 // FIXME: move this to a more generic place.
68 template <typename CB, typename CBArg> 69 template <typename CB, typename CBArg>
69 static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, PassRefPtr<C BArg>); 70 static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, PassRefPtrWi llBeRawPtr<CBArg>);
70 71
71 template <typename CB, typename CBArg> 72 template <typename CB, typename CBArg>
72 static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, const CBArg& ); 73 static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, const CBArg& );
73 74
74 template <typename CB, typename CBArg> 75 template <typename CB, typename CBArg>
75 void scheduleCallback(PassOwnPtr<CB> callback, PassRefPtr<CBArg> callbackArg ) 76 void scheduleCallback(PassOwnPtr<CB> callback, PassRefPtrWillBeRawPtr<CBArg> callbackArg)
76 { 77 {
77 scheduleCallback(executionContext(), callback, callbackArg); 78 scheduleCallback(executionContext(), callback, callbackArg);
78 } 79 }
79 80
80 template <typename CB, typename CBArg> 81 template <typename CB, typename CBArg>
81 void scheduleCallback(PassOwnPtr<CB> callback, const CBArg& callbackArg) 82 void scheduleCallback(PassOwnPtr<CB> callback, const CBArg& callbackArg)
82 { 83 {
83 scheduleCallback(executionContext(), callback, callbackArg); 84 scheduleCallback(executionContext(), callback, callbackArg);
84 } 85 }
85 86
86 private: 87 private:
87 DOMFileSystem(ExecutionContext*, const String& name, FileSystemType, const K URL& rootURL); 88 DOMFileSystem(ExecutionContext*, const String& name, FileSystemType, const K URL& rootURL);
88 89
89 // A helper template to schedule a callback task. 90 // A helper template to schedule a callback task.
90 template <typename CB, typename CBArg> 91 template <typename CB, typename CBArg>
91 class DispatchCallbacRefPtrArgTask FINAL : public ExecutionContextTask { 92 class DispatchCallbacRefPtrArgTask FINAL : public ExecutionContextTask {
92 public: 93 public:
93 DispatchCallbacRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtr<CBArg> arg) 94 DispatchCallbacRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtrWillBeRa wPtr<CBArg> arg)
94 : m_callback(callback) 95 : m_callback(callback)
95 , m_callbackArg(arg) 96 , m_callbackArg(arg)
96 { 97 {
97 } 98 }
98 99
99 virtual void performTask(ExecutionContext*) OVERRIDE 100 virtual void performTask(ExecutionContext*) OVERRIDE
100 { 101 {
101 m_callback->handleEvent(m_callbackArg.get()); 102 m_callback->handleEvent(m_callbackArg.get());
102 } 103 }
103 104
104 private: 105 private:
105 OwnPtr<CB> m_callback; 106 OwnPtr<CB> m_callback;
106 RefPtr<CBArg> m_callbackArg; 107 RefPtrWillBePersistent<CBArg> m_callbackArg;
107 }; 108 };
108 109
109 template <typename CB, typename CBArg> 110 template <typename CB, typename CBArg>
110 class DispatchCallbackNonPtrArgTask FINAL : public ExecutionContextTask { 111 class DispatchCallbackNonPtrArgTask FINAL : public ExecutionContextTask {
111 public: 112 public:
112 DispatchCallbackNonPtrArgTask(PassOwnPtr<CB> callback, const CBArg& arg) 113 DispatchCallbackNonPtrArgTask(PassOwnPtr<CB> callback, const CBArg& arg)
113 : m_callback(callback) 114 : m_callback(callback)
114 , m_callbackArg(arg) 115 , m_callbackArg(arg)
115 { 116 {
116 } 117 }
117 118
118 virtual void performTask(ExecutionContext*) OVERRIDE 119 virtual void performTask(ExecutionContext*) OVERRIDE
119 { 120 {
120 m_callback->handleEvent(m_callbackArg); 121 m_callback->handleEvent(m_callbackArg);
121 } 122 }
122 123
123 private: 124 private:
124 OwnPtr<CB> m_callback; 125 OwnPtr<CB> m_callback;
125 CBArg m_callbackArg; 126 CBArg m_callbackArg;
126 }; 127 };
127 }; 128 };
128 129
129 template <typename CB, typename CBArg> 130 template <typename CB, typename CBArg>
130 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback, PassRefPtr<CBArg> arg) 131 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback, PassRefPtrWillBeRawPtr<CBArg> arg)
131 { 132 {
132 ASSERT(executionContext->isContextThread()); 133 ASSERT(executionContext->isContextThread());
133 if (callback) 134 if (callback)
134 executionContext->postTask(adoptPtr(new DispatchCallbacRefPtrArgTask<CB, CBArg>(callback, arg))); 135 executionContext->postTask(adoptPtr(new DispatchCallbacRefPtrArgTask<CB, CBArg>(callback, arg)));
135 } 136 }
136 137
137 template <typename CB, typename CBArg> 138 template <typename CB, typename CBArg>
138 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback, const CBArg& arg) 139 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn Ptr<CB> callback, const CBArg& arg)
139 { 140 {
140 ASSERT(executionContext->isContextThread()); 141 ASSERT(executionContext->isContextThread());
141 if (callback) 142 if (callback)
142 executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB , CBArg>(callback, arg))); 143 executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB , CBArg>(callback, arg)));
143 } 144 }
144 145
145 } // namespace 146 } // namespace
146 147
147 #endif // DOMFileSystem_h 148 #endif // DOMFileSystem_h
OLDNEW
« no previous file with comments | « Source/core/xml/XMLHttpRequest.cpp ('k') | Source/modules/filesystem/DOMFileSystem.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698