diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /toolkit/components/sessionstore/PSessionStore.ipdl | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | toolkit/components/sessionstore/PSessionStore.ipdl | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/toolkit/components/sessionstore/PSessionStore.ipdl b/toolkit/components/sessionstore/PSessionStore.ipdl new file mode 100644 index 0000000000..4b7bb48849 --- /dev/null +++ b/toolkit/components/sessionstore/PSessionStore.ipdl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */ +/* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ +/* 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 "mozilla/GfxMessageUtils.h"; + +include protocol PBrowser; +include protocol PInProcess; +include SessionStoreTypes; + +using mozilla::dom::MaybeDiscardedBrowsingContext from "mozilla/dom/BrowsingContext.h"; +using mozilla::dom::MaybeSessionStoreZoom from "mozilla/dom/SessionStoreScrollData.h"; + +namespace mozilla { +namespace dom { + +/** + * The PSessionStore actor handles collection of session store data from content + * type documents. It can be used both in a content process and in the parent + * process. In particular it solves the problem of handling incremental updates + * to the session store, since we're collecting from potentially several content + * processes. + */ +async protocol PSessionStore +{ + manager PBrowser or PInProcess; + +parent: + /** + * Sends data to be stored and instructions to the session store to + * potentially collect data in the parent. This is data that is not + * collected incrementally. + */ + async SessionStoreUpdate( + nsCString? aDocShellCaps, bool? aPrivateMode, MaybeSessionStoreZoom aZoom, + bool aNeedCollectSHistory, uint32_t aEpoch); + + /** + * Sends data to be stored to the session store. The collected data + * is all the collected changed data from all the in-process documents + * in the process in which the SessionStoreChild actor lives. + */ + async IncrementalSessionStoreUpdate( + MaybeDiscardedBrowsingContext aBrowsingContext, FormData? aFormData, + nsPoint? aScrollPosition, uint32_t aEpoch); + + /** + * Drop all the collected data associated with the provided browsing + * context. + */ + async ResetSessionStore( + MaybeDiscardedBrowsingContext aBrowsingContext, uint32_t aEpoch); + +child: + async FlushTabState() returns(bool aHadContext); + + async __delete__(); +}; + +} // namespace dom +} // namespace mozilla |