| 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |