Instead of having each test go incur the overhead of having to go
through the actual user flow to register a security key, we can generate
the WebAuthn credentials on the server side and adds it to the virtual
authenticator.
This was missed when adding category badges in #32109. Category title
badges are now added when the site setting for `Desktop category page
style` or `Mobile category page style` is set to either:
- Boxes with Subcategories
- Boxes with Featured Topics
This enables on-the-fly brotli compression at level 4 for all responses
which we currently gzip. This level should provide slightly improved
file sizes when compared to gzip, as well as slightly faster processing
times. This is the [level which Cloudflare
use](https://blog.cloudflare.com/results-experimenting-brotli/) for
dynamic responses.
When compared to our existing gzip level-5 configuration, our own
experiments confirm that it provides slightly faster compression, with
slightly smaller file sizes.
For static assets which are cached by CDNs/browsers, we use brotli level
6 for an even better compression ratio.
The problem is mainly that we also have a css animation made from js
which was setting a different width for the panel, so the `style.width =
"auto"` was not overriding this part. This animation happens in a parent
component after `didResizeContainer` is called, so it could be fine most
of the times, but the simpler change is to ensure, panel resize, or
window resize ends up in the same codepath so whatever the developer
decides to do in `didResizeContainer` hook will be applied in both
cases.
No test as it's fairly hard to test and would require a complex system
spec setup.
It avoids this situation where the side panel is larger than viewport
after window resize:

This commit applies a similar optimisation as
d0d755ad8c478db45e3298df9de1cdabe59d9592.
Basically, the `full_page_login` site setting is going to be dropped
this week and these extra system tests we are running due to this site
setting is accounting for a significant percentage of the overall
runtime for core system tests.
### Reviewer notes
The PR to remove the `full_page_login` site setting is at
https://github.com/discourse/discourse/pull/32189 and scheduled to be
merged by us on 29th April.
The `full_page_login` site setting is going to be removed soon so I am
dropping the social authentication system tests for when
`SiteSetting.full_page_login = false`.
This cuts the runtime for `spec/system/social_authentication_spec.rb` by
half from around 4 minutes to 2 minutes on my local machine.
This particular system test is taking a long time (~20 seconds) on CI
because it is doing many full page loads. This commit refactors the test
to be more efficient about the number of full page loads triggered by
the tests thus reducing the runtime by half.
Co-authored-by: Krzysztof Kotlarek <kotlarek.krzysztof@gmail.com>
The H1 doesn't work here because the same text appears on all top level
discovery pages and it doesn't describe the page content or purpose.
So for example, navigating from heading to heading with a screen
reader... on every discovery page you'd end up hitting "welcome back,
username" before jumping to the next heading level (which are topic
titles) — this is undesirable.
The H1 was adding bold and margin, so I've added that to the class.
There are no visual changes.
Without a site logo we render a the site name in the header as text,
this is a nice fallback!

...but it's marked up as an H1, and having the same H1 on every page
means it's not a meaningful page heading and can make headings fairly
annoying to navigate using screenreaders and other assistive
technologies
This converts it to a div and ensures that it retains the bold styling
previously applied by the heading tag. Font size is already handled by
the ID, so there are no visual changes as a result.
Adds support to creating an "autolink" by explicitly typing the
`<https://link>`.
Changes linkification while typing to only act when `markup` is
`linkify` (so, not a `[normal](link)` nor an `<autolink>`), and adds a
test to make sure `<http://auto.links>` won't convert to a `linkify`
while typing.
Avoids linkifying within code when pasting `text/html`.
Removes the `markup: "linkify"` when pasting a URL over a selection, as
that will create a `[normal](link)` instead.
Fixes the case on Firefox when you're typing an `example.com` URL
mid-paragraph and it stopped the link mark before the last letter,
leaving an un-linked dangling `m`.
Also uses a `linkify.test()` call before `linkify.match()` for "best
speed" as per
https://markdown-it.github.io/linkify-it/doc/#LinkifyIt.prototype.match.
### What is happening?
For some reason, not on local, and not on PRs, but in the build
pipeline, the precision of the timestamp changes during a database
roundtrip, causing the build to fail.
This fixes the build.
When a user is silenced they can, given they have the permissions, enter anonymous mode and keep posting, essentially bypassing the silence that way.
This change delegates the silenced_till attribute to the main user record if the user is anonymous.
Currently, trust level is calculated with this formula:
`[granted_trust_level, previous_trust_level,
SiteSetting.default_trust_level].max`
When a user is invited, SiteSetting.default_invitee_trust_level should
be respected in that calculation.