mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
1f8d23143a
Differential Revision: https://phabricator.services.mozilla.com/D165559
121 lines
3.5 KiB
Plaintext
121 lines
3.5 KiB
Plaintext
/* -*- 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/. */
|
|
|
|
/*
|
|
* interface for container for information saved in session history when
|
|
* the document is not
|
|
*/
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
|
[ptr] native PresStatePtr(mozilla::PresState);
|
|
native PresStateUnique(mozilla::UniquePtr<mozilla::PresState>);
|
|
native PresState(mozilla::PresState);
|
|
[ref] native nsCString(const nsCString);
|
|
native constBool(const bool);
|
|
|
|
%{C++
|
|
#include "nsStringFwd.h"
|
|
#include "mozilla/UniquePtr.h"
|
|
|
|
namespace mozilla {
|
|
class PresState;
|
|
} // namespace mozilla
|
|
|
|
template<typename> struct already_AddRefed;
|
|
%}
|
|
|
|
[scriptable, builtinclass, uuid(aef27cb3-4df9-4eeb-b0b0-ac56cf861d04)]
|
|
interface nsILayoutHistoryState : nsISupports
|
|
{
|
|
/**
|
|
* Whether this LayoutHistoryState contains any PresStates.
|
|
*/
|
|
readonly attribute boolean hasStates;
|
|
|
|
/**
|
|
* Get the keys of all PresStates held by this LayoutHistoryState.
|
|
* Note: Check hasStates first.
|
|
*/
|
|
Array<ACString> getKeys();
|
|
|
|
/*
|
|
* Attempts to get the data of the PresState corresponding to
|
|
* the passed key. Throws if no data could be found.
|
|
*/
|
|
void getPresState(in ACString aKey,
|
|
out float aScrollX, out float aScrollY,
|
|
out boolean aAllowScrollOriginDowngrade,
|
|
out float aRes);
|
|
|
|
/**
|
|
* Constructs a new PresState object based on the supplied data
|
|
* and adds it to the LayoutHistoryState.
|
|
*/
|
|
void addNewPresState(in ACString aKey,
|
|
in float aScrollX, in float aScrollY,
|
|
in boolean aAllowScrollOriginDowngrade,
|
|
in float aRes);
|
|
|
|
// Native only interface, converted from the original nsILayoutHistoryState.h
|
|
|
|
/**
|
|
* Set |aState| as the state object for |aKey|.
|
|
* This _transfers_ownership_ of |aState| to the LayoutHistoryState.
|
|
* It will be freed when RemoveState() is called or when the
|
|
* LayoutHistoryState is destroyed.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void AddState(in nsCString aKey, in PresStateUnique aState);
|
|
|
|
/**
|
|
* Look up the state object for |aKey|.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] PresStatePtr GetState(in nsCString aKey);
|
|
|
|
/**
|
|
* Remove the state object for |aKey|.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void RemoveState(in nsCString aKey);
|
|
|
|
/**
|
|
* Check whether this history has any states in it
|
|
*/
|
|
[noscript, notxpcom, nostdcall] boolean HasStates();
|
|
|
|
/**
|
|
* Sets whether this history can contain only scroll position history
|
|
* or all possible history
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void SetScrollPositionOnly(in constBool aFlag);
|
|
|
|
/**
|
|
* Resets PresState::GetScrollState of all PresState objects to 0,0.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void ResetScrollState();
|
|
|
|
/**
|
|
* Get the contents of the layout history.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void GetContents(out boolean aScrollPositionOnly,
|
|
out Array<ACString> aKeys,
|
|
out Array<PresState> aStates);
|
|
|
|
/**
|
|
* Remove all the states and clear the scroll position only flag.
|
|
*/
|
|
[noscript, notxpcom, nostdcall] void Reset();
|
|
};
|
|
|
|
%{C++
|
|
/* Defined in nsLayoutHistoryState.cpp */
|
|
already_AddRefed<nsILayoutHistoryState>
|
|
NS_NewLayoutHistoryState();
|
|
|
|
namespace mozilla {
|
|
mozilla::UniquePtr<mozilla::PresState> NewPresState();
|
|
} // namespace mozilla
|
|
%}
|