Bug 1682919 - Avoid creating a new DisplayPortMargins object as a side effect of querying the displayport. r=tnikkel
DisplayPortMargins objects are only meant to be created when setting
display port margins, not when querying them, because the object's
constructor records the visual and layout scroll offsets at the time
of construction to use for adjusting the margins to be layout-relative.
Differential Revision:
https://phabricator.services.mozilla.com/D102075
/* -*- 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 mozilla_permissiondelegateipcutils_h
#define mozilla_permissiondelegateipcutils_h
#include "ipc/IPCMessageUtils.h"
#include "mozilla/PermissionDelegateHandler.h"
namespace IPC {
template <>
struct ParamTraits<
mozilla::PermissionDelegateHandler::DelegatedPermissionList> {
typedef mozilla::PermissionDelegateHandler::DelegatedPermissionList paramType;
static void Write(Message* aMsg, const paramType& aParam) {
for (auto& permission : aParam.mPermissions) {
WriteParam(aMsg, permission);
}
}
static bool Read(const Message* aMsg, PickleIterator* aIter,
paramType* aResult) {
for (auto& permission : aResult->mPermissions) {
if (!ReadParam(aMsg, aIter, &permission)) {
return false;
}
}
return true;
}
};
} // namespace IPC
#endif // mozilla_permissiondelegateipcutils_h