Files
firefox/chrome/RegistryMessageUtils.h

67 lines
1.9 KiB
C++

/* 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 mozilla_RegistryMessageUtils_h
#define mozilla_RegistryMessageUtils_h
#include "ipc/IPCMessageUtilsSpecializations.h"
#include "nsString.h"
struct SerializedURI {
nsCString spec;
bool operator==(const SerializedURI& rhs) const {
return spec.Equals(rhs.spec);
}
};
struct ChromePackage {
nsCString package;
SerializedURI contentBaseURI;
SerializedURI localeBaseURI;
SerializedURI skinBaseURI;
uint32_t flags;
bool operator==(const ChromePackage& rhs) const {
return package.Equals(rhs.package) &&
contentBaseURI == rhs.contentBaseURI &&
localeBaseURI == rhs.localeBaseURI &&
skinBaseURI == rhs.skinBaseURI && flags == rhs.flags;
}
};
struct SubstitutionMapping {
nsCString scheme;
nsCString path;
SerializedURI resolvedURI;
uint32_t flags;
bool operator==(const SubstitutionMapping& rhs) const {
return scheme.Equals(rhs.scheme) && path.Equals(rhs.path) &&
resolvedURI == rhs.resolvedURI && flags == rhs.flags;
}
};
struct OverrideMapping {
SerializedURI originalURI;
SerializedURI overrideURI;
bool operator==(const OverrideMapping& rhs) const {
return originalURI == rhs.originalURI && overrideURI == rhs.overrideURI;
}
};
namespace IPC {
DEFINE_IPC_SERIALIZER_WITH_FIELDS(SerializedURI, spec);
DEFINE_IPC_SERIALIZER_WITH_FIELDS(ChromePackage, package, contentBaseURI,
localeBaseURI, skinBaseURI, flags);
DEFINE_IPC_SERIALIZER_WITH_FIELDS(SubstitutionMapping, scheme, path,
resolvedURI, flags);
DEFINE_IPC_SERIALIZER_WITH_FIELDS(OverrideMapping, originalURI, overrideURI);
} // namespace IPC
#endif // RegistryMessageUtils_h