/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 http://mozilla.org/MPL/2.0/. */

#include "nsIDOMEvent.idl"

/**
 * The nsIDOMPageTransitionEvent interface is used for the pageshow and
 * pagehide events, which are generic events that apply to both page
 * load/unload and saving/restoring a document from session history.
 */

[scriptable, uuid(3ca21c34-8391-4c5b-891e-0540a675dbf4)]
interface nsIDOMPageTransitionEvent : nsIDOMEvent
{
  /**
   * Set to true if the document has been or will be persisted across
   * firing of the event.  For example, if a document is being cached in
   * session history, |persisted| is true for the PageHide event.
   */
  readonly attribute boolean persisted;

  /* Initialize a new pageshow or pagehide event. */
  void initPageTransitionEvent(in DOMString typeArg,
                               in boolean canBubbleArg,
                               in boolean canCancelArg,
                               in boolean persisted);
};

dictionary PageTransitionEventInit : EventInit
{
  boolean persisted;
};
