docshell/shistory/nsSHEntry.h
author Mozilla Releng Treescript <release+treescript@mozilla.org>
Thu, 18 Aug 2022 06:56:54 +0000
changeset 627570 c45104ac2e94af0a52a6dfb0498c80fa73500b60
parent 580640 a25184e549adecdd70b8c376d81545c56dce2558
permissions -rw-r--r--
no bug - Bumping Firefox l10n changesets r=release a=l10n-bump DONTBUILD en-CA -> ec433d549a8bbb5d50167ee7629948b2656dbfa5 en-GB -> 83cd2ec9010fb4fcc6aa09e71474f10b97d70b79 es-AR -> 48b88b3eebc9705ba4946570040fbbd81b8ae160 es-CL -> 73b3a89f574c2b2cdca5eeb25e1fcc28166e260a ia -> f0071ad160a8e8ce807d5f00ff101c709436e0aa it -> 3b4658fa327bbe4465ed5ad7026432dd7bd93523 si -> 31fe31de2f66ae86b0b6a521b3e2f7179a9a91e7 uk -> 65bae258e50b6757249b7362b3598ffa870bd3b8 vi -> e8eeed8fb58b963d558eb8c1e9ac22c92edccc07 zh-CN -> 74129320a02fc8368e95135cded1978ea5d0274f

/* -*- 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 http://mozilla.org/MPL/2.0/. */

#ifndef nsSHEntry_h
#define nsSHEntry_h

#include "nsCOMArray.h"
#include "nsCOMPtr.h"
#include "nsISHEntry.h"
#include "nsString.h"

#include "mozilla/Attributes.h"

class nsSHEntryShared;
class nsIInputStream;
class nsIURI;
class nsIReferrerInfo;

class nsSHEntry : public nsISHEntry {
 public:
  nsSHEntry();

  NS_DECL_ISUPPORTS
  NS_DECL_NSISHENTRY

  virtual void EvictContentViewer();

  static nsresult Startup();
  static void Shutdown();

  nsSHEntryShared* GetState() { return mShared; }

 protected:
  explicit nsSHEntry(const nsSHEntry& aOther);
  virtual ~nsSHEntry();

  // We share the state in here with other SHEntries which correspond to the
  // same document.
  RefPtr<nsSHEntryShared> mShared;

  // See nsSHEntry.idl for comments on these members.
  nsCOMPtr<nsIURI> mURI;
  nsCOMPtr<nsIURI> mOriginalURI;
  nsCOMPtr<nsIURI> mResultPrincipalURI;
  nsCOMPtr<nsIReferrerInfo> mReferrerInfo;
  nsString mTitle;
  nsString mName;
  nsCOMPtr<nsIInputStream> mPostData;
  uint32_t mLoadType;
  uint32_t mID;
  int32_t mScrollPositionX;
  int32_t mScrollPositionY;
  nsISHEntry* mParent;
  nsCOMArray<nsISHEntry> mChildren;
  nsCOMPtr<nsIStructuredCloneContainer> mStateData;
  nsString mSrcdocData;
  nsCOMPtr<nsIURI> mBaseURI;
  bool mLoadReplace;
  bool mURIWasModified;
  bool mIsSrcdocEntry;
  bool mScrollRestorationIsManual;
  bool mLoadedInThisProcess;
  bool mPersist;
  bool mHasUserInteraction;
  bool mHasUserActivation;
};

#endif /* nsSHEntry_h */