Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / indexeddb / IDBVersionChangeEvent.cpp
index 798b9ac..5458022 100644 (file)
 #include "config.h"
 #include "modules/indexeddb/IDBVersionChangeEvent.h"
 
-#include "bindings/v8/IDBBindingUtilities.h"
-#include "core/events/ThreadLocalEventNames.h"
+#include "modules/IndexedDBNames.h"
 
-namespace WebCore {
+namespace blink {
 
-PassRefPtr<IDBVersionChangeEvent> IDBVersionChangeEvent::create(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
+IDBVersionChangeEventInit::IDBVersionChangeEventInit()
+    : oldVersion(0)
 {
-    return adoptRef(new IDBVersionChangeEvent(oldVersion, newVersion, eventType, dataLoss, dataLossMessage));
 }
 
-IDBVersionChangeEvent::IDBVersionChangeEvent(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
+IDBVersionChangeEvent::IDBVersionChangeEvent()
+    : m_dataLoss(WebIDBDataLossNone)
+{
+    ScriptWrappable::init(this);
+}
+
+IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString& eventType, unsigned long long oldVersion, const Nullable<unsigned long long>& newVersion, WebIDBDataLoss dataLoss, const String& dataLossMessage)
     : Event(eventType, false /*canBubble*/, false /*cancelable*/)
     , m_oldVersion(oldVersion)
     , m_newVersion(newVersion)
@@ -46,29 +51,30 @@ IDBVersionChangeEvent::IDBVersionChangeEvent(PassRefPtr<IDBAny> oldVersion, Pass
     ScriptWrappable::init(this);
 }
 
-IDBVersionChangeEvent::~IDBVersionChangeEvent()
-{
-}
-
-ScriptValue IDBVersionChangeEvent::oldVersion(ExecutionContext* context) const
+IDBVersionChangeEvent::IDBVersionChangeEvent(const AtomicString& eventType, const IDBVersionChangeEventInit& initializer)
+    : Event(eventType, false /*canBubble*/, false /*cancelable*/)
+    , m_oldVersion(initializer.oldVersion)
+    , m_newVersion(initializer.newVersion)
+    , m_dataLoss(WebIDBDataLossNone)
 {
-    DOMRequestState requestState(context);
-    return idbAnyToScriptValue(&requestState, m_oldVersion);
+    if (initializer.dataLoss.isEmpty() || initializer.dataLoss == "none")
+        m_dataLoss = WebIDBDataLossNone;
+    else if (initializer.dataLoss == "total")
+        m_dataLoss = WebIDBDataLossTotal;
+    ScriptWrappable::init(this);
 }
 
-ScriptValue IDBVersionChangeEvent::newVersion(ExecutionContext* context) const
+unsigned long long IDBVersionChangeEvent::newVersion(bool& isNull) const
 {
-    DOMRequestState requestState(context);
-    return idbAnyToScriptValue(&requestState, m_newVersion);
+    isNull = m_newVersion.isNull();
+    return isNull ? 0 : m_newVersion.get();
 }
 
 const AtomicString& IDBVersionChangeEvent::dataLoss() const
 {
-    DEFINE_STATIC_LOCAL(AtomicString, total, ("total", AtomicString::ConstructFromLiteral));
-    if (m_dataLoss == blink::WebIDBDataLossTotal)
-        return total;
-    DEFINE_STATIC_LOCAL(AtomicString, none, ("none", AtomicString::ConstructFromLiteral));
-    return none;
+    if (m_dataLoss == WebIDBDataLossTotal)
+        return IndexedDBNames::total;
+    return IndexedDBNames::none;
 }
 
 const AtomicString& IDBVersionChangeEvent::interfaceName() const
@@ -76,4 +82,9 @@ const AtomicString& IDBVersionChangeEvent::interfaceName() const
     return EventNames::IDBVersionChangeEvent;
 }
 
-} // namespace WebCore
+void IDBVersionChangeEvent::trace(Visitor* visitor)
+{
+    Event::trace(visitor);
+}
+
+} // namespace blink