blob: 92e342ad50c73e46a03047fd93ac711ceae3efc6 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/push_messaging/push_error.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h"
namespace blink {
DOMException* PushError::Take(ScriptPromiseResolver* resolver,
const WebPushError& web_error) {
switch (web_error.error_type) {
case WebPushError::kErrorTypeAbort:
return DOMException::Create(DOMExceptionCode::kAbortError,
web_error.message);
case WebPushError::kErrorTypeInvalidState:
return DOMException::Create(DOMExceptionCode::kInvalidStateError,
web_error.message);
case WebPushError::kErrorTypeNetwork:
return DOMException::Create(DOMExceptionCode::kNetworkError,
web_error.message);
case WebPushError::kErrorTypeNone:
NOTREACHED();
return DOMException::Create(DOMExceptionCode::kUnknownError,
web_error.message);
case WebPushError::kErrorTypeNotAllowed:
return DOMException::Create(DOMExceptionCode::kNotAllowedError,
web_error.message);
case WebPushError::kErrorTypeNotFound:
return DOMException::Create(DOMExceptionCode::kNotFoundError,
web_error.message);
case WebPushError::kErrorTypeNotSupported:
return DOMException::Create(DOMExceptionCode::kNotSupportedError,
web_error.message);
}
NOTREACHED();
return DOMException::Create(DOMExceptionCode::kUnknownError);
}
} // namespace blink