15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) * Copyright (C) 2013 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#ifndef WebDOMError_h 3219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#define WebDOMError_h 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "public/platform/WebCommon.h" 3519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "public/platform/WebPrivatePtr.h" 3619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#include "public/platform/WebString.h" 3719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 3819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)namespace v8 { 39d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class Isolate; 40d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)class Object; 4119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)class Value; 4219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)template <class T> class Handle; 4319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)} 4419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 4551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)namespace blink { 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 47e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class DOMError; 48e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 4919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)class WebDOMError { 5019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)public: 5119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) ~WebDOMError() { reset(); } 5219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 5319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) WebDOMError() { } 5419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) WebDOMError(const WebDOMError& b) { assign(b); } 5519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) WebDOMError& operator=(const WebDOMError& b) 5619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) { 5719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) assign(b); 5819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) return *this; 5919cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) } 6019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 6119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) BLINK_EXPORT static WebDOMError create(const WebString& name, const WebString& message); 6219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 6319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) BLINK_EXPORT void reset(); 6419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) BLINK_EXPORT void assign(const WebDOMError&); 6519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 6619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) BLINK_EXPORT WebString name() const; 6719cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) BLINK_EXPORT WebString message() const; 6819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 69d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) BLINK_EXPORT v8::Handle<v8::Value> toV8Value(v8::Handle<v8::Object> creationContext, v8::Isolate*); 7019cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 7119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#if BLINK_IMPLEMENTATION 72e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) explicit WebDOMError(const PassRefPtrWillBeRawPtr<DOMError>&); 73e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebDOMError& operator=(const PassRefPtrWillBeRawPtr<DOMError>&); 7419cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#endif 7519cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 7619cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)protected: 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) WebPrivatePtr<DOMError> m_private; 7819cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)}; 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8051b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 8119cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) 8219cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles)#endif // WebDOMError_h 83