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

Side by Side Diff: Source/core/fileapi/FileReader.cpp

Issue 114953006: Add missing FileReader argument typechecking. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years 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 | « LayoutTests/fast/files/workers/worker-read-file-async-expected.txt ('k') | no next file » | 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 153
154 void FileReader::stop() 154 void FileReader::stop()
155 { 155 {
156 if (m_loadingState == LoadingStateLoading || m_loadingState == LoadingStateP ending) 156 if (m_loadingState == LoadingStateLoading || m_loadingState == LoadingStateP ending)
157 throttlingController()->removeReader(this); 157 throttlingController()->removeReader(this);
158 terminate(); 158 terminate();
159 } 159 }
160 160
161 void FileReader::readAsArrayBuffer(Blob* blob, ExceptionState& exceptionState) 161 void FileReader::readAsArrayBuffer(Blob* blob, ExceptionState& exceptionState)
162 { 162 {
163 if (!blob) 163 if (!blob) {
164 exceptionState.throwTypeError("The argument is not a Blob.");
164 return; 165 return;
166 }
165 167
166 WTF_LOG(FileAPI, "FileReader: reading as array buffer: %s %s\n", utf8BlobUUI D(blob).data(), utf8FilePath(blob).data()); 168 WTF_LOG(FileAPI, "FileReader: reading as array buffer: %s %s\n", utf8BlobUUI D(blob).data(), utf8FilePath(blob).data());
167 169
168 readInternal(blob, FileReaderLoader::ReadAsArrayBuffer, exceptionState); 170 readInternal(blob, FileReaderLoader::ReadAsArrayBuffer, exceptionState);
169 } 171 }
170 172
171 void FileReader::readAsBinaryString(Blob* blob, ExceptionState& exceptionState) 173 void FileReader::readAsBinaryString(Blob* blob, ExceptionState& exceptionState)
172 { 174 {
173 if (!blob) 175 if (!blob) {
176 exceptionState.throwTypeError("The argument is not a Blob.");
174 return; 177 return;
178 }
175 179
176 WTF_LOG(FileAPI, "FileReader: reading as binary: %s %s\n", utf8BlobUUID(blob ).data(), utf8FilePath(blob).data()); 180 WTF_LOG(FileAPI, "FileReader: reading as binary: %s %s\n", utf8BlobUUID(blob ).data(), utf8FilePath(blob).data());
177 181
178 readInternal(blob, FileReaderLoader::ReadAsBinaryString, exceptionState); 182 readInternal(blob, FileReaderLoader::ReadAsBinaryString, exceptionState);
179 } 183 }
180 184
181 void FileReader::readAsText(Blob* blob, const String& encoding, ExceptionState& exceptionState) 185 void FileReader::readAsText(Blob* blob, const String& encoding, ExceptionState& exceptionState)
182 { 186 {
183 if (!blob) 187 if (!blob) {
188 exceptionState.throwTypeError("The argument is not a Blob.");
184 return; 189 return;
190 }
185 191
186 WTF_LOG(FileAPI, "FileReader: reading as text: %s %s\n", utf8BlobUUID(blob). data(), utf8FilePath(blob).data()); 192 WTF_LOG(FileAPI, "FileReader: reading as text: %s %s\n", utf8BlobUUID(blob). data(), utf8FilePath(blob).data());
187 193
188 m_encoding = encoding; 194 m_encoding = encoding;
189 readInternal(blob, FileReaderLoader::ReadAsText, exceptionState); 195 readInternal(blob, FileReaderLoader::ReadAsText, exceptionState);
190 } 196 }
191 197
192 void FileReader::readAsText(Blob* blob, ExceptionState& exceptionState) 198 void FileReader::readAsText(Blob* blob, ExceptionState& exceptionState)
193 { 199 {
194 readAsText(blob, String(), exceptionState); 200 readAsText(blob, String(), exceptionState);
195 } 201 }
196 202
197 void FileReader::readAsDataURL(Blob* blob, ExceptionState& exceptionState) 203 void FileReader::readAsDataURL(Blob* blob, ExceptionState& exceptionState)
198 { 204 {
199 if (!blob) 205 if (!blob) {
206 exceptionState.throwTypeError("The argument is not a Blob.");
200 return; 207 return;
208 }
201 209
202 WTF_LOG(FileAPI, "FileReader: reading as data URL: %s %s\n", utf8BlobUUID(bl ob).data(), utf8FilePath(blob).data()); 210 WTF_LOG(FileAPI, "FileReader: reading as data URL: %s %s\n", utf8BlobUUID(bl ob).data(), utf8FilePath(blob).data());
203 211
204 readInternal(blob, FileReaderLoader::ReadAsDataURL, exceptionState); 212 readInternal(blob, FileReaderLoader::ReadAsDataURL, exceptionState);
205 } 213 }
206 214
207 void FileReader::readInternal(Blob* blob, FileReaderLoader::ReadType type, Excep tionState& exceptionState) 215 void FileReader::readInternal(Blob* blob, FileReaderLoader::ReadType type, Excep tionState& exceptionState)
208 { 216 {
209 // If multiple concurrent read methods are called on the same FileReader, In validStateError should be thrown when the state is LOADING. 217 // If multiple concurrent read methods are called on the same FileReader, In validStateError should be thrown when the state is LOADING.
210 if (m_state == LOADING) { 218 if (m_state == LOADING) {
211 exceptionState.throwUninformativeAndGenericDOMException(InvalidStateErro r); 219 exceptionState.throwDOMException(InvalidStateError, "The object is alrea dy busy reading Blobs.");
212 return; 220 return;
213 } 221 }
214 222
215 m_blob = blob; 223 m_blob = blob;
216 m_readType = type; 224 m_readType = type;
217 m_state = LOADING; 225 m_state = LOADING;
218 m_loadingState = LoadingStatePending; 226 m_loadingState = LoadingStatePending;
219 m_error = 0; 227 m_error = 0;
220 throttlingController()->pushReader(this); 228 throttlingController()->pushReader(this);
221 } 229 }
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 } 370 }
363 371
364 String FileReader::stringResult() 372 String FileReader::stringResult()
365 { 373 {
366 if (!m_loader || m_error) 374 if (!m_loader || m_error)
367 return String(); 375 return String();
368 return m_loader->stringResult(); 376 return m_loader->stringResult();
369 } 377 }
370 378
371 } // namespace WebCore 379 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/fast/files/workers/worker-read-file-async-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698