/* 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 PBackgroundSharedTypes; include ProtocolTypes; include "mozilla/dom/localstorage/SerializationHelpers.h"; using mozilla::dom::LSValue from "mozilla/dom/LSValue.h"; namespace mozilla { namespace dom { struct LSRequestCommonParams { PrincipalInfo principalInfo; PrincipalInfo storagePrincipalInfo; nsCString originKey; }; struct LSRequestPreloadDatastoreParams { LSRequestCommonParams commonParams; }; struct LSRequestPrepareDatastoreParams { LSRequestCommonParams commonParams; nsID? clientId; }; struct LSRequestPrepareObserverParams { PrincipalInfo principalInfo; PrincipalInfo storagePrincipalInfo; nsID? clientId; }; union LSRequestParams { LSRequestPreloadDatastoreParams; LSRequestPrepareDatastoreParams; LSRequestPrepareObserverParams; }; struct LSSimpleRequestPreloadedParams { PrincipalInfo principalInfo; PrincipalInfo storagePrincipalInfo; }; union LSSimpleRequestParams { LSSimpleRequestPreloadedParams; }; /** * LocalStorage key/value pair wire representations. `value` may be void in * cases where there is a value but it is not being sent for memory/bandwidth * conservation purposes. (It's not possible to have a null/undefined `value` * as Storage is defined explicitly as a String store.) */ struct LSItemInfo { nsString key; LSValue value; }; } // namespace dom } // namespace mozilla