This is more of a workaround than a bug fix.
Some JS implementations are less "aggressive" about
canonicalizing things like America/Montreal to America/Toronto.
We instead use offset checks.
These tests are false positives in some cases, since
browser behavior varies.
We will kill off the function soon, but for now we
still maintain 100% coverage (albeit indirectly).
I also split up a test into two smaller ones.
We add a variable `browser_time_zone` to track the same
separately from `display_time_zone`.
This is used to check whether the user profile time zone matches
the browser's time zone, as a part of #16957, and will later be
used in #16958.
We also add methods to check whether a given timezone is the same
as that of the browser, making use of the browser's own
canonicalization process.
Tests are added to ensure that the time zone comparison
logic works for timezones observing DST.
Fixes part of #16957