Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/dom/indexedDB/IDBEvents.cpp
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
#include "IDBEvents.h"
8
9
#include "mozilla/ErrorResult.h"
10
#include "mozilla/dom/EventTarget.h"
11
#include "mozilla/dom/IDBVersionChangeEventBinding.h"
12
#include "nsString.h"
13
14
using namespace mozilla;
15
using namespace mozilla::dom;
16
using namespace mozilla::dom::indexedDB;
17
18
namespace mozilla {
19
namespace dom {
20
namespace indexedDB {
21
22
const char16_t* kAbortEventType = u"abort";
23
const char16_t* kBlockedEventType = u"blocked";
24
const char16_t* kCompleteEventType = u"complete";
25
const char16_t* kErrorEventType = u"error";
26
const char16_t* kSuccessEventType = u"success";
27
const char16_t* kUpgradeNeededEventType = u"upgradeneeded";
28
const char16_t* kVersionChangeEventType = u"versionchange";
29
const char16_t* kCloseEventType = u"close";
30
31
already_AddRefed<Event>
32
CreateGenericEvent(EventTarget* aOwner,
33
                   const nsDependentString& aType,
34
                   Bubbles aBubbles,
35
                   Cancelable aCancelable)
36
0
{
37
0
  RefPtr<Event> event = new Event(aOwner, nullptr, nullptr);
38
0
39
0
  event->InitEvent(aType,
40
0
                   aBubbles == eDoesBubble ? true : false,
41
0
                   aCancelable == eCancelable ? true : false);
42
0
43
0
  event->SetTrusted(true);
44
0
45
0
  return event.forget();
46
0
}
47
48
} // namespace indexedDB
49
50
// static
51
already_AddRefed<IDBVersionChangeEvent>
52
IDBVersionChangeEvent::CreateInternal(EventTarget* aOwner,
53
                                      const nsAString& aType,
54
                                      uint64_t aOldVersion,
55
                                      const Nullable<uint64_t>& aNewVersion)
56
0
{
57
0
  RefPtr<IDBVersionChangeEvent> event =
58
0
    new IDBVersionChangeEvent(aOwner, aOldVersion);
59
0
  if (!aNewVersion.IsNull()) {
60
0
    event->mNewVersion.SetValue(aNewVersion.Value());
61
0
  }
62
0
63
0
  event->InitEvent(aType, false, false);
64
0
65
0
  event->SetTrusted(true);
66
0
67
0
  return event.forget();
68
0
}
69
70
already_AddRefed<IDBVersionChangeEvent>
71
IDBVersionChangeEvent::Constructor(const GlobalObject& aGlobal,
72
                                   const nsAString& aType,
73
                                   const IDBVersionChangeEventInit& aOptions,
74
                                   ErrorResult& aRv)
75
0
{
76
0
  nsCOMPtr<EventTarget> target = do_QueryInterface(aGlobal.GetAsSupports());
77
0
78
0
  return CreateInternal(target,
79
0
                        aType,
80
0
                        aOptions.mOldVersion,
81
0
                        aOptions.mNewVersion);
82
0
}
83
84
NS_IMPL_ADDREF_INHERITED(IDBVersionChangeEvent, Event)
85
NS_IMPL_RELEASE_INHERITED(IDBVersionChangeEvent, Event)
86
87
0
NS_INTERFACE_MAP_BEGIN(IDBVersionChangeEvent)
88
0
  NS_INTERFACE_MAP_ENTRY(IDBVersionChangeEvent)
89
0
NS_INTERFACE_MAP_END_INHERITING(Event)
90
91
JSObject*
92
IDBVersionChangeEvent::WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
93
0
{
94
0
  return IDBVersionChangeEvent_Binding::Wrap(aCx, this, aGivenProto);
95
0
}
96
97
} // namespace dom
98
} // namespace mozilla