Commit Graph

243 Commits

Author SHA1 Message Date
David Parks
271f3b1054 Bug 1915309: Add Windows Geolocation UI to artifact builds r=firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D222339
2024-09-16 20:07:09 +00:00
David Parks
48c6934e1d Bug 1900225: Part 6 - Wait for Windows permission dialog to be dismissed before requesting geolocation r=emilio,win-reviewers,gstoll
When Windows presents the dialog asking the user to give geolocation permission
to Firefox, we need to wait for the user to make a choice before running the
geolocation request.    Previously, we were not waiting for the user's response
so most requests would timeout and fail, even if the user replied "Yes".

This dialog is only ever presented once -- the first time that Firefox asks
Windows for a wifi scan.  It does not reappear on restarts or reinstalls.   This
dedicated Yes/No system prompt is a bit more user-friendly than system settings.

This "system will prompt for permission" case could be completely avoided since
wifi scanning is not useful to us when it requires geolocation permissions as
geolocation would override it.  We would need the MLSFallback behavior to skip
scanning wifi when geolocation permission wasn't already granted, or else the
MLSFallback would present the system prompt in question, despite the user having
already denied permission.  On the other hand, we need the old scanning behavior
for this case when running versions of Windows 10 and 11 that don't have these
updates.  (The updates are set to appear in the 24H2 version of Windows 11.)
This approach avoids that kind of version special-casing.

Differential Revision: https://phabricator.services.mozilla.com/D218589
2024-08-27 22:47:33 +00:00
David Parks
cf53d2cd9f Bug 1900225: Part 5 - On Windows, do not show message about wifi scan permission if no wifi is present r=win-reviewers,necko-reviewers,valentin,gstoll
We added a note to the geolocation doorhanger, warning the user when Windows is
going to repeat the request for user permission (although it asks for permission
for Firefox, not for the web page).  However, Windows won't do this if there is
no wifi adapter that could perform the scan.  Here, we avoid adding the note in
that case.

Differential Revision: https://phabricator.services.mozilla.com/D218588
2024-08-27 22:47:33 +00:00
David P
5a9e60b4de Bug 1900225: Part 4 - Add geo.prompt.open_system_prefs to block opening system preferences r=gstoll
Also adds this as the default for mochitests, in anticipation of the day that
the implementation is supported by the computers in automation.

Differential Revision: https://phabricator.services.mozilla.com/D216475
2024-08-27 22:47:32 +00:00
David P
cacd3ce9eb Bug 1900225: Part 3 - Implement system geolocation permission UX on Windows r=win-reviewers,gstoll
This implements PresentSystemSettings, LocationIsPermittedHint and
SystemWillPromptForPermissionHint for Windows.  The Windows APIs are not always
available -- some are currently only available in Windows 11 Canary builds
(slated for September release).  In the event that APIs are not available, this
should do nothing.  At present, this is detailed here:

https://learn.microsoft.com/en-us/windows/win32/nativewifi/wi-fi-access-location-changes

There are two issues that this is intended to handle:

1. The system will display a one-time (or so) dialog to the user when Firefox
requests geolocation but doesn't have permission.  For that case, we inform the
user that they will be asked to grant location permission again.  This system
dialog is only presented in versions of Windows that support all of the relevant
APIs.
2. We open system settings to the right page and post a cancelable modal dialog
on the tab if the user grants geolocation to the page but geolocation permission
isn't currently granted in the OS.  This case will not happen if case #1 did.
Unfortunately, we can't get information about the permission status without a
location request on old versions of Windows, so this also does nothing unless
the recent APIs are supported (in this case, AppCapability::CheckAccess).

This work is necessitated not only by the new (occasional) system dialog but
also by Microsoft's plans to block wifi scanning if geolocation isn't available.
We have used wifi scanning as part of a fallback when system geolocation isn't
available -- that approach is no longer viable here.  A user would confusingly
get repeated errors or very poor results (e.g. IP lookup results) without
information as to why, if that happened.  This is what happens in the current
Windows Canary build if system geolocation is turned off.  The fallback remains
useful on other platforms, although Linux is in flux (but it is not in the
scope of this bug).

Differential Revision: https://phabricator.services.mozilla.com/D216474
2024-08-27 22:47:32 +00:00
David P
fcb97ac813 Bug 1900225: Part 2 - Inform user of system UX issues initiated by geolocation request r=gstoll,emilio,bolsson,pbz
This patch installs the framework for various platforms to inform the user of
one of two things: 1) a coming system dialog asking for system geolocation
permission that will be presented after the Firefox doorhanger asking for
permission for the page, and 2) that we will open a system preferences window,
where the user can enable geolocation for Firefox because it is currently not
enabled.  The code that handles this has been remoted to the parent process
since implementations will not be able to operate in the content process
sandbox.

Here, it stubs the behavior so this does nothing on every platform.
In this patch series, the behavior will be implemented for Windows.

Note: The code will run the geolocation for the page if the user granted it in
Firefox, regardless of whether the user granted or canceled the system
permission.  This respects the user's instruction and provides a work-around in
the event of a bug, although it would usually either fail to get a location or
it will get a very poor one (e.g. via IP lookup).

Differential Revision: https://phabricator.services.mozilla.com/D216473
2024-08-27 22:47:32 +00:00
David Parks
4c1f57b267 Bug 1900225: Part 1 - Add dismissPrompts to Windows geolocation UI utils r=Gijs
Will be used later in this series to remove a cancel dialog that is presented
over a tab while Gecko waits for the user to grant geolocation permission in the
OS.

Differential Revision: https://phabricator.services.mozilla.com/D217015
2024-08-27 22:47:31 +00:00
Sandor Molnar
eaa5676b40 Backed out 6 changesets (bug 1900225) for causing build bustages @ GeolocationSystemWin.cpp CLOSED TREE
Backed out changeset 2c0d4dc4c52e (bug 1900225)
Backed out changeset 092cece48dcd (bug 1900225)
Backed out changeset d9debcb16932 (bug 1900225)
Backed out changeset b389e47cd649 (bug 1900225)
Backed out changeset 0bdd05d6a2f0 (bug 1900225)
Backed out changeset 35a1d931e407 (bug 1900225)
2024-08-09 02:18:32 +03:00
David Parks
05b6d7b596 Bug 1900225: Part 6 - Wait for Windows permission dialog to be dismissed before requesting geolocation r=emilio,win-reviewers,gstoll
When Windows presents the dialog asking the user to give geolocation permission
to Firefox, we need to wait for the user to make a choice before running the
geolocation request.    Previously, we were not waiting for the user's response
so most requests would timeout and fail, even if the user replied "Yes".

This dialog is only ever presented once -- the first time that Firefox asks
Windows for a wifi scan.  It does not reappear on restarts or reinstalls.   This
dedicated Yes/No system prompt is a bit more user-friendly than system settings.

This "system will prompt for permission" case could be completely avoided since
wifi scanning is not useful to us when it requires geolocation permissions as
geolocation would override it.  We would need the MLSFallback behavior to skip
scanning wifi when geolocation permission wasn't already granted, or else the
MLSFallback would present the system prompt in question, despite the user having
already denied permission.  On the other hand, we need the old scanning behavior
for this case when running versions of Windows 10 and 11 that don't have these
updates.  (The updates are set to appear in the 24H2 version of Windows 11.)
This approach avoids that kind of version special-casing.

Differential Revision: https://phabricator.services.mozilla.com/D218589
2024-08-08 22:38:03 +00:00
David Parks
40c069c7c7 Bug 1900225: Part 5 - On Windows, do not show message about wifi scan permission if no wifi is present r=win-reviewers,necko-reviewers,valentin,gstoll
We added a note to the geolocation doorhanger, warning the user when Windows is
going to repeat the request for user permission (although it asks for permission
for Firefox, not for the web page).  However, Windows won't do this if there is
no wifi adapter that could perform the scan.  Here, we avoid adding the note in
that case.

Differential Revision: https://phabricator.services.mozilla.com/D218588
2024-08-08 22:38:02 +00:00
David P
8c2783da8c Bug 1900225: Part 4 - Add geo.prompt.open_system_prefs to block opening system preferences r=gstoll
Also adds this as the default for mochitests, in anticipation of the day that
the implementation is supported by the computers in automation.

Differential Revision: https://phabricator.services.mozilla.com/D216475
2024-08-08 22:38:02 +00:00
David P
84edc8eeb2 Bug 1900225: Part 3 - Implement system geolocation permission UX on Windows r=win-reviewers,gstoll
This implements PresentSystemSettings, LocationIsPermittedHint and
SystemWillPromptForPermissionHint for Windows.  The Windows APIs are not always
available -- some are currently only available in Windows 11 Canary builds
(slated for September release).  In the event that APIs are not available, this
should do nothing.  At present, this is detailed here:

https://learn.microsoft.com/en-us/windows/win32/nativewifi/wi-fi-access-location-changes

There are two issues that this is intended to handle:

1. The system will display a one-time (or so) dialog to the user when Firefox
requests geolocation but doesn't have permission.  For that case, we inform the
user that they will be asked to grant location permission again.  This system
dialog is only presented in versions of Windows that support all of the relevant
APIs.
2. We open system settings to the right page and post a cancelable modal dialog
on the tab if the user grants geolocation to the page but geolocation permission
isn't currently granted in the OS.  This case will not happen if case #1 did.
Unfortunately, we can't get information about the permission status without a
location request on old versions of Windows, so this also does nothing unless
the recent APIs are supported (in this case, AppCapability::CheckAccess).

This work is necessitated not only by the new (occasional) system dialog but
also by Microsoft's plans to block wifi scanning if geolocation isn't available.
We have used wifi scanning as part of a fallback when system geolocation isn't
available -- that approach is no longer viable here.  A user would confusingly
get repeated errors or very poor results (e.g. IP lookup results) without
information as to why, if that happened.  This is what happens in the current
Windows Canary build if system geolocation is turned off.  The fallback remains
useful on other platforms, although Linux is in flux (but it is not in the
scope of this bug).

Differential Revision: https://phabricator.services.mozilla.com/D216474
2024-08-08 22:38:01 +00:00
David P
a62e779ecc Bug 1900225: Part 2 - Inform user of system UX issues initiated by geolocation request r=gstoll,emilio,bolsson,pbz
This patch installs the framework for various platforms to inform the user of
one of two things: 1) a coming system dialog asking for system geolocation
permission that will be presented after the Firefox doorhanger asking for
permission for the page, and 2) that we will open a system preferences window,
where the user can enable geolocation for Firefox because it is currently not
enabled.  The code that handles this has been remoted to the parent process
since implementations will not be able to operate in the content process
sandbox.

Here, it stubs the behavior so this does nothing on every platform.
In this patch series, the behavior will be implemented for Windows.

Note: The code will run the geolocation for the page if the user granted it in
Firefox, regardless of whether the user granted or canceled the system
permission.  This respects the user's instruction and provides a work-around in
the event of a bug, although it would usually either fail to get a location or
it will get a very poor one (e.g. via IP lookup).

Differential Revision: https://phabricator.services.mozilla.com/D216473
2024-08-08 22:38:01 +00:00
David Parks
485aa32c01 Bug 1900225: Part 1 - Add dismissPrompts to Windows geolocation UI utils r=Gijs
Will be used later in this series to remove a cancel dialog that is presented
over a tab while Gecko waits for the user to grant geolocation permission in the
OS.

Differential Revision: https://phabricator.services.mozilla.com/D217015
2024-08-08 22:38:00 +00:00
c8ef
7a1a9c40a3 Bug 1911403 - fix typo in source code -> r=nalexander,profiler-reviewers,jandem,masayuki,canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D218474
2024-08-07 05:35:02 +00:00
Chris Peterson
e4c83ed7e3 Bug 1803234 - Remove gpsd support. r=emilio
Firefox's gpsd support is unmaintained and disabled by default.

Differential Revision: https://phabricator.services.mozilla.com/D218418
2024-08-05 16:04:08 +00:00
Kagami Sascha Rosylight
214b1c9fc1 Bug 1905928 - Part 3: Add glean telemetry entries r=emilio,win-reviewers,handyman
Each provider has different fallback behavior:
* Windows/macOS: Fallback only on error
* Gpsd/Portal: Fallback only on timeout
* Geoclue: Fallback on both

To meet all the behaviors MLSFallback got FallbackReason/ShutdownReason and report via Glean based on that.

Differential Revision: https://phabricator.services.mozilla.com/D216085
2024-07-15 14:58:25 +00:00
Kagami Sascha Rosylight
f015bc86af Bug 1905928 - Part 1: Add MOZ_LOG for error notifier functions in dom/geolocation r=emilio
And also some log for provider selection on Linux. This gives some clue to see what's happening in geolocation when dealing with bug reports.

Differential Revision: https://phabricator.services.mozilla.com/D215906
2024-07-15 14:58:24 +00:00
stransky
18bd527479 Bug 1532281 [Linux] Don't build with dbus-glib r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D187208
2023-10-12 12:59:08 +00:00
Emilio Cobos Álvarez
25c0d10932 Bug 1624819 - Remove TaskCategory and other quantum dom remnants. r=smaug,media-playback-reviewers,credential-management-reviewers,cookie-reviewers,places-reviewers,win-reviewers,valentin,mhowell,sgalich,alwu
Sorry this is not a particularly easy patch to review. But it should be
mostly straight-forward.

I kept Document::Dispatch mostly for convenience, but could be
cleaned-up too / changed by SchedulerGroup::Dispatch. Similarly maybe
that can just be NS_DispatchToMainThread if we add an NS_IsMainThread
check there or something (to preserve shutdown semantics).

Differential Revision: https://phabricator.services.mozilla.com/D190450
2023-10-10 08:51:12 +00:00
Stanca Serban
17fb8bac17 Backed out changeset 50b448b2d902 (bug 1532281) for causing Linux build bustages. CLOSED TREE 2023-09-05 11:38:18 +03:00
stransky
60dc5e2272 Bug 1532281 [Linux] Don't build with dbus-glib r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D187208
2023-09-05 08:14:21 +00:00
Peter Van der Beken
9fba1d5220 Bug 1846277 - Remove nsGlobalWindow.h. r=dom-core,necko-reviewers,jesup,farre
Differential Revision: https://phabricator.services.mozilla.com/D184973
2023-08-02 20:41:48 +00:00
Gregory Pappas
1fc1316f1a Bug 1843230 - Remove IsWin8OrLater checks from dom/geolocation/ r=emk
Differential Revision: https://phabricator.services.mozilla.com/D183465
2023-07-15 15:01:29 +00:00
Andi-Bogdan Postelnicu
10f49d4180 Bug 1660405 - Move away from mozilla::IsNaN in favor of std::isnan. r=nbp,media-playback-reviewers,sergesanspaille,padenot
Differential Revision: https://phabricator.services.mozilla.com/D173035
2023-03-22 11:35:33 +00:00
Stanca Serban
e31a178029 Backed out 7 changesets (bug 1660405) for causing bustages on Linux x64 opt. CLOSED TREE
Backed out changeset ad1a5f59214f (bug 1660405)
Backed out changeset a39e95f0aafe (bug 1660405)
Backed out changeset 48629ee0d70d (bug 1660405)
Backed out changeset 8419b99aab60 (bug 1660405)
Backed out changeset 535cc12c8bed (bug 1660405)
Backed out changeset e27052da4927 (bug 1660405)
Backed out changeset 11b0f9cf8091 (bug 1660405)
2023-03-22 13:05:53 +02:00
Andi-Bogdan Postelnicu
a5d28acdd6 Bug 1660405 - Move away from mozilla::IsNaN in favor of std::isnan. r=nbp,media-playback-reviewers,sergesanspaille,padenot
Differential Revision: https://phabricator.services.mozilla.com/D173035
2023-03-22 09:27:56 +00:00
Ray Kraesig
b039ecca9d Bug 1816740 [2/6] - move Windows geolocation actor to subdirectory r=handyman
In the interest of keeping directory sizes down to a manageable level,
pull the new Windows utility-process geolocation code into its own
directory. (This is not yet an issue, but will become so as new
utility-process functionality is added.)

No functional changes.

Differential Revision: https://phabricator.services.mozilla.com/D169857
2023-02-22 21:05:23 +00:00
Nika Layzell
9d6bb19c23 Bug 1809753 - Part 4: Remove unnecessary GetMainThreadEventTarget, r=mccr8
This method always returned GetMainThreadSerialEventTarget(). This patch
switches all callers over to use that method instead.

We can't easily switch all calls to be calls to NS_GetMainThread(), as there is
no version of that method returning a bare nsIThread* instance.

I didn't introduce one, as we may want to add a lock around mMainThread in the
future, which would require removing nsThreadManager::GetMainThreadWeak. As
this method only returns nsISerialEventTarget, it method could remain
implemented, however, by returning a statically allocated fake event target
which forwards dispatches (and QIs to nsIThread) to the real main thread.

Differential Revision: https://phabricator.services.mozilla.com/D166608
2023-01-16 23:14:12 +00:00
Sandor Molnar
41b78439d0 Backed out 6 changesets (bug 1809752, bug 1809753) for causing perma failures in browser/components/firefoxview/tests/browser/browser_feature_callout_position.js
Backed out changeset ea05784d74c4 (bug 1809753)
Backed out changeset 7c9b20eebcc8 (bug 1809753)
Backed out changeset d0267ac2256d (bug 1809753)
Backed out changeset aa9f2971bd6f (bug 1809753)
Backed out changeset f0d9fcfaa6f8 (bug 1809752)
Backed out changeset 6d58c799cffe (bug 1809752)
2023-01-17 03:19:24 +02:00
Nika Layzell
f7772bb6ae Bug 1809753 - Part 4: Remove unnecessary GetMainThreadEventTarget, r=mccr8
This method always returned GetMainThreadSerialEventTarget(). This patch
switches all callers over to use that method instead.

We can't easily switch all calls to be calls to NS_GetMainThread(), as there is
no version of that method returning a bare nsIThread* instance.

I didn't introduce one, as we may want to add a lock around mMainThread in the
future, which would require removing nsThreadManager::GetMainThreadWeak. As
this method only returns nsISerialEventTarget, it method could remain
implemented, however, by returning a statically allocated fake event target
which forwards dispatches (and QIs to nsIThread) to the real main thread.

Differential Revision: https://phabricator.services.mozilla.com/D166608
2023-01-16 23:14:12 +00:00
Andrew McCreight
ce28c41da0 Bug 1805931, part 2 - Automated removal of uses of ROOT and UNROOT CC macros. r=smaug
As of the prior patch, these are no longer needed. I removed
these with a script, then ran clang-format on the files, then
manually reverted a few unrelated changed from the formatter.

Differential Revision: https://phabricator.services.mozilla.com/D164829
2022-12-15 19:45:01 +00:00
Olli Pettay
93acdfad59 Bug 1777574, automate CC zone handling, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D155084
2022-09-07 11:22:51 +00:00
Olivia Hall
fd773b706c Bug 1765835 - Adjustments to Location Provider r=geckoview-reviewers,owlish,m_kato,smaug
In Geolocation.cpp, the call to start the geolocation device always
had HighAccuracyRequested() set to false because no callbacks were
listening. Changed to set the callbacks first, before listening.

In Android, this patch stops the use of checking for last known location
on high accuracy location requests, adjusts comparing locations,
and also streamlines the criteria for picking the best location provider.

Differential Revision: https://phabricator.services.mozilla.com/D153226
2022-08-31 18:50:16 +00:00
serge-sans-paille
2f3f06ad63 Bug 1772747 - Cleanup dom/geolocation, dom/system, dom/battery and dom/canvas includes r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D148351
2022-06-06 08:13:34 +00:00
Kagami Sascha Rosylight
6abe98f452 Bug 1769290 - Part 8: Apply mozilla-js-handle-rooted-typedef against dom/canvas,crypto,fetch,gamepad,geolocation,indexedDB,ipc r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D148281
2022-06-05 20:54:59 +00:00
serge-sans-paille
d1fbd5e212 Bug 1771948 - Cleanup dom/canvas dom/geolocation and some dom/media includes r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D147769
2022-06-05 09:23:00 +00:00
Maciej S. Szmigiero
41cb3fd7d8 Bug 1063572 - Geoclue2 geolocation provider. r=emilio
Add a Geoclue (version 2) geolocation provider.

This way Firefox can make use of multiple location sources present in the
system, from GNSS provided by a cellular modem or the current network to
location based on visible WiFi networks and 3G tower data, all while
sharing them with other applications.

This is a pure D-Bus-based implementation using a proper state machine, it
does not require any additional dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D145838
2022-05-16 08:24:09 +00:00
Butkovits Atila
f3f0323cc9 Backed out changeset 39b20dac431b (bug 1063572) for causing bustages at GeoclueLocationProvider. CLOSED TREE 2022-05-15 15:28:12 +03:00
Maciej S. Szmigiero
bff064393f Bug 1063572 - Geoclue2 geolocation provider. r=emilio
Add a Geoclue (version 2) geolocation provider.

This way Firefox can make use of multiple location sources present in the
system, from GNSS provided by a cellular modem or the current network to
location based on visible WiFi networks and 3G tower data, all while
sharing them with other applications.

This is a pure D-Bus-based implementation using a proper state machine, it
does not require any additional dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D145838
2022-05-15 12:09:14 +00:00
Kagami Sascha Rosylight
b4d5c4d3b3 Bug 1768189 - Part 12: Apply modernize-concat-nested-namespaces to dom/gamepad/windows/WindowsGamepad.cpp ... r=andi
Depends on D145745

Differential Revision: https://phabricator.services.mozilla.com/D145746
2022-05-09 20:41:07 +00:00
Jan Horak
705f8983d6 Bug 1759840 Add support for location portal; r=emilio
The Firefox in flatpak has no access to the wireless networks to determine
accurate geolocation. We have to use the location portal instead which
provides the current location based on the nearby wireless accesspoints
or other methods.

Differential Revision: https://phabricator.services.mozilla.com/D142329
2022-04-19 11:42:38 +00:00
Molnar Sandor
509c3805f9 Backed out changeset 1529955a0df7 (bug 1759840) for causing build bustage in geolocation/Geolocation CLOSED TREE 2022-04-19 12:41:47 +03:00
Jan Horak
f674f55333 Bug 1759840 Add support for location portal; r=emilio
The Firefox in flatpak has no access to the wireless networks to determine
accurate geolocation. We have to use the location portal instead which
provides the current location based on the nearby wireless accesspoints
or other methods.

Differential Revision: https://phabricator.services.mozilla.com/D142329
2022-04-19 09:02:55 +00:00
Emilio Cobos Álvarez
48c147fe43 Bug 1762625 - Remove unused principal argument from nsGeolocationService. r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D142710
2022-04-01 19:14:53 +00:00
Nika Layzell
05dc5e0d76 Bug 1754037 - Part 3c: Automatically update all ParamTraits implementations, r=ipc-reviewers,media-playback-reviewers,bryce,mccr8
Automatically generated rewrites of all ParamTraits and IPDLParamTraits
implementations in-tree to use IPC::Message{Reader,Writer}.

Differential Revision: https://phabricator.services.mozilla.com/D140004
2022-03-04 15:39:41 +00:00
Marcos Cáceres
a916f856db Bug 1735097 - Geolocation: use EpochTimeStamp instead of DOMTimeStamp r=saschanaz,peterv
Just a refactor, based on: https://github.com/w3c/geolocation-api/pull/104

Differential Revision: https://phabricator.services.mozilla.com/D128047
2021-11-17 04:01:02 +00:00
Kagami Sascha Rosylight
d71395370d Bug 1723050 - Part 13: Replace typedef by using in dom/geolocation/ r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D121311
2021-08-09 13:37:27 +00:00
Marcos Cáceres
fc57eb2e71 Bug 1715482 - Geolocation should gracefully handle Documents that are not fully active r=saschanaz
Spec change https://github.com/w3c/geolocation-api/pull/97

Differential Revision: https://phabricator.services.mozilla.com/D117273
2021-08-03 00:16:45 +00:00
Marcos Cáceres
f336e71f96 Bug 1722820 - watchPosition() should return 0 on error to align with other browsers r=saschanaz,annevk
Refactor

Differential Revision: https://phabricator.services.mozilla.com/D121152
2021-07-30 01:48:12 +00:00