summaryrefslogtreecommitdiff
path: root/Source/WebCore/fileapi/FileReaderSync.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/fileapi/FileReaderSync.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/fileapi/FileReaderSync.cpp')
-rw-r--r--Source/WebCore/fileapi/FileReaderSync.cpp65
1 files changed, 24 insertions, 41 deletions
diff --git a/Source/WebCore/fileapi/FileReaderSync.cpp b/Source/WebCore/fileapi/FileReaderSync.cpp
index 2d53afd1b..da475d504 100644
--- a/Source/WebCore/fileapi/FileReaderSync.cpp
+++ b/Source/WebCore/fileapi/FileReaderSync.cpp
@@ -30,8 +30,6 @@
#include "config.h"
-#if ENABLE(BLOB)
-
#include "FileReaderSync.h"
#include "Blob.h"
@@ -39,7 +37,6 @@
#include "FileException.h"
#include "FileReaderLoader.h"
#include <runtime/ArrayBuffer.h>
-#include <wtf/PassRefPtr.h>
namespace WebCore {
@@ -47,63 +44,49 @@ FileReaderSync::FileReaderSync()
{
}
-PassRefPtr<ArrayBuffer> FileReaderSync::readAsArrayBuffer(ScriptExecutionContext* scriptExecutionContext, Blob* blob, ExceptionCode& ec)
+ExceptionOr<RefPtr<ArrayBuffer>> FileReaderSync::readAsArrayBuffer(ScriptExecutionContext& scriptExecutionContext, Blob& blob)
{
- if (!blob) {
- ec = NOT_FOUND_ERR;
- return 0;
- }
-
FileReaderLoader loader(FileReaderLoader::ReadAsArrayBuffer, 0);
- startLoading(scriptExecutionContext, loader, blob, ec);
-
+ auto result = startLoading(scriptExecutionContext, loader, blob);
+ if (result.hasException())
+ return result.releaseException();
return loader.arrayBufferResult();
}
-String FileReaderSync::readAsBinaryString(ScriptExecutionContext* scriptExecutionContext, Blob* blob, ExceptionCode& ec)
+ExceptionOr<String> FileReaderSync::readAsBinaryString(ScriptExecutionContext& scriptExecutionContext, Blob& blob)
{
- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
FileReaderLoader loader(FileReaderLoader::ReadAsBinaryString, 0);
- startLoading(scriptExecutionContext, loader, blob, ec);
- return loader.stringResult();
+ return startLoadingString(scriptExecutionContext, loader, blob);
}
-String FileReaderSync::readAsText(ScriptExecutionContext* scriptExecutionContext, Blob* blob, const String& encoding, ExceptionCode& ec)
+ExceptionOr<String> FileReaderSync::readAsText(ScriptExecutionContext& scriptExecutionContext, Blob& blob, const String& encoding)
{
- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
FileReaderLoader loader(FileReaderLoader::ReadAsText, 0);
loader.setEncoding(encoding);
- startLoading(scriptExecutionContext, loader, blob, ec);
- return loader.stringResult();
+ return startLoadingString(scriptExecutionContext, loader, blob);
}
-String FileReaderSync::readAsDataURL(ScriptExecutionContext* scriptExecutionContext, Blob* blob, ExceptionCode& ec)
+ExceptionOr<String> FileReaderSync::readAsDataURL(ScriptExecutionContext& scriptExecutionContext, Blob& blob)
{
- if (!blob) {
- ec = NOT_FOUND_ERR;
- return String();
- }
-
FileReaderLoader loader(FileReaderLoader::ReadAsDataURL, 0);
- loader.setDataType(blob->type());
- startLoading(scriptExecutionContext, loader, blob, ec);
- return loader.stringResult();
+ loader.setDataType(blob.type());
+ return startLoadingString(scriptExecutionContext, loader, blob);
+}
+
+ExceptionOr<void> FileReaderSync::startLoading(ScriptExecutionContext& scriptExecutionContext, FileReaderLoader& loader, Blob& blob)
+{
+ loader.start(&scriptExecutionContext, blob);
+ if (ExceptionCode code = FileException::ErrorCodeToExceptionCode(loader.errorCode()))
+ return Exception { code };
+ return { };
}
-void FileReaderSync::startLoading(ScriptExecutionContext* scriptExecutionContext, FileReaderLoader& loader, Blob* blob, ExceptionCode& ec)
+ExceptionOr<String> FileReaderSync::startLoadingString(ScriptExecutionContext& scriptExecutionContext, FileReaderLoader& loader, Blob& blob)
{
- loader.start(scriptExecutionContext, blob);
- ec = FileException::ErrorCodeToExceptionCode(loader.errorCode());
+ auto result = startLoading(scriptExecutionContext, loader, blob);
+ if (result.hasException())
+ return result.releaseException();
+ return loader.stringResult();
}
} // namespace WebCore
-
-#endif // ENABLE(BLOB)