Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(711)

Unified Diff: Source/core/dom/ErrorEvent.h

Issue 20351002: Add 'error' parameter to 'window.onerror' handlers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rework. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/ErrorEvent.h
diff --git a/Source/core/dom/ErrorEvent.h b/Source/core/dom/ErrorEvent.h
index 1e57e25c112a6c213e1811a677d8b9d6250aefd2..676572c18d6bdb21f506ecc06d5d8b45be1d81fd 100644
--- a/Source/core/dom/ErrorEvent.h
+++ b/Source/core/dom/ErrorEvent.h
@@ -31,7 +31,10 @@
#ifndef ErrorEvent_h
#define ErrorEvent_h
+#include "bindings/v8/ScriptValue.h"
+#include "bindings/v8/SerializedScriptValue.h"
#include "core/dom/Event.h"
+#include "wtf/RefPtr.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
@@ -43,6 +46,7 @@ struct ErrorEventInit : public EventInit {
String filename;
unsigned lineno;
unsigned column;
+ ScriptValue error;
};
class ErrorEvent : public Event {
@@ -51,9 +55,9 @@ public:
{
return adoptRef(new ErrorEvent);
}
- static PassRefPtr<ErrorEvent> create(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber)
+ static PassRefPtr<ErrorEvent> create(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber, const ScriptValue& errorWrapper)
{
- return adoptRef(new ErrorEvent(message, fileName, lineNumber, columnNumber));
+ return adoptRef(new ErrorEvent(message, fileName, lineNumber, columnNumber, errorWrapper));
}
static PassRefPtr<ErrorEvent> create(const AtomicString& type, const ErrorEventInit& initializer)
{
@@ -65,18 +69,28 @@ public:
const String& filename() const { return m_fileName; }
unsigned lineno() const { return m_lineNumber; }
unsigned column() const { return m_columnNumber; }
+ ScriptValue error() const { return m_error; }
+
+ SerializedScriptValue* serializedError() { return m_serializedError.get(); }
+ void setSerializedError(PassRefPtr<SerializedScriptValue>);
virtual const AtomicString& interfaceName() const;
private:
ErrorEvent();
- ErrorEvent(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber);
+ ErrorEvent(const String& message, const String& fileName, unsigned lineNumber, unsigned columnNumber, const ScriptValue&);
ErrorEvent(const AtomicString&, const ErrorEventInit&);
+
String m_message;
String m_fileName;
unsigned m_lineNumber;
unsigned m_columnNumber;
+
+ // The DOMWrapperWorld's ID is stored as a hidden property on this object ('V8HiddenPropertyName::worldID()') in order to ensure that it doesn't cross isolated worlds.
+ ScriptValue m_error;
+
+ RefPtr<SerializedScriptValue> m_serializedError;
};
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698