1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "config.h"
6#include "modules/push_messaging/PushError.h"
7
8#include "core/dom/ExceptionCode.h"
9#include "wtf/OwnPtr.h"
10
11namespace blink {
12
13PassRefPtrWillBeRawPtr<DOMException> PushError::take(ScriptPromiseResolver*, WebType* webErrorRaw)
14{
15    OwnPtr<WebType> webError = adoptPtr(webErrorRaw);
16    switch (webError->errorType) {
17    case WebPushError::ErrorTypeAbort:
18        return DOMException::create(AbortError, webError->message);
19    case WebPushError::ErrorTypeUnknown:
20        return DOMException::create(UnknownError);
21    }
22    ASSERT_NOT_REACHED();
23    return DOMException::create(UnknownError);
24}
25
26void PushError::dispose(WebType* webErrorRaw)
27{
28    delete webErrorRaw;
29}
30
31} // namespace blink
32