author Ryan VanderMeulen <>
Sun, 15 Jul 2018 15:36:34 -0400
changeset 481779 22834f47b631c6b60554626484bacaaf4da51032
parent 390466 6910cab30bdd58270b39e7cf041c022c2aba6a2c
child 505383 6f3709b3878117466168c40affa7bca0b60cf75b
permissions -rw-r--r--
Bug 1475878 - Update pdf.js to version 2.0.688. r=bdahl

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */

#ifndef mozilla_dom_StorageEvent_h
#define mozilla_dom_StorageEvent_h

#include "mozilla/Attributes.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/dom/BindingUtils.h"
#include "mozilla/dom/Event.h"
#include "mozilla/dom/StorageEventBinding.h"

class nsIPrincipal;

namespace mozilla {
namespace dom {

class Storage;

class StorageEvent : public Event

  explicit StorageEvent(EventTarget* aOwner);

  virtual ~StorageEvent();

  nsString mKey;
  nsString mOldValue;
  nsString mNewValue;
  nsString mUrl;
  RefPtr<Storage> mStorageArea;
  nsCOMPtr<nsIPrincipal> mPrincipal;

  virtual StorageEvent* AsStorageEvent();

  virtual JSObject* WrapObjectInternal(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;

  static already_AddRefed<StorageEvent>
  Constructor(EventTarget* aOwner, const nsAString& aType,
              const StorageEventInit& aEventInitDict);

  static already_AddRefed<StorageEvent>
  Constructor(const GlobalObject& aGlobal, const nsAString& aType,
              const StorageEventInit& aEventInitDict, ErrorResult& aRv);

  void InitStorageEvent(const nsAString& aType, bool aCanBubble,
                        bool aCancelable, const nsAString& aKey,
                        const nsAString& aOldValue,
                        const nsAString& aNewValue,
                        const nsAString& aURL,
                        Storage* aStorageArea);

  void GetKey(nsString& aRetVal) const
    aRetVal = mKey;

  void GetOldValue(nsString& aRetVal) const
    aRetVal = mOldValue;

  void GetNewValue(nsString& aRetVal) const
    aRetVal = mNewValue;

  void GetUrl(nsString& aRetVal) const
    aRetVal = mUrl;

  Storage* GetStorageArea() const
    return mStorageArea;

  // Non WebIDL methods
  void SetPrincipal(nsIPrincipal* aPrincipal)
    mPrincipal = aPrincipal;

  nsIPrincipal* GetPrincipal() const
    return mPrincipal;

} // namespace dom
} // namespace mozilla

#endif // mozilla_dom_StorageEvent_h