• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2011 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   *
8   * 1.  Redistributions of source code must retain the above copyright
9   *     notice, this list of conditions and the following disclaimer.
10   * 2.  Redistributions in binary form must reproduce the above copyright
11   *     notice, this list of conditions and the following disclaimer in the
12   *     documentation and/or other materials provided with the distribution.
13   *
14   * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15   * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17   * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24   */
25  
26  #include "config.h"
27  #include "modules/indexeddb/IDBVersionChangeEvent.h"
28  
29  #include "bindings/v8/IDBBindingUtilities.h"
30  #include "core/events/ThreadLocalEventNames.h"
31  
32  namespace WebCore {
33  
create(PassRefPtr<IDBAny> oldVersion,PassRefPtr<IDBAny> newVersion,const AtomicString & eventType,blink::WebIDBDataLoss dataLoss,const String & dataLossMessage)34  PassRefPtr<IDBVersionChangeEvent> IDBVersionChangeEvent::create(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
35  {
36      return adoptRef(new IDBVersionChangeEvent(oldVersion, newVersion, eventType, dataLoss, dataLossMessage));
37  }
38  
IDBVersionChangeEvent(PassRefPtr<IDBAny> oldVersion,PassRefPtr<IDBAny> newVersion,const AtomicString & eventType,blink::WebIDBDataLoss dataLoss,const String & dataLossMessage)39  IDBVersionChangeEvent::IDBVersionChangeEvent(PassRefPtr<IDBAny> oldVersion, PassRefPtr<IDBAny> newVersion, const AtomicString& eventType, blink::WebIDBDataLoss dataLoss, const String& dataLossMessage)
40      : Event(eventType, false /*canBubble*/, false /*cancelable*/)
41      , m_oldVersion(oldVersion)
42      , m_newVersion(newVersion)
43      , m_dataLoss(dataLoss)
44      , m_dataLossMessage(dataLossMessage)
45  {
46      ScriptWrappable::init(this);
47  }
48  
~IDBVersionChangeEvent()49  IDBVersionChangeEvent::~IDBVersionChangeEvent()
50  {
51  }
52  
oldVersion(ExecutionContext * context) const53  ScriptValue IDBVersionChangeEvent::oldVersion(ExecutionContext* context) const
54  {
55      DOMRequestState requestState(context);
56      return idbAnyToScriptValue(&requestState, m_oldVersion);
57  }
58  
newVersion(ExecutionContext * context) const59  ScriptValue IDBVersionChangeEvent::newVersion(ExecutionContext* context) const
60  {
61      DOMRequestState requestState(context);
62      return idbAnyToScriptValue(&requestState, m_newVersion);
63  }
64  
dataLoss() const65  const AtomicString& IDBVersionChangeEvent::dataLoss() const
66  {
67      DEFINE_STATIC_LOCAL(AtomicString, total, ("total", AtomicString::ConstructFromLiteral));
68      if (m_dataLoss == blink::WebIDBDataLossTotal)
69          return total;
70      DEFINE_STATIC_LOCAL(AtomicString, none, ("none", AtomicString::ConstructFromLiteral));
71      return none;
72  }
73  
interfaceName() const74  const AtomicString& IDBVersionChangeEvent::interfaceName() const
75  {
76      return EventNames::IDBVersionChangeEvent;
77  }
78  
79  } // namespace WebCore
80