DRAFT: Closes #7063: Google font - Frontend part #7091
+155
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes #7063
This code allows users to use locally stored Google Fonts on the front end instead of the online ones. It rewrites the Google Fonts paths into the local ones, keeping the original structure as data-wpr-hosted-gf-parameters argument. It also handles V1 and V2 separately, saving and printing two separate CSS files if both are inside the source at the same time. The feature adds its markup just after the OCI feature preloads and prints data correctly when used on the multisite.
Type of change
Detailed scenario
N/A
Technical description
Documentation
The code introduces a new namespace
Media\Fonts
with four classes:Subscriber
,Controller
,Context
, andServiceProvider
. TheSubscriber
class uses therocket_buffer
filter to add the markup to the page. TheController
class rewrites the CSS to the page and checks if the feature is available. TheContext
class implementsContextInterface
to determine if the feature is allowed. TheServiceProvider
class registers the created classes.New dependencies
No new dependencies are required for this change.
Risks
N/A
Mandatory Checklist
Code validation
Code style