Skip to content

Closes #7391: FileNotFound is preloaded for some page templates#56

Merged
jeawhanlee merged 1 commit into
feature/3.19-beaconsfrom
7391-file-not-found-preloaded-for-some-page-templates
May 29, 2025
Merged

Closes #7391: FileNotFound is preloaded for some page templates#56
jeawhanlee merged 1 commit into
feature/3.19-beaconsfrom
7391-file-not-found-preloaded-for-some-page-templates

Conversation

@jeawhanlee
Copy link
Copy Markdown
Contributor

Description

Fixes wp-media/wp-rocket#7391
Fixes the issue when plugin preloads string 'file not found' on page.

Type of change

  • New feature (non-breaking change which adds functionality).
  • Bug fix (non-breaking change which fixes an issue).

Detailed scenario

What was tested

Check that with specific templates, file not found is added to the db and then preloaded.

How to test

Technical description

Documentation

Updated the logic to only push new font variations when there is a valid matching url:

if (matchingUrl) {
// Only create new object if a valid matching url exist in network loaded fonts.
if (!allFonts[fontFamily]) {
allFonts[fontFamily] = {
type: 'hosted',
variations: [],
elementCount: {
aboveFold: aboveElements.length,
belowFold: belowElements.length,
total: elements.length
},
urlCount: {
aboveFold: new Set(),
belowFold: new Set()
}
};
}

This eliminates the need to add a default value assignment directly in the object which in this case is File not found

New dependencies

N/A

Risks

N/A

Mandatory Checklist

Code validation

  • I validated all the Acceptance Criteria. If possible, provide screenshots or videos.
  • I triggered all changed lines of code at least once without new errors/warnings/notices.
  • I implemented built-in tests to cover the new/changed code.

Code style

  • I wrote a self-explanatory code about what it does.
  • I protected entry points against unexpected inputs.
  • I did not introduce unnecessary complexity.
  • Output messages (errors, notices, logs) are explicit enough for users to understand the issue and are actionnable.

Unticked items justification

Not applicable to the changes in this PR

Additional Checks

  • In the case of complex code, I wrote comments to explain it.
  • When possible, I prepared ways to observe the implemented system (logs, data, etc.).
  • I added error handling logic when using functions that could throw errors (HTTP/API request, filesystem, etc.)

@jeawhanlee jeawhanlee self-assigned this May 28, 2025
@codacy-production
Copy link
Copy Markdown

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.04% (target: -1.00%) 100.00% (target: 50.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (65069d9) 1624 1298 79.93%
Head commit (834d8d0) 1627 (+3) 1301 (+3) 79.96% (+0.04%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#56) 37 37 100.00%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

@jeawhanlee jeawhanlee requested review from a team and remyperona May 28, 2025 11:08
jeawhanlee added a commit to wp-media/wp-rocket that referenced this pull request May 28, 2025
@jeawhanlee jeawhanlee merged commit cd9d4c6 into feature/3.19-beacons May 29, 2025
6 checks passed
@jeawhanlee jeawhanlee deleted the 7391-file-not-found-preloaded-for-some-page-templates branch May 29, 2025 06:31
jeawhanlee added a commit that referenced this pull request Jun 2, 2025
* Added preload fonts beacon

* Updated beacon manager and entry point

* Updated test

* Added test

* Remove comment

* Updated docblock

* Updated doc block

* Updated property

* Updated logger method

* Use updated method

* Added more tests

* Added more tests

* Updated entry point

* Added yet more test

* Fixed codacy critical issues

* Fixed codacy critical issues

* Try to fix medium codacy issue

* Added logic to return font urls

* Updated test

* Added preconnect beacon

* Added test

* Added doc block

* Updated test

* Update to use set to remove duplicate entries

* Added test

* Wait for fonts to be loaded

* Updated test

* Updated conditional to check if stylesheet is internal

* Added test

* Make font extensions exclusions dynamic

* Merge pull request #48 from wp-media/enhancement/47-exclusions-part

refactor system fonts to be generic exclusions list

* Closes #7289: 3.19 Preconnect to external domains - exclusions filter (#52)

* Updated exclusions logic to be compatible with array of strings pattern

* Updated tests

* Updated test data

* Store the url origin in the final result instead of hostname (PR #55)

* Fix: Failed to read the 'cssRules' (#51)

* Implement inlineGoogleFonts method to fetch and inline Google Fonts CSS, avoiding CORS issues

* Add tests for inlineGoogleFonts method to validate fetching and inlining of Google Fonts

* Refactor font handling: Implement externalStylesheetsDoc method to fetch and parse external font stylesheets, and update _initializeExternalFontSheets to manage parsed results.

* remove external urls from stylesheets

* fix test

* add Adame's suggestion and it is working

---------

Co-authored-by: WordPressFan <ahmed@wp-media.me>
Co-authored-by: Michael Lee <michaelleemichaellee408@gmail.com>

* Add font family to allFonts object and push new variation only if matching url is valid (#56)

---------

Co-authored-by: Michael Lee <michaelleemichaellee408@gmail.com>
Co-authored-by: Michael Lee <38788055+jeawhanlee@users.noreply.github.com>
Co-authored-by: Gaël Robin <robin.gael@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3.19 FileNotFound is preloaded for some page templates

2 participants