From 0811addcc10b54634dd9d26a19c04fab76aea287 Mon Sep 17 00:00:00 2001 From: Fedor Date: Sun, 17 Jan 2021 16:11:13 +0200 Subject: [PATCH] Fix error when beacon.enabled set to false. --- dom/base/Navigator.cpp | 9 +++++++++ dom/webidl/Navigator.webidl | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp index c0580c359..b3cc49f21 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -94,6 +94,9 @@ #include "mozilla/DetailedPromise.h" #endif +static const char* sBeaconEnabledStr = + "beacon.enabled"; + namespace mozilla { namespace dom { @@ -861,6 +864,12 @@ Navigator::SendBeacon(const nsAString& aUrl, const Nullable& aData, ErrorResult& aRv) { + + if (!Preferences::GetBool(sBeaconEnabledStr, false)) { + aRv = NS_OK; + return true; + } + if (!mWindow) { aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR); return false; diff --git a/dom/webidl/Navigator.webidl b/dom/webidl/Navigator.webidl index 43d53cbac..879e18658 100644 --- a/dom/webidl/Navigator.webidl +++ b/dom/webidl/Navigator.webidl @@ -292,7 +292,7 @@ partial interface Navigator { }; partial interface Navigator { - [Throws, Pref="beacon.enabled"] + [Throws] boolean sendBeacon(DOMString url, optional (ArrayBufferView or Blob or DOMString or FormData)? data = null); };