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

Side by Side Diff: third_party/WebKit/Source/modules/filesystem/DirectoryReader.cpp

Issue 2040563002: Remove FileError interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fe-dep
Patch Set: Rebased, and closure annotations Created 4 years, 6 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) 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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 Member<DirectoryReader> m_reader; 60 Member<DirectoryReader> m_reader;
61 }; 61 };
62 62
63 class DirectoryReader::ErrorCallbackHelper final : public ErrorCallback { 63 class DirectoryReader::ErrorCallbackHelper final : public ErrorCallback {
64 public: 64 public:
65 explicit ErrorCallbackHelper(DirectoryReader* reader) 65 explicit ErrorCallbackHelper(DirectoryReader* reader)
66 : m_reader(reader) 66 : m_reader(reader)
67 { 67 {
68 } 68 }
69 69
70 void handleEvent(FileError* error) override 70 void handleEvent(DOMException* error) override
71 {
72 NOTREACHED();
73 }
74
75 void handleEvent(FileError::ErrorCode error) override
71 { 76 {
72 m_reader->onError(error); 77 m_reader->onError(error);
73 } 78 }
74 79
75 DEFINE_INLINE_VIRTUAL_TRACE() 80 DEFINE_INLINE_VIRTUAL_TRACE()
76 { 81 {
77 visitor->trace(m_reader); 82 visitor->trace(m_reader);
78 ErrorCallback::trace(visitor); 83 ErrorCallback::trace(visitor);
79 } 84 }
80 85
(...skipping 18 matching lines...) Expand all
99 filesystem()->readDirectory(this, m_fullPath, new EntriesCallbackHelper( this), new ErrorCallbackHelper(this)); 104 filesystem()->readDirectory(this, m_fullPath, new EntriesCallbackHelper( this), new ErrorCallbackHelper(this));
100 } 105 }
101 106
102 if (m_error) { 107 if (m_error) {
103 filesystem()->scheduleCallback(errorCallback, m_error); 108 filesystem()->scheduleCallback(errorCallback, m_error);
104 return; 109 return;
105 } 110 }
106 111
107 if (m_entriesCallback) { 112 if (m_entriesCallback) {
108 // Non-null m_entriesCallback means multiple readEntries() calls are mad e concurrently. We don't allow doing it. 113 // Non-null m_entriesCallback means multiple readEntries() calls are mad e concurrently. We don't allow doing it.
109 filesystem()->scheduleCallback(errorCallback, FileError::create(FileErro r::INVALID_STATE_ERR)); 114 filesystem()->scheduleCallback(errorCallback, FileError::INVALID_STATE_E RR);
110 return; 115 return;
111 } 116 }
112 117
113 if (!m_hasMoreEntries || !m_entries.isEmpty()) { 118 if (!m_hasMoreEntries || !m_entries.isEmpty()) {
114 filesystem()->scheduleCallback(entriesCallback, m_entries); 119 filesystem()->scheduleCallback(entriesCallback, m_entries);
115 m_entries.clear(); 120 m_entries.clear();
116 return; 121 return;
117 } 122 }
118 123
119 m_entriesCallback = entriesCallback; 124 m_entriesCallback = entriesCallback;
120 m_errorCallback = errorCallback; 125 m_errorCallback = errorCallback;
121 } 126 }
122 127
123 void DirectoryReader::addEntries(const EntryHeapVector& entries) 128 void DirectoryReader::addEntries(const EntryHeapVector& entries)
124 { 129 {
125 m_entries.appendVector(entries); 130 m_entries.appendVector(entries);
126 m_errorCallback = nullptr; 131 m_errorCallback = nullptr;
127 if (m_entriesCallback) { 132 if (m_entriesCallback) {
128 EntriesCallback* entriesCallback = m_entriesCallback.release(); 133 EntriesCallback* entriesCallback = m_entriesCallback.release();
129 EntryHeapVector entries; 134 EntryHeapVector entries;
130 entries.swap(m_entries); 135 entries.swap(m_entries);
131 entriesCallback->handleEvent(entries); 136 entriesCallback->handleEvent(entries);
132 } 137 }
133 } 138 }
134 139
135 void DirectoryReader::onError(FileError* error) 140 void DirectoryReader::onError(FileError::ErrorCode error)
136 { 141 {
137 m_error = error; 142 m_error = error;
138 m_entriesCallback = nullptr; 143 m_entriesCallback = nullptr;
139 if (m_errorCallback) { 144 if (m_errorCallback) {
140 ErrorCallback* errorCallback = m_errorCallback.release(); 145 ErrorCallback* errorCallback = m_errorCallback.release();
141 errorCallback->handleEvent(error); 146 errorCallback->handleEvent(error);
142 } 147 }
143 } 148 }
144 149
145 DEFINE_TRACE(DirectoryReader) 150 DEFINE_TRACE(DirectoryReader)
146 { 151 {
147 visitor->trace(m_entries); 152 visitor->trace(m_entries);
148 visitor->trace(m_error);
149 visitor->trace(m_entriesCallback); 153 visitor->trace(m_entriesCallback);
150 visitor->trace(m_errorCallback); 154 visitor->trace(m_errorCallback);
151 DirectoryReaderBase::trace(visitor); 155 DirectoryReaderBase::trace(visitor);
152 } 156 }
153 157
154 } // namespace blink 158 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698