Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closes #3423 Add preconnect tag for CDN URLs #3463

Merged
merged 11 commits into from Feb 26, 2021

Conversation

iCaspar
Copy link
Contributor

@iCaspar iCaspar commented Jan 5, 2021

Closes #3423

  • Add add_precnnect_cdn() method to wp_resource_hints filter.
  • Add integration tests for new method.

@iCaspar iCaspar marked this pull request as draft January 5, 2021 15:03
@iCaspar iCaspar self-assigned this Jan 5, 2021
@iCaspar
Copy link
Contributor Author

iCaspar commented Jan 6, 2021

[WIP] @see note on #3423 -- need to re-think how to add more than 1 instance of the preconnect tag for a domain -- wp_resource_hint() allows only 1.

@Tabrisrp Tabrisrp added module: CDN type: enhancement Improvements that slightly enhance existing functionality and are fast to implement labels Feb 4, 2021
@Tabrisrp Tabrisrp added this to the 3.8.6 milestone Feb 10, 2021
@iCaspar iCaspar marked this pull request as ready for review February 22, 2021 21:04
@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 22, 2021

@Tabrisrp @GeekPress I've gone with basically what Jonathan put here as option 2, namely the function we will run on the wp_resource_hints filter will return the CDN domains with and without the crossorigin="anonymous", such that the non-crossorigin will be printed as things stand right now, and both will be printed if ever core adopts Jo's patch.

@iCaspar iCaspar changed the title [WIP] Add preconnect tag for CDNs Add preconnect tag for CDNs Feb 22, 2021
@Tabrisrp Tabrisrp requested a review from a team February 23, 2021 13:25
@Mai-Saad Mai-Saad self-requested a review February 24, 2021 07:16
@Mai-Saad
Copy link

Mai-Saad commented Feb 24, 2021

@iCaspar while minify CSS enabled, is this fine?
1- When CDN is domain.com i.e example.org then the href for preconnect will be over HTTP not HTTPS i.e
<link href='http://example.org' crossorigin='anonymous' rel='preconnect' /> while the css file itself is HTTPS
2- When CDN is https://example.org , there is no crossorigin for preconnect
<link href='https://example.org' rel='preconnect' />

@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 24, 2021

@Tabrisrp On @Mai-Saad question 1 above, can you confirm whether that is correct, or should we always force a CDN url link to use https? As is, it uses whatever the customer has entered into the list of CDNs in the dashboard.

On 2, that is unfortunately the expected, though not ideal, behavior for now. (see above)

@Tabrisrp
Copy link
Contributor

Tabrisrp commented Feb 24, 2021

@iCaspar What do you think of this approach:

  • Use the URL with the protocol if it's defined in the CDN value (http(s)://cdn.example.org)
  • Use a protocol-relative URL if the protocol is not defined in the value (//cdn.example.org)

@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 24, 2021

@Tabrisrp Implemented your suggestion above. I think the new testcases should cover things, but maybe there are others.

@Tabrisrp Tabrisrp changed the title Add preconnect tag for CDNs Closes #3423 Add preconnect tag for CDNs Feb 24, 2021
@Tabrisrp Tabrisrp changed the title Closes #3423 Add preconnect tag for CDNs Closes #3423 Add preconnect tag for CDN URLs Feb 24, 2021
@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 24, 2021

@Mai-Saad @wp-media/qa - Revised now to use either the specified schema or simply // if no schema is provided by the user.

@Mai-Saad
Copy link

Mai-Saad commented Feb 25, 2021

@iCaspar @Tabrisrp
1- Shall we have any kind of validation on CDN that includes at least a single dot and not empty? ( currently, if CDN is test/path then we will use //test as href)
2- Using CDN name as /test/path will result in applying this to all files i.e file href will be: https:///test/path/wp-content/cache/busting/1/gtm-5baa953518f36f664ef5d618f4d839a2.js also no dns-prefetch nor preconnect .. I think it shouldn't be applied to files, should it?
3- Currently if the CDN name is http://test.com then
dns-prefetch is <link rel='dns-prefetch' href='//test.me' />
while preconnect is : <link href='http://test.me' rel='preconnect' /> and same for files... so is this fine or shall dns-prefetch be as same as preconnect here?
4- Currently, changing the CDN name will delete minified/combined files and these files won't come back till clear cache or deactivate the plugin, in this case, a new minified file shall be auto-created, right? (same behavior on the trunk, I guess we can open a separate issue for this)

@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 25, 2021

On 1 and 2: The preconnect is for a domain, not a file, as we are only concerned about connecting to the server, not accessing anything specific. So, the expected behavior should be to ignore any CDN entry that a is single file or directory, and it should remove any path after the domain host part of the URL.
On 3: The dns-prefetch links are generated from WordPress, not by us, a different method related to CDN, and will always print the //test.me version. I think it will be fine to use the customer's scheme, http(s), if they have specified it for any reason, as prefetch and preconnect are different things. In prefetch only the DNS is resolved, but in preconnect, an actual connection with the server is established, so having the specific schema to make connect could be helpful if the customer provides it.
On 4: Since that is already the behavior, we should handle it separately as another issue, yes. If you would go ahead and open that, would be awesome! Thanks.

@Tabrisrp
Copy link
Contributor

On 4) When changing the CDN cname value, everything is deleted: cache files & minify/combine files, so there is nothing to do. The new cache & minify files will be generated on the next visit (or preload).

@Mai-Saad
Copy link

Mai-Saad commented Feb 25, 2021

@Tabrisrp on 4:
for minify css -> cached files in min are autogenerated currently without a new visit after changing CDN name. While for minify js -> cached files in min aren't autogenerated even with a hard refresh of the web page.
Scenario1 => Reproduce steps:
1- nothing enabled in file optimization + CDN enabled
2- clear cache
3- enable minify js
4- visit the home page -> check min folder in cache "js files added in 1 folder"
5- change CDN and save -> here the js files in min/1 are deleted
6- hard refresh the home page
7- Check cache/min/1 -> js files not added

Scenario 2 => steps:
1- minify js enabled + CDN not enabled
2- visit the home page and check min/1 folder "js files are there"
3- enable CDN and check min/1 folder "js files removed"
4- visit the home page and check min/1 folder " js files still not added"

@Tabrisrp
Copy link
Contributor

Probably this bug: #2973

@Mai-Saad
Copy link

Mai-Saad commented Feb 25, 2021

Probably this bug: #2973

@Tabrisrp I think it`s related but not sure if they are the same thing as even if minify js was enabled and working fine before enable/edit CDN, js files won't be regenerated till clear cache and visit the URL again

@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 25, 2021

In further conversation with @Mai-Saad, it turns out we were not eliminating a CDN entry like test/tests (though we were for /test/tests). @Tabrisrp, I've added a regex to skip those here. We have the same issue in the add_dns_prefetch_cdn() and probably get_cdn_hosts(). The latest change solves for the preconnect, since that's what's new here. Not catching it in prefetch and possibly other places can be a separate issue, not to hold this up getting into 3.8.6.

Copy link

@Mai-Saad Mai-Saad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CDN PR all handled now except for
1- ignore test , .com
2- add preconnect for //test.com
Note: we don't add crossorigin anymore also it was there with CDN name example.org

@Mai-Saad Mai-Saad added the needs: documentation Issues which need to create or update a documentation label Feb 26, 2021
@iCaspar
Copy link
Contributor Author

iCaspar commented Feb 26, 2021

@wp-media/qa Per conversation with @piotrbak and @Tabrisrp we're going to go with this as is and start a new issue to validate CDN values when the field gets saved in order to prevent invalid domains/hosts from being in the picture on this and in several other places.

@iCaspar iCaspar merged commit 46bb9d5 into develop Feb 26, 2021
@iCaspar iCaspar deleted the feature/add-cdn-preconnect-tag branch February 26, 2021 18:42
crystinutzaa added a commit that referenced this pull request Mar 4, 2021
* Update wording in first activation notice on the dashboard (PR #3583)

Add automatically to match the description on the website. Also without it it sounds like WP Rocket would not know how to deal with the remaining 20%.

* Fixes #3590 Imagify icon not shown in Chrome (PR #3591)

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Fixes #3498 Turn off "Delay JS" option when Safe Mode is activated (PR #3574)

* Fixes #3454 Delay JS is not working if scrolling the page with the mouse wheel (PR #3573)

* Closes #2839 Remove Age Verify plugin compatibility files (PR #3585)

* Closes #1744 Show warning when PageSpeed Ninja is active (PR #3580)

* Fixes #3238 Remove empty values in $purge_urls array (PR #3579)

* Fixes #2777 Update text formatting in Rocket Analytics modal (#3598)

* Closes #3113 Stop removing empty lines in the .htaccess (PR #3599)

* Fixes #3605 Replace deprecated jQuery methods (PR #3606)

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* Closes #3564 Update minified filename structure to use query string instead of version in filename (PR #3595)

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: Caspar Green <cg@caspar.green>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>
iCaspar added a commit that referenced this pull request Mar 23, 2021
* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`
iCaspar added a commit that referenced this pull request Mar 23, 2021
* Update wording in first activation notice on the dashboard (PR #3583)

Add automatically to match the description on the website. Also without it it sounds like WP Rocket would not know how to deal with the remaining 20%.

* Fixes #3590 Imagify icon not shown in Chrome (PR #3591)

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Fixes #3498 Turn off "Delay JS" option when Safe Mode is activated (PR #3574)

* Fixes #3454 Delay JS is not working if scrolling the page with the mouse wheel (PR #3573)

* Closes #2839 Remove Age Verify plugin compatibility files (PR #3585)

* Closes #1744 Show warning when PageSpeed Ninja is active (PR #3580)

* Fixes #3238 Remove empty values in $purge_urls array (PR #3579)

* Fixes #2777 Update text formatting in Rocket Analytics modal (#3598)

* Closes #3113 Stop removing empty lines in the .htaccess (PR #3599)

* Fixes #3605 Replace deprecated jQuery methods (PR #3606)

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* Closes #3564 Update minified filename structure to use query string instead of version in filename (PR #3595)

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: Caspar Green <cg@caspar.green>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>
iCaspar added a commit that referenced this pull request Mar 23, 2021
* Update wording in first activation notice on the dashboard (PR #3583)

Add automatically to match the description on the website. Also without it it sounds like WP Rocket would not know how to deal with the remaining 20%.

* Fixes #3590 Imagify icon not shown in Chrome (PR #3591)

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Fixes #3498 Turn off "Delay JS" option when Safe Mode is activated (PR #3574)

* Fixes #3454 Delay JS is not working if scrolling the page with the mouse wheel (PR #3573)

* Closes #2839 Remove Age Verify plugin compatibility files (PR #3585)

* Closes #1744 Show warning when PageSpeed Ninja is active (PR #3580)

* Fixes #3238 Remove empty values in $purge_urls array (PR #3579)

* Fixes #2777 Update text formatting in Rocket Analytics modal (#3598)

* Closes #3113 Stop removing empty lines in the .htaccess (PR #3599)

* Fixes #3605 Replace deprecated jQuery methods (PR #3606)

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* Closes #3564 Update minified filename structure to use query string instead of version in filename (PR #3595)

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: Caspar Green <cg@caspar.green>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>
iCaspar added a commit that referenced this pull request Mar 26, 2021
* Add Unit test Warmup/APIClient

* Add unit tests for Frontend APIClient

* Update comments with @uses for AbstractAPI coverage

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

* Exclude googleoptimize.com from minify/combine JS (PR #3609)

* Exclude www.idxhome.com from combine/defer JS (#3619)

* Exclude wcpv_registration_local from combine JS (PR #3634)

* Add additional inline JS exclusions from combine JS (PR #3638)

* Closes #2883 UI improvement for Never Cache URL placeholder (PR #3631)

* Bump elliptic from 6.5.3 to 6.5.4 (PR #3650)

Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](indutny/elliptic@v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixes #3528 Add AMP query string to cached query strings when activating the plugin (PR #3613)

* Tiered Pricing Table for WooCommerce nonce action exclusion (PR #3652)

* Closes #2812 Add new filter to rewrite srcset to the CDN (PR #3648)

* Fixes #2041 CDN: prevent incorrect URL on srcset with duplicated relative URLS (PR #3615)

* Fixes #3114 Apply font-display:swap to CPCSS (PR #3633)

* Fixes #3073 Remove content from attributes list for WebP conversion (PR #3607)

* Fixes #3394 PHP notice in Update_Subscriber::disable_auto_updates() (PR #3632)

* update version to 3.8.7

* v3.8.6 (#3623)

* Update wording in first activation notice on the dashboard (PR #3583)

Add automatically to match the description on the website. Also without it it sounds like WP Rocket would not know how to deal with the remaining 20%.

* Fixes #3590 Imagify icon not shown in Chrome (PR #3591)

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Fixes #3498 Turn off "Delay JS" option when Safe Mode is activated (PR #3574)

* Fixes #3454 Delay JS is not working if scrolling the page with the mouse wheel (PR #3573)

* Closes #2839 Remove Age Verify plugin compatibility files (PR #3585)

* Closes #1744 Show warning when PageSpeed Ninja is active (PR #3580)

* Fixes #3238 Remove empty values in $purge_urls array (PR #3579)

* Fixes #2777 Update text formatting in Rocket Analytics modal (#3598)

* Closes #3113 Stop removing empty lines in the .htaccess (PR #3599)

* Fixes #3605 Replace deprecated jQuery methods (PR #3606)

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* Closes #3564 Update minified filename structure to use query string instead of version in filename (PR #3595)

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: Caspar Green <cg@caspar.green>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>

* Fixes #3658 Force the PSR Container dependency to v1.0.0 (PR #3660)

* Add new inline JS exclusion from combine JS (PR #3683)

* Ignore Pinterest ads "pp" query string when serving the cache (PR #3682)

* Fix double space in renewal banner copy (PR #3674)

* Exclude reload_attached_coupons from combine JS (PR #3671)

* Exclude arf_footer_cl_logic_call from combine JS (PR #3665)

* Fix rest API tests fixtures (PR #3688)

* add details attribute to error data
* remove details attribute from error data and use assertArraySubset to make sure that needed attributes are there
* adjust the GH workflow to use WP 5.7
* adjust the GH workflow to use latest WP version always for non legacy

* Exclude nonce actions for Discount Rules and Dynamic Pricing for WooCommerce (PR #3679)

* update fixtures after typo fix

* Closes #3230 Add PHP 8 to our CI matrix (PR #3656)

* add PHP 8 to our CI matrix
* update composer configuration
* update phpstan-wp dependency version
* update phpunit package version
* update workflows
* only bailout if the provided structure is not empty
* update return typehint for setUp() and setUpBeforeClass()
* use Mockery for mocks instead of phpunit mocks
* remove separate process

* update version to 3.9-alpha1

* v3.8.6 (#3623)

* Update wording in first activation notice on the dashboard (PR #3583)

Add automatically to match the description on the website. Also without it it sounds like WP Rocket would not know how to deal with the remaining 20%.

* Fixes #3590 Imagify icon not shown in Chrome (PR #3591)

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in de_DE

translation completed updated for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Fixes #3498 Turn off "Delay JS" option when Safe Mode is activated (PR #3574)

* Fixes #3454 Delay JS is not working if scrolling the page with the mouse wheel (PR #3573)

* Closes #2839 Remove Age Verify plugin compatibility files (PR #3585)

* Closes #1744 Show warning when PageSpeed Ninja is active (PR #3580)

* Fixes #3238 Remove empty values in $purge_urls array (PR #3579)

* Fixes #2777 Update text formatting in Rocket Analytics modal (#3598)

* Closes #3113 Stop removing empty lines in the .htaccess (PR #3599)

* Fixes #3605 Replace deprecated jQuery methods (PR #3606)

* Translate /languages/rocket.pot in ru_RU

translation completed for the source file '/languages/rocket.pot'
on the 'ru_RU' language.

* Closes #3564 Update minified filename structure to use query string instead of version in filename (PR #3595)

* Fixes #3083 Update delay JS RegEx to ignore space inside script tags (PR #3587)

* Updating AWX webhook url

* Fixes #3576 Guard rocket_defer_inline_exclusions filter return when used by 3rd parties (PR #3582)

* Fixes #2970 Add new post-type exclusion "cms_block" from CPCSS generation (PR #3550)

* Closes #3423 Add preconnect tag for CDN URLs (#3463)

* Add add_preconnect_cdn() method

* Add integration test draft and notes.

* Implement preconnect for non-crossorigin cdn-urls

* Add fixture, adjust integration test

* Revise forcorrect cdn urls, use crossorigin second

* Run phpcbf

* Update CDN preconnect testcases

* Use agnostic scheme when not provided

* Rerun phpcs

* Clean dns-prefetch out of testcases :)

* Add testcase/solution for `test/tests`

* Closes #3539 Combine @import rules into the minified CSS files (PR #3603)

* update plugin version

* update pot file with changed strings

* Translate /languages/rocket.pot in de_DE

translation completed for the source file '/languages/rocket.pot'
on the 'de_DE' language.

* Translate /languages/rocket.pot in fr_FR

translation completed for the source file '/languages/rocket.pot'
on the 'fr_FR' language.

* Fix #3625 Contact form 7 stop working if dependency scripts are deferred after latest update (PR #3629)

* exclude files from being deferred
* add hooks script to the exclude list

* update translations

* Translate /languages/rocket.pot in tr_TR

translation completed for the source file '/languages/rocket.pot'
on the 'tr_TR' language.

Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: Caspar Green <cg@caspar.green>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>

* Add integration test for Warmup\APIClient

* Adjust Warmup\APIClient fixture

* Adjust Warmup\APIClient unit test w/new fixture

* Add integration test Frontend\APIClient

* Modify Frontend\APIClient fixture for new test.

* Fix warmup APIClient fixture WPError case

* Add remaining testcases for Frontend APIClient

* Use actual returmed error codes in APIClients

* Refactor check_response()

* Refactor Unit tests for new Fixture

* Clean up fixture

* Refactor Warmup API Unit test for check_response()

* Restore odd removals

* Don’t alias Brain\Monkey\Functions

Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Co-authored-by: Albert Cintas <69654544+AlbertCintas@users.noreply.github.com>
Co-authored-by: Ahmed Saed <eng.ahmeds3ed@gmail.com>
Co-authored-by: Sandy Figueroa <sandyfigueroa@users.noreply.github.com>
Co-authored-by: Rémy Perona <remperona@gmail.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Adame Dahmani <hello@adame.io>
Co-authored-by: Jorge <jorgemartinezmenendez00@gmail.com>
Co-authored-by: Scott Hartley <45110039+ScottTravisHartley@users.noreply.github.com>
Co-authored-by: Natalia Drause <60236665+NataliaDrause@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rémy Perona <remy@wp-rocket.me>
Co-authored-by: Presskopp <cherrmann@gmx.de>
Co-authored-by: Jonathan Buttigieg <jonathan@wp-media.me>
Co-authored-by: Soponar Cristina <crystinutzaa@gmail.com>
Co-authored-by: Cristina Soponar <45258937+crystinutzaa@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module: CDN needs: documentation Issues which need to create or update a documentation type: enhancement Improvements that slightly enhance existing functionality and are fast to implement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add preconnect tag for CDN CNAME
3 participants