Commit 841feec4 authored by Zhuoyu Qian's avatar Zhuoyu Qian Committed by Commit Bot

Change file_error::ErrorCode to be an enum class.

This patch makes file_error::ErrorCode to be an enum class for better
type safety and improving code health. Using forward declaration in
other header files instead of including |file_error.h|.

Change-Id: I53eae14c2972bb792b474d36e4b8c4bc52c09b0f
Reviewed-on: https://chromium-review.googlesource.com/c/1314083Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Commit-Queue: Zhuoyu Qian <zhuoyu.qian@samsung.com>
Cr-Commit-Position: refs/heads/master@{#606737}
parent afecf795
...@@ -74,31 +74,31 @@ namespace { ...@@ -74,31 +74,31 @@ namespace {
DOMExceptionCode ErrorCodeToExceptionCode(ErrorCode code) { DOMExceptionCode ErrorCodeToExceptionCode(ErrorCode code) {
switch (code) { switch (code) {
case kOK: case ErrorCode::kOK:
return DOMExceptionCode::kNoError; return DOMExceptionCode::kNoError;
case kNotFoundErr: case ErrorCode::kNotFoundErr:
return DOMExceptionCode::kNotFoundError; return DOMExceptionCode::kNotFoundError;
case kSecurityErr: case ErrorCode::kSecurityErr:
return DOMExceptionCode::kSecurityError; return DOMExceptionCode::kSecurityError;
case kAbortErr: case ErrorCode::kAbortErr:
return DOMExceptionCode::kAbortError; return DOMExceptionCode::kAbortError;
case kNotReadableErr: case ErrorCode::kNotReadableErr:
return DOMExceptionCode::kNotReadableError; return DOMExceptionCode::kNotReadableError;
case kEncodingErr: case ErrorCode::kEncodingErr:
return DOMExceptionCode::kEncodingError; return DOMExceptionCode::kEncodingError;
case kNoModificationAllowedErr: case ErrorCode::kNoModificationAllowedErr:
return DOMExceptionCode::kNoModificationAllowedError; return DOMExceptionCode::kNoModificationAllowedError;
case kInvalidStateErr: case ErrorCode::kInvalidStateErr:
return DOMExceptionCode::kInvalidStateError; return DOMExceptionCode::kInvalidStateError;
case kSyntaxErr: case ErrorCode::kSyntaxErr:
return DOMExceptionCode::kSyntaxError; return DOMExceptionCode::kSyntaxError;
case kInvalidModificationErr: case ErrorCode::kInvalidModificationErr:
return DOMExceptionCode::kInvalidModificationError; return DOMExceptionCode::kInvalidModificationError;
case kQuotaExceededErr: case ErrorCode::kQuotaExceededErr:
return DOMExceptionCode::kQuotaExceededError; return DOMExceptionCode::kQuotaExceededError;
case kTypeMismatchErr: case ErrorCode::kTypeMismatchErr:
return DOMExceptionCode::kTypeMismatchError; return DOMExceptionCode::kTypeMismatchError;
case kPathExistsErr: case ErrorCode::kPathExistsErr:
return DOMExceptionCode::kPathExistsError; return DOMExceptionCode::kPathExistsError;
default: default:
NOTREACHED(); NOTREACHED();
...@@ -110,31 +110,31 @@ const char* ErrorCodeToMessage(ErrorCode code) { ...@@ -110,31 +110,31 @@ const char* ErrorCodeToMessage(ErrorCode code) {
// Note that some of these do not set message. If message is 0 then the // Note that some of these do not set message. If message is 0 then the
// default message is used. // default message is used.
switch (code) { switch (code) {
case kOK: case ErrorCode::kOK:
return nullptr; return nullptr;
case kSecurityErr: case ErrorCode::kSecurityErr:
return kSecurityErrorMessage; return kSecurityErrorMessage;
case kNotFoundErr: case ErrorCode::kNotFoundErr:
return kNotFoundErrorMessage; return kNotFoundErrorMessage;
case kAbortErr: case ErrorCode::kAbortErr:
return kAbortErrorMessage; return kAbortErrorMessage;
case kNotReadableErr: case ErrorCode::kNotReadableErr:
return kNotReadableErrorMessage; return kNotReadableErrorMessage;
case kEncodingErr: case ErrorCode::kEncodingErr:
return kEncodingErrorMessage; return kEncodingErrorMessage;
case kNoModificationAllowedErr: case ErrorCode::kNoModificationAllowedErr:
return kNoModificationAllowedErrorMessage; return kNoModificationAllowedErrorMessage;
case kInvalidStateErr: case ErrorCode::kInvalidStateErr:
return kInvalidStateErrorMessage; return kInvalidStateErrorMessage;
case kSyntaxErr: case ErrorCode::kSyntaxErr:
return kSyntaxErrorMessage; return kSyntaxErrorMessage;
case kInvalidModificationErr: case ErrorCode::kInvalidModificationErr:
return nullptr; return nullptr;
case kQuotaExceededErr: case ErrorCode::kQuotaExceededErr:
return kQuotaExceededErrorMessage; return kQuotaExceededErrorMessage;
case kTypeMismatchErr: case ErrorCode::kTypeMismatchErr:
return nullptr; return nullptr;
case kPathExistsErr: case ErrorCode::kPathExistsErr:
return kPathExistsErrorMessage; return kPathExistsErrorMessage;
default: default:
NOTREACHED(); NOTREACHED();
...@@ -231,12 +231,12 @@ const char* FileErrorToMessage(base::File::Error code) { ...@@ -231,12 +231,12 @@ const char* FileErrorToMessage(base::File::Error code) {
void ThrowDOMException(ExceptionState& exception_state, void ThrowDOMException(ExceptionState& exception_state,
ErrorCode code, ErrorCode code,
String message) { String message) {
if (code == kOK) if (code == ErrorCode::kOK)
return; return;
// SecurityError is special-cased, as we want to route those exceptions // SecurityError is special-cased, as we want to route those exceptions
// through ExceptionState::ThrowSecurityError. // through ExceptionState::ThrowSecurityError.
if (code == kSecurityErr) { if (code == ErrorCode::kSecurityErr) {
exception_state.ThrowSecurityError(kSecurityErrorMessage); exception_state.ThrowSecurityError(kSecurityErrorMessage);
return; return;
} }
...@@ -269,7 +269,7 @@ void ThrowDOMException(ExceptionState& exception_state, ...@@ -269,7 +269,7 @@ void ThrowDOMException(ExceptionState& exception_state,
} }
DOMException* CreateDOMException(ErrorCode code) { DOMException* CreateDOMException(ErrorCode code) {
DCHECK_NE(code, kOK); DCHECK_NE(code, ErrorCode::kOK);
return DOMException::Create(ErrorCodeToExceptionCode(code), return DOMException::Create(ErrorCodeToExceptionCode(code),
ErrorCodeToMessage(code)); ErrorCodeToMessage(code));
} }
......
...@@ -42,7 +42,7 @@ class ExceptionState; ...@@ -42,7 +42,7 @@ class ExceptionState;
namespace file_error { namespace file_error {
enum ErrorCode { enum class ErrorCode {
kOK = 0, kOK = 0,
kNotFoundErr = 1, kNotFoundErr = 1,
kSecurityErr = 2, kSecurityErr = 2,
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "third_party/blink/renderer/core/events/progress_event.h" #include "third_party/blink/renderer/core/events/progress_event.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fileapi/file.h" #include "third_party/blink/renderer/core/fileapi/file.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/frame/use_counter.h" #include "third_party/blink/renderer/core/frame/use_counter.h"
#include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h" #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
...@@ -337,7 +338,7 @@ void FileReader::abort() { ...@@ -337,7 +338,7 @@ void FileReader::abort() {
base::AutoReset<bool> firing_events(&still_firing_events_, true); base::AutoReset<bool> firing_events(&still_firing_events_, true);
// Setting error implicitly makes |result| return null. // Setting error implicitly makes |result| return null.
error_ = file_error::CreateDOMException(file_error::kAbortErr); error_ = file_error::CreateDOMException(file_error::ErrorCode::kAbortErr);
// Unregister the reader. // Unregister the reader.
ThrottlingController::FinishReaderType final_step = ThrottlingController::FinishReaderType final_step =
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/dom/events/event_target.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
...@@ -44,6 +43,10 @@ ...@@ -44,6 +43,10 @@
namespace blink { namespace blink {
namespace file_error {
enum class ErrorCode;
}
class Blob; class Blob;
class ExceptionState; class ExceptionState;
class ExecutionContext; class ExecutionContext;
......
...@@ -100,7 +100,8 @@ void FileReaderLoader::Start(scoped_refptr<BlobDataHandle> blob_data) { ...@@ -100,7 +100,8 @@ void FileReaderLoader::Start(scoped_refptr<BlobDataHandle> blob_data) {
mojo::ScopedDataPipeProducerHandle producer_handle; mojo::ScopedDataPipeProducerHandle producer_handle;
MojoResult rv = CreateDataPipe(&options, &producer_handle, &consumer_handle_); MojoResult rv = CreateDataPipe(&options, &producer_handle, &consumer_handle_);
if (rv != MOJO_RESULT_OK) { if (rv != MOJO_RESULT_OK) {
Failed(file_error::kNotReadableErr, FailureType::kMojoPipeCreation); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kMojoPipeCreation);
return; return;
} }
...@@ -115,21 +116,22 @@ void FileReaderLoader::Start(scoped_refptr<BlobDataHandle> blob_data) { ...@@ -115,21 +116,22 @@ void FileReaderLoader::Start(scoped_refptr<BlobDataHandle> blob_data) {
if (received_on_complete_) if (received_on_complete_)
return; return;
if (!received_all_data_) { if (!received_all_data_) {
Failed(file_error::kNotReadableErr, FailureType::kSyncDataNotAllLoaded); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kSyncDataNotAllLoaded);
return; return;
} }
// Wait for OnComplete // Wait for OnComplete
binding_.WaitForIncomingMethodCall(); binding_.WaitForIncomingMethodCall();
if (!received_on_complete_) { if (!received_on_complete_) {
Failed(file_error::kNotReadableErr, Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kSyncOnCompleteNotReceived); FailureType::kSyncOnCompleteNotReceived);
} }
} }
} }
void FileReaderLoader::Cancel() { void FileReaderLoader::Cancel() {
error_code_ = file_error::kAbortErr; error_code_ = file_error::ErrorCode::kAbortErr;
Cleanup(); Cleanup();
} }
...@@ -139,7 +141,7 @@ DOMArrayBuffer* FileReaderLoader::ArrayBufferResult() { ...@@ -139,7 +141,7 @@ DOMArrayBuffer* FileReaderLoader::ArrayBufferResult() {
return array_buffer_result_; return array_buffer_result_;
// If the loading is not started or an error occurs, return an empty result. // If the loading is not started or an error occurs, return an empty result.
if (!raw_data_ || error_code_) if (!raw_data_ || error_code_ != file_error::ErrorCode::kOK)
return nullptr; return nullptr;
DOMArrayBuffer* result = DOMArrayBuffer::Create(raw_data_->ToArrayBuffer()); DOMArrayBuffer* result = DOMArrayBuffer::Create(raw_data_->ToArrayBuffer());
...@@ -156,8 +158,10 @@ String FileReaderLoader::StringResult() { ...@@ -156,8 +158,10 @@ String FileReaderLoader::StringResult() {
DCHECK_NE(read_type_, kReadAsArrayBuffer); DCHECK_NE(read_type_, kReadAsArrayBuffer);
DCHECK_NE(read_type_, kReadByClient); DCHECK_NE(read_type_, kReadByClient);
if (!raw_data_ || error_code_ || is_raw_data_converted_) if (!raw_data_ || (error_code_ != file_error::ErrorCode::kOK) ||
is_raw_data_converted_) {
return string_result_; return string_result_;
}
switch (read_type_) { switch (read_type_) {
case kReadAsArrayBuffer: case kReadAsArrayBuffer:
...@@ -197,7 +201,7 @@ void FileReaderLoader::Cleanup() { ...@@ -197,7 +201,7 @@ void FileReaderLoader::Cleanup() {
consumer_handle_.reset(); consumer_handle_.reset();
// If we get any error, we do not need to keep a buffer around. // If we get any error, we do not need to keep a buffer around.
if (error_code_) { if (error_code_ != file_error::ErrorCode::kOK) {
raw_data_.reset(); raw_data_.reset();
string_result_ = ""; string_result_ = "";
is_raw_data_converted_ = true; is_raw_data_converted_ = true;
...@@ -213,7 +217,7 @@ void FileReaderLoader::Failed(file_error::ErrorCode error_code, ...@@ -213,7 +217,7 @@ void FileReaderLoader::Failed(file_error::ErrorCode error_code,
("Storage.Blob.FileReaderLoader.FailureType", ("Storage.Blob.FileReaderLoader.FailureType",
static_cast<int>(FailureType::kCount))); static_cast<int>(FailureType::kCount)));
// If an error was already reported, don't report this error again. // If an error was already reported, don't report this error again.
if (error_code_ != file_error::kOK) if (error_code_ != file_error::ErrorCode::kOK)
return; return;
error_code_ = error_code; error_code_ = error_code;
failure_histogram.Count(static_cast<int>(type)); failure_histogram.Count(static_cast<int>(type));
...@@ -232,13 +236,14 @@ void FileReaderLoader::OnStartLoading(uint64_t total_bytes) { ...@@ -232,13 +236,14 @@ void FileReaderLoader::OnStartLoading(uint64_t total_bytes) {
// so to call ArrayBuffer's create function. // so to call ArrayBuffer's create function.
// FIXME: Support reading more than the current size limit of ArrayBuffer. // FIXME: Support reading more than the current size limit of ArrayBuffer.
if (total_bytes > std::numeric_limits<unsigned>::max()) { if (total_bytes > std::numeric_limits<unsigned>::max()) {
Failed(file_error::kNotReadableErr, FailureType::kTotalBytesTooLarge); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kTotalBytesTooLarge);
return; return;
} }
raw_data_ = std::make_unique<ArrayBufferBuilder>(total_bytes); raw_data_ = std::make_unique<ArrayBufferBuilder>(total_bytes);
if (!raw_data_->IsValid()) { if (!raw_data_->IsValid()) {
Failed(file_error::kNotReadableErr, Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kArrayBufferBuilderCreation); FailureType::kArrayBufferBuilderCreation);
return; return;
} }
...@@ -253,7 +258,7 @@ void FileReaderLoader::OnReceivedData(const char* data, unsigned data_length) { ...@@ -253,7 +258,7 @@ void FileReaderLoader::OnReceivedData(const char* data, unsigned data_length) {
DCHECK(data); DCHECK(data);
// Bail out if we already encountered an error. // Bail out if we already encountered an error.
if (error_code_) if (error_code_ != file_error::ErrorCode::kOK)
return; return;
if (read_type_ == kReadByClient) { if (read_type_ == kReadByClient) {
...@@ -268,7 +273,8 @@ void FileReaderLoader::OnReceivedData(const char* data, unsigned data_length) { ...@@ -268,7 +273,8 @@ void FileReaderLoader::OnReceivedData(const char* data, unsigned data_length) {
if (!bytes_appended) { if (!bytes_appended) {
raw_data_.reset(); raw_data_.reset();
bytes_loaded_ = 0; bytes_loaded_ = 0;
Failed(file_error::kNotReadableErr, FailureType::kArrayBufferBuilderAppend); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kArrayBufferBuilderAppend);
return; return;
} }
bytes_loaded_ += bytes_appended; bytes_loaded_ += bytes_appended;
...@@ -323,13 +329,15 @@ void FileReaderLoader::OnComplete(int32_t status, uint64_t data_length) { ...@@ -323,13 +329,15 @@ void FileReaderLoader::OnComplete(int32_t status, uint64_t data_length) {
if (status != net::OK) { if (status != net::OK) {
net_error_ = status; net_error_ = status;
file_reader_loader_read_errors_histogram.Sample(std::max(0, -net_error_)); file_reader_loader_read_errors_histogram.Sample(std::max(0, -net_error_));
Failed(status == net::ERR_FILE_NOT_FOUND ? file_error::kNotFoundErr Failed(status == net::ERR_FILE_NOT_FOUND
: file_error::kNotReadableErr, ? file_error::ErrorCode::kNotFoundErr
: file_error::ErrorCode::kNotReadableErr,
FailureType::kBackendReadError); FailureType::kBackendReadError);
return; return;
} }
if (data_length != total_bytes_) { if (data_length != total_bytes_) {
Failed(file_error::kNotReadableErr, FailureType::kReadSizesIncorrect); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kReadSizesIncorrect);
return; return;
} }
...@@ -341,7 +349,7 @@ void FileReaderLoader::OnComplete(int32_t status, uint64_t data_length) { ...@@ -341,7 +349,7 @@ void FileReaderLoader::OnComplete(int32_t status, uint64_t data_length) {
void FileReaderLoader::OnDataPipeReadable(MojoResult result) { void FileReaderLoader::OnDataPipeReadable(MojoResult result) {
if (result != MOJO_RESULT_OK) { if (result != MOJO_RESULT_OK) {
if (!received_all_data_) { if (!received_all_data_) {
Failed(file_error::kNotReadableErr, Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kDataPipeNotReadableWithBytesLeft); FailureType::kDataPipeNotReadableWithBytesLeft);
} }
return; return;
...@@ -363,12 +371,13 @@ void FileReaderLoader::OnDataPipeReadable(MojoResult result) { ...@@ -363,12 +371,13 @@ void FileReaderLoader::OnDataPipeReadable(MojoResult result) {
if (result == MOJO_RESULT_FAILED_PRECONDITION) { if (result == MOJO_RESULT_FAILED_PRECONDITION) {
// Pipe closed. // Pipe closed.
if (!received_all_data_) { if (!received_all_data_) {
Failed(file_error::kNotReadableErr, FailureType::kMojoPipeClosedEarly); Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kMojoPipeClosedEarly);
} }
return; return;
} }
if (result != MOJO_RESULT_OK) { if (result != MOJO_RESULT_OK) {
Failed(file_error::kNotReadableErr, Failed(file_error::ErrorCode::kNotReadableErr,
FailureType::kMojoPipeUnexpectedReadError); FailureType::kMojoPipeUnexpectedReadError);
return; return;
} }
......
...@@ -172,7 +172,7 @@ class CORE_EXPORT FileReaderLoader : public mojom::blink::BlobReaderClient { ...@@ -172,7 +172,7 @@ class CORE_EXPORT FileReaderLoader : public mojom::blink::BlobReaderClient {
int64_t memory_usage_reported_to_v8_ = 0; int64_t memory_usage_reported_to_v8_ = 0;
int32_t net_error_ = 0; // net::OK int32_t net_error_ = 0; // net::OK
file_error::ErrorCode error_code_ = file_error::kOK; file_error::ErrorCode error_code_ = file_error::ErrorCode::kOK;
mojo::ScopedDataPipeConsumerHandle consumer_handle_; mojo::ScopedDataPipeConsumerHandle consumer_handle_;
mojo::SimpleWatcher handle_watcher_; mojo::SimpleWatcher handle_watcher_;
......
...@@ -32,11 +32,14 @@ ...@@ -32,11 +32,14 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_LOADER_CLIENT_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_LOADER_CLIENT_H_
#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h" #include "third_party/blink/renderer/platform/wtf/assertions.h"
namespace blink { namespace blink {
namespace file_error {
enum class ErrorCode;
}
class CORE_EXPORT FileReaderLoaderClient { class CORE_EXPORT FileReaderLoaderClient {
public: public:
virtual ~FileReaderLoaderClient() = default; virtual ~FileReaderLoaderClient() = default;
......
...@@ -116,7 +116,7 @@ void FileReaderSync::StartLoading(FileReaderLoader& loader, ...@@ -116,7 +116,7 @@ void FileReaderSync::StartLoading(FileReaderLoader& loader,
const Blob& blob, const Blob& blob,
ExceptionState& exception_state) { ExceptionState& exception_state) {
loader.Start(blob.GetBlobDataHandle()); loader.Start(blob.GetBlobDataHandle());
if (loader.GetErrorCode()) if (loader.GetErrorCode() != file_error::ErrorCode::kOK)
file_error::ThrowDOMException(exception_state, loader.GetErrorCode()); file_error::ThrowDOMException(exception_state, loader.GetErrorCode());
} }
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/renderer/core/events/progress_event.h" #include "third_party/blink/renderer/core/events/progress_event.h"
#include "third_party/blink/renderer/core/fileapi/blob.h" #include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h" #include "third_party/blink/renderer/modules/filesystem/file_system_dispatcher.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h"
...@@ -83,11 +84,11 @@ void FileWriter::write(Blob* data, ExceptionState& exception_state) { ...@@ -83,11 +84,11 @@ void FileWriter::write(Blob* data, ExceptionState& exception_state) {
DCHECK(data); DCHECK(data);
DCHECK_EQ(truncate_length_, -1); DCHECK_EQ(truncate_length_, -1);
if (ready_state_ == kWriting) { if (ready_state_ == kWriting) {
SetError(file_error::kInvalidStateErr, exception_state); SetError(file_error::ErrorCode::kInvalidStateErr, exception_state);
return; return;
} }
if (recursion_depth_ > kMaxRecursionDepth) { if (recursion_depth_ > kMaxRecursionDepth) {
SetError(file_error::kSecurityErr, exception_state); SetError(file_error::ErrorCode::kSecurityErr, exception_state);
return; return;
} }
...@@ -111,7 +112,7 @@ void FileWriter::seek(long long position, ExceptionState& exception_state) { ...@@ -111,7 +112,7 @@ void FileWriter::seek(long long position, ExceptionState& exception_state) {
if (!GetExecutionContext()) if (!GetExecutionContext())
return; return;
if (ready_state_ == kWriting) { if (ready_state_ == kWriting) {
SetError(file_error::kInvalidStateErr, exception_state); SetError(file_error::ErrorCode::kInvalidStateErr, exception_state);
return; return;
} }
...@@ -125,11 +126,11 @@ void FileWriter::truncate(long long position, ExceptionState& exception_state) { ...@@ -125,11 +126,11 @@ void FileWriter::truncate(long long position, ExceptionState& exception_state) {
return; return;
DCHECK_EQ(truncate_length_, -1); DCHECK_EQ(truncate_length_, -1);
if (ready_state_ == kWriting || position < 0) { if (ready_state_ == kWriting || position < 0) {
SetError(file_error::kInvalidStateErr, exception_state); SetError(file_error::ErrorCode::kInvalidStateErr, exception_state);
return; return;
} }
if (recursion_depth_ > kMaxRecursionDepth) { if (recursion_depth_ > kMaxRecursionDepth) {
SetError(file_error::kSecurityErr, exception_state); SetError(file_error::ErrorCode::kSecurityErr, exception_state);
return; return;
} }
...@@ -319,7 +320,7 @@ void FileWriter::FireEvent(const AtomicString& type) { ...@@ -319,7 +320,7 @@ void FileWriter::FireEvent(const AtomicString& type) {
void FileWriter::SetError(file_error::ErrorCode error_code, void FileWriter::SetError(file_error::ErrorCode error_code,
ExceptionState& exception_state) { ExceptionState& exception_state) {
DCHECK(error_code); DCHECK_NE(error_code, file_error::ErrorCode::kOK);
file_error::ThrowDOMException(exception_state, error_code); file_error::ThrowDOMException(exception_state, error_code);
error_ = file_error::CreateDOMException(error_code); error_ = file_error::CreateDOMException(error_code);
} }
......
...@@ -34,14 +34,18 @@ ...@@ -34,14 +34,18 @@
#include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h" #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/modules/event_target_modules.h" #include "third_party/blink/renderer/modules/event_target_modules.h"
#include "third_party/blink/renderer/modules/filesystem/file_writer_base.h" #include "third_party/blink/renderer/modules/filesystem/file_writer_base.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
namespace blink { namespace blink {
namespace file_error {
enum class ErrorCode;
}
class Blob; class Blob;
class DOMException;
class ExceptionState; class ExceptionState;
class ExecutionContext; class ExecutionContext;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/events/message_event.h" #include "third_party/blink/renderer/core/events/message_event.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
#include "third_party/blink/renderer/core/frame/deprecation.h" #include "third_party/blink/renderer/core/frame/deprecation.h"
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/dom/events/event_target.h" #include "third_party/blink/renderer/core/dom/events/event_target.h"
#include "third_party/blink/renderer/core/fileapi/blob.h" #include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h" #include "third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
...@@ -23,6 +22,10 @@ class AtomicString; ...@@ -23,6 +22,10 @@ class AtomicString;
namespace blink { namespace blink {
namespace file_error {
enum class ErrorCode;
}
class DOMArrayBuffer; class DOMArrayBuffer;
class DOMArrayBufferView; class DOMArrayBufferView;
class PresentationController; class PresentationController;
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/platform/websocket_handshake_throttle.h" #include "third_party/blink/public/platform/websocket_handshake_throttle.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h" #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/frame/local_frame.h"
...@@ -769,13 +770,13 @@ void WebSocketChannelImpl::DidFinishLoadingBlob(DOMArrayBuffer* buffer) { ...@@ -769,13 +770,13 @@ void WebSocketChannelImpl::DidFinishLoadingBlob(DOMArrayBuffer* buffer) {
void WebSocketChannelImpl::DidFailLoadingBlob( void WebSocketChannelImpl::DidFailLoadingBlob(
file_error::ErrorCode error_code) { file_error::ErrorCode error_code) {
blob_loader_.Clear(); blob_loader_.Clear();
if (error_code == file_error::kAbortErr) { if (error_code == file_error::ErrorCode::kAbortErr) {
// The error is caused by cancel(). // The error is caused by cancel().
return; return;
} }
// FIXME: Generate human-friendly reason message. // FIXME: Generate human-friendly reason message.
FailAsError("Failed to load Blob: error code = " + FailAsError("Failed to load Blob: error code = " +
String::Number(error_code)); String::Number(static_cast<unsigned>(error_code)));
} }
void WebSocketChannelImpl::TearDownFailedConnection() { void WebSocketChannelImpl::TearDownFailedConnection() {
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include "third_party/blink/public/platform/web_callbacks.h" #include "third_party/blink/public/platform/web_callbacks.h"
#include "third_party/blink/renderer/bindings/core/v8/source_location.h" #include "third_party/blink/renderer/bindings/core/v8/source_location.h"
#include "third_party/blink/renderer/core/fileapi/blob.h" #include "third_party/blink/renderer/core/fileapi/blob.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/modules/websockets/websocket_channel.h" #include "third_party/blink/renderer/modules/websockets/websocket_channel.h"
#include "third_party/blink/renderer/modules/websockets/websocket_handle.h" #include "third_party/blink/renderer/modules/websockets/websocket_handle.h"
...@@ -55,6 +54,10 @@ ...@@ -55,6 +54,10 @@
namespace blink { namespace blink {
namespace file_error {
enum class ErrorCode;
}
class BaseFetchContext; class BaseFetchContext;
class WebSocketChannelClient; class WebSocketChannelClient;
class WebSocketHandshakeThrottle; class WebSocketHandshakeThrottle;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment