blob: 74d4d176a0e0fa84bfd8c86011e4ff5dd62990ff [file] [log] [blame]
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +00001/*
2 * Copyright (C) 2012 Google Inc. All Rights Reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef DOMError_h
27#define DOMError_h
28
Torne (Richard Coles)93ac45c2013-05-29 14:40:20 +010029#include "bindings/v8/ScriptWrappable.h"
Ben Murdoch591b9582013-07-10 11:41:44 +010030#include "core/dom/DOMException.h"
31#include "core/dom/ExceptionCode.h"
Torne (Richard Coles)93ac45c2013-05-29 14:40:20 +010032#include "wtf/PassRefPtr.h"
33#include "wtf/RefCounted.h"
34#include "wtf/text/WTFString.h"
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000035
36namespace WebCore {
37
Torne (Richard Coles)93ac45c2013-05-29 14:40:20 +010038class DOMError : public RefCounted<DOMError>, public ScriptWrappable {
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000039public:
40 static PassRefPtr<DOMError> create(const String& name)
41 {
42 return adoptRef(new DOMError(name));
43 }
Torne (Richard Coles)521d96e2013-06-19 11:58:24 +010044 static PassRefPtr<DOMError> create(const String& name, const String& message)
45 {
46 return adoptRef(new DOMError(name, message));
47 }
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000048
Ben Murdoch591b9582013-07-10 11:41:44 +010049 static PassRefPtr<DOMError> create(ExceptionCode ec)
50 {
51 return adoptRef(new DOMError(DOMException::getErrorName(ec), DOMException::getErrorMessage(ec)));
52 }
53
54 static PassRefPtr<DOMError> create(ExceptionCode ec, const String& message)
55 {
56 return adoptRef(new DOMError(DOMException::getErrorName(ec), message));
57 }
58
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000059 const String& name() const { return m_name; }
Torne (Richard Coles)521d96e2013-06-19 11:58:24 +010060 const String& message() const { return m_message; }
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000061
62private:
63 explicit DOMError(const String& name);
Torne (Richard Coles)521d96e2013-06-19 11:58:24 +010064 explicit DOMError(const String& name, const String& message);
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000065
66 const String m_name;
Torne (Richard Coles)521d96e2013-06-19 11:58:24 +010067 const String m_message;
Torne (Richard Coles)5c87bf82012-11-14 11:46:17 +000068};
69
70} // namespace WebCore
71
72#endif // DOMError_h