tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestInterfaceObservableArray.cpp (8630B)


      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 file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "mozilla/dom/TestInterfaceObservableArray.h"
      8 
      9 #include "mozilla/dom/BindingUtils.h"
     10 #include "mozilla/dom/TestInterfaceObservableArrayBinding.h"
     11 #include "nsPIDOMWindow.h"
     12 
     13 namespace mozilla::dom {
     14 
     15 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(TestInterfaceObservableArray, mParent,
     16                                      mSetBooleanCallback,
     17                                      mDeleteBooleanCallback,
     18                                      mSetObjectCallback, mDeleteObjectCallback,
     19                                      mSetInterfaceCallback,
     20                                      mDeleteInterfaceCallback)
     21 
     22 NS_IMPL_CYCLE_COLLECTING_ADDREF(TestInterfaceObservableArray)
     23 NS_IMPL_CYCLE_COLLECTING_RELEASE(TestInterfaceObservableArray)
     24 
     25 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TestInterfaceObservableArray)
     26  NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
     27  NS_INTERFACE_MAP_ENTRY(nsISupports)
     28 NS_INTERFACE_MAP_END
     29 
     30 TestInterfaceObservableArray::TestInterfaceObservableArray(
     31    nsPIDOMWindowInner* aParent, const ObservableArrayCallbacks& aCallbacks)
     32    : mParent(aParent) {
     33  if (aCallbacks.mSetBooleanCallback.WasPassed()) {
     34    mSetBooleanCallback = &aCallbacks.mSetBooleanCallback.Value();
     35  }
     36  if (aCallbacks.mDeleteBooleanCallback.WasPassed()) {
     37    mDeleteBooleanCallback = &aCallbacks.mDeleteBooleanCallback.Value();
     38  }
     39  if (aCallbacks.mSetObjectCallback.WasPassed()) {
     40    mSetObjectCallback = &aCallbacks.mSetObjectCallback.Value();
     41  }
     42  if (aCallbacks.mDeleteObjectCallback.WasPassed()) {
     43    mDeleteObjectCallback = &aCallbacks.mDeleteObjectCallback.Value();
     44  }
     45  if (aCallbacks.mSetInterfaceCallback.WasPassed()) {
     46    mSetInterfaceCallback = &aCallbacks.mSetInterfaceCallback.Value();
     47  }
     48  if (aCallbacks.mDeleteInterfaceCallback.WasPassed()) {
     49    mDeleteInterfaceCallback = &aCallbacks.mDeleteInterfaceCallback.Value();
     50  }
     51 }
     52 
     53 // static
     54 already_AddRefed<TestInterfaceObservableArray>
     55 TestInterfaceObservableArray::Constructor(
     56    const GlobalObject& aGlobal, const ObservableArrayCallbacks& aCallbacks,
     57    ErrorResult& aRv) {
     58  nsCOMPtr<nsPIDOMWindowInner> window =
     59      do_QueryInterface(aGlobal.GetAsSupports());
     60  if (!window) {
     61    aRv.Throw(NS_ERROR_FAILURE);
     62    return nullptr;
     63  }
     64 
     65  RefPtr<TestInterfaceObservableArray> r =
     66      new TestInterfaceObservableArray(window, aCallbacks);
     67  return r.forget();
     68 }
     69 
     70 JSObject* TestInterfaceObservableArray::WrapObject(
     71    JSContext* aCx, JS::Handle<JSObject*> aGivenProto) {
     72  return TestInterfaceObservableArray_Binding::Wrap(aCx, this, aGivenProto);
     73 }
     74 
     75 nsPIDOMWindowInner* TestInterfaceObservableArray::GetParentObject() const {
     76  return mParent;
     77 }
     78 
     79 void TestInterfaceObservableArray::OnSetObservableArrayObject(
     80    JSContext* aCx, JS::Handle<JSObject*> aValue, uint32_t aIndex,
     81    ErrorResult& aRv) {
     82  if (mSetObjectCallback) {
     83    MOZ_KnownLive(mSetObjectCallback)
     84        ->Call(aValue, aIndex, aRv, "OnSetObservableArrayObject",
     85               CallbackFunction::eRethrowExceptions);
     86  }
     87 }
     88 
     89 void TestInterfaceObservableArray::OnDeleteObservableArrayObject(
     90    JSContext* aCx, JS::Handle<JSObject*> aValue, uint32_t aIndex,
     91    ErrorResult& aRv) {
     92  if (mDeleteObjectCallback) {
     93    MOZ_KnownLive(mDeleteObjectCallback)
     94        ->Call(aValue, aIndex, aRv, "OnDeleteObservableArrayObject",
     95               CallbackFunction::eRethrowExceptions);
     96  }
     97 }
     98 
     99 void TestInterfaceObservableArray::OnSetObservableArrayBoolean(
    100    bool aValue, uint32_t aIndex, ErrorResult& aRv) {
    101  if (mSetBooleanCallback) {
    102    MOZ_KnownLive(mSetBooleanCallback)
    103        ->Call(aValue, aIndex, aRv, "OnSetObservableArrayBoolean",
    104               CallbackFunction::eRethrowExceptions);
    105  }
    106 }
    107 
    108 void TestInterfaceObservableArray::OnDeleteObservableArrayBoolean(
    109    bool aValue, uint32_t aIndex, ErrorResult& aRv) {
    110  if (mDeleteBooleanCallback) {
    111    MOZ_KnownLive(mDeleteBooleanCallback)
    112        ->Call(aValue, aIndex, aRv, "OnDeleteObservableArrayBoolean",
    113               CallbackFunction::eRethrowExceptions);
    114  }
    115 }
    116 
    117 void TestInterfaceObservableArray::OnSetObservableArrayInterface(
    118    TestInterfaceObservableArray* aValue, uint32_t aIndex, ErrorResult& aRv) {
    119  if (mSetInterfaceCallback && aValue) {
    120    MOZ_KnownLive(mSetInterfaceCallback)
    121        ->Call(*aValue, aIndex, aRv, "OnSetObservableArrayInterface",
    122               CallbackFunction::eRethrowExceptions);
    123  }
    124 }
    125 
    126 void TestInterfaceObservableArray::OnDeleteObservableArrayInterface(
    127    TestInterfaceObservableArray* aValue, uint32_t aIndex, ErrorResult& aRv) {
    128  if (mDeleteInterfaceCallback && aValue) {
    129    MOZ_KnownLive(mDeleteInterfaceCallback)
    130        ->Call(*aValue, aIndex, aRv, "OnDeleteObservableArrayInterface",
    131               CallbackFunction::eRethrowExceptions);
    132  }
    133 }
    134 
    135 bool TestInterfaceObservableArray::BooleanElementAtInternal(uint32_t aIndex,
    136                                                            ErrorResult& aRv) {
    137  return TestInterfaceObservableArray_Binding::ObservableArrayBooleanHelpers::
    138      ElementAt(this, aIndex, aRv);
    139 }
    140 
    141 void TestInterfaceObservableArray::ObjectElementAtInternal(
    142    JSContext* aCx, uint32_t aIndex, JS::MutableHandle<JSObject*> aValue,
    143    ErrorResult& aRv) {
    144  TestInterfaceObservableArray_Binding::ObservableArrayObjectHelpers::ElementAt(
    145      this, aCx, aIndex, aValue, aRv);
    146 }
    147 
    148 already_AddRefed<TestInterfaceObservableArray>
    149 TestInterfaceObservableArray::InterfaceElementAtInternal(uint32_t aIndex,
    150                                                         ErrorResult& aRv) {
    151  return TestInterfaceObservableArray_Binding::ObservableArrayInterfaceHelpers::
    152      ElementAt(this, aIndex, aRv);
    153 }
    154 
    155 void TestInterfaceObservableArray::BooleanReplaceElementAtInternal(
    156    uint32_t aIndex, bool aValue, ErrorResult& aRv) {
    157  TestInterfaceObservableArray_Binding::ObservableArrayBooleanHelpers::
    158      ReplaceElementAt(this, aIndex, aValue, aRv);
    159 }
    160 
    161 void TestInterfaceObservableArray::ObjectReplaceElementAtInternal(
    162    JSContext* aCx, uint32_t aIndex, JS::Handle<JSObject*> aValue,
    163    ErrorResult& aRv) {
    164  TestInterfaceObservableArray_Binding::ObservableArrayObjectHelpers::
    165      ReplaceElementAt(this, aIndex, aValue, aRv);
    166 }
    167 
    168 void TestInterfaceObservableArray::InterfaceReplaceElementAtInternal(
    169    uint32_t aIndex, TestInterfaceObservableArray& aValue, ErrorResult& aRv) {
    170  TestInterfaceObservableArray_Binding::ObservableArrayInterfaceHelpers::
    171      ReplaceElementAt(this, aIndex, aValue, aRv);
    172 }
    173 
    174 void TestInterfaceObservableArray::BooleanAppendElementInternal(
    175    bool aValue, ErrorResult& aRv) {
    176  TestInterfaceObservableArray_Binding::ObservableArrayBooleanHelpers::
    177      AppendElement(this, aValue, aRv);
    178 }
    179 
    180 void TestInterfaceObservableArray::ObjectAppendElementInternal(
    181    JSContext* aCx, JS::Handle<JSObject*> aValue, ErrorResult& aRv) {
    182  TestInterfaceObservableArray_Binding::ObservableArrayObjectHelpers::
    183      AppendElement(this, aValue, aRv);
    184 }
    185 
    186 void TestInterfaceObservableArray::InterfaceAppendElementInternal(
    187    TestInterfaceObservableArray& aValue, ErrorResult& aRv) {
    188  TestInterfaceObservableArray_Binding::ObservableArrayInterfaceHelpers::
    189      AppendElement(this, aValue, aRv);
    190 }
    191 
    192 void TestInterfaceObservableArray::BooleanRemoveLastElementInternal(
    193    ErrorResult& aRv) {
    194  TestInterfaceObservableArray_Binding::ObservableArrayBooleanHelpers::
    195      RemoveLastElement(this, aRv);
    196 }
    197 
    198 void TestInterfaceObservableArray::ObjectRemoveLastElementInternal(
    199    ErrorResult& aRv) {
    200  TestInterfaceObservableArray_Binding::ObservableArrayObjectHelpers::
    201      RemoveLastElement(this, aRv);
    202 }
    203 
    204 void TestInterfaceObservableArray::InterfaceRemoveLastElementInternal(
    205    ErrorResult& aRv) {
    206  TestInterfaceObservableArray_Binding::ObservableArrayInterfaceHelpers::
    207      RemoveLastElement(this, aRv);
    208 }
    209 
    210 uint32_t TestInterfaceObservableArray::BooleanLengthInternal(ErrorResult& aRv) {
    211  return TestInterfaceObservableArray_Binding::ObservableArrayBooleanHelpers::
    212      Length(this, aRv);
    213 }
    214 
    215 uint32_t TestInterfaceObservableArray::ObjectLengthInternal(ErrorResult& aRv) {
    216  return TestInterfaceObservableArray_Binding::ObservableArrayObjectHelpers::
    217      Length(this, aRv);
    218 }
    219 
    220 uint32_t TestInterfaceObservableArray::InterfaceLengthInternal(
    221    ErrorResult& aRv) {
    222  return TestInterfaceObservableArray_Binding::ObservableArrayInterfaceHelpers::
    223      Length(this, aRv);
    224 }
    225 
    226 }  // namespace mozilla::dom