Source code
Revision control
Copy as Markdown
Other Tools
/* 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_dom_ReportingUtils_h
#define mozilla_dom_ReportingUtils_h
#include "nsString.h"
class nsAtom;
class nsIGlobalObject;
class nsIURI;
namespace mozilla::dom {
class EventTarget;
class ReportBody;
class ReportingUtils final {
public:
static void StripURL(nsIURI* aURI, nsACString& outStrippedURL);
static void Report(nsIGlobalObject* aGlobal, nsAtom* aType,
const nsAString& aGroupName, const nsAString& aURL,
ReportBody* aBody);
/**
* Deserializes `aSecurityPolicyViolationInitJSON` into a
* `SecurityPolicyViolationEventInit` which is then used to generate an event
* and report, dispatch them, and attempt delivery to any configured endpoint.
*/
static void DeserializeSecurityViolationEventAndReport(
mozilla::dom::EventTarget* aTarget, nsIGlobalObject* aGlobal,
const nsAString& aSecurityPolicyViolationInitJSON,
const nsAString& aReportGroupName);
};
} // namespace mozilla::dom
#endif // mozilla_dom_ReportingUtils_h