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

Guard our code when the rocket_defer_inline_exclusions filter used by 3rd parties #3576

Closed
4 tasks
NataliaDrause opened this issue Feb 9, 2021 · 1 comment · Fixed by #3582
Closed
4 tasks
Assignees
Labels
3rd party compatibility Issues related to 3rd party compatibility like theme, plugin or hosting effort: [XS] < 1 day of estimated development time module: defer JS severity: moderate Feature isn't working as expected but has work around to get same value type: bug Indicates an unexpected problem or unintended behavior
Milestone

Comments

@NataliaDrause
Copy link
Contributor

NataliaDrause commented Feb 9, 2021

Before submitting an issue please check that you’ve completed the following steps:

  • Made sure you’re on the latest version -yes
  • Used the search feature to ensure that the bug hasn’t been reported before - yes

Describe the bug
3rd party plugins use our filter rocket_defer_inline_exclusions and pass a string instead of an array. This leads to a PHP warning in the debug.log:
PHP Warning: Invalid argument supplied for foreach() in /home4/nataliad/testsite.nataliadrause.com/wp-content/plugins/wp-rocket/inc/Engine/Optimization/DeferJS/DeferJS.php on line 140

Such errors were caused by compatibility codes in ShortPixel AI and Smart Slider 3 plugins so far.

To Reproduce
Steps to reproduce the behavior:

  1. Install and activate ShortPixel AI plugin https://wordpress.org/plugins/shortpixel-adaptive-images/
  2. Enable Load JavaScript Deferred option (with jQuery not being excluded from deferring)
  3. Clear and preload cache.
  4. The following error will be logged in debug.log:
09-Feb-2021 11:22:23 UTC] PHP Notice: Array to string conversion in .../wp-content/plugins/shortpixel-adaptive-images/includes/controllers/short-pixel-ai.class.php on line 1186
[09-Feb-2021 11:22:23 UTC] PHP Warning: Invalid argument supplied for foreach() in .../wp-content/plugins/wp-rocket/inc/Engine/Optimization/DeferJS/DeferJS.php on line 140

Expected behavior
There should be no errors.

Additional context
Code in ShortPixel AI:

public function wp_rocket_no_defer_spai_settings($regex) {
return $regex . '|spai_settings';
}

Comment by @engahmeds3ed:

I think we need to guard it and make it backward compatible so we will detect if it's string we will change it to array by exploding using | needle

Slack convo: https://wp-media.slack.com/archives/C43T1AYMQ/p1612871496110000
Ticket: https://secure.helpscout.net/conversation/1412614288/235953/

Related issue with Smart Slider 3:
Slack: https://wp-media.slack.com/archives/C60QX4FC1/p1612456408103600
Ticket: https://secure.helpscout.net/conversation/1414913336/236541/

Backlog Grooming (for WP Media dev team use only)

  • Reproduce the problem
  • Identify the root cause
  • Scope a solution
  • Estimate the effort
@engahmeds3ed
Copy link
Contributor

Grooming

  • Reproduce the problem
    Yes I saw the issue on customer site.

  • Identify the root cause
    At 3.8 we removed safe mode for jquery option on this PR Closes #3303 Remove defer JS safe mode option #3366 and there we used the filter rocket_defer_inline_exclusions and pass it a string and then on the next minor release (3.8.1) we changed it's type to be array on this PR Fix JavaScript deferring breaks Smart Slider 3 #3424
    so if there is a code is using our 3.8 approach it will fail with our newer versions after 3.8

  • Scope a solution
    We need to guard our filter value here

    $inline_exclusions_list = apply_filters( 'rocket_defer_inline_exclusions', $this->inline_exclusions );

    so here we will check the type of it, if string we will explode it with the delimiter | and then force casting it to be array.

  • Estimate the effort
    [XS] it will need adding new test case to pass different types of data to this filter.

@engahmeds3ed engahmeds3ed self-assigned this Feb 10, 2021
@Tabrisrp Tabrisrp added module: defer JS type: bug Indicates an unexpected problem or unintended behavior 3rd party compatibility Issues related to 3rd party compatibility like theme, plugin or hosting severity: moderate Feature isn't working as expected but has work around to get same value labels Feb 12, 2021
@Tabrisrp Tabrisrp added this to the 3.8.6 milestone Feb 12, 2021
@Tabrisrp Tabrisrp added the effort: [XS] < 1 day of estimated development time label Feb 12, 2021
Tabrisrp pushed a commit that referenced this issue Feb 25, 2021
crystinutzaa added a commit that referenced this issue 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 pushed a commit that referenced this issue Mar 23, 2021
iCaspar added a commit that referenced this issue 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 issue 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 issue 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
3rd party compatibility Issues related to 3rd party compatibility like theme, plugin or hosting effort: [XS] < 1 day of estimated development time module: defer JS severity: moderate Feature isn't working as expected but has work around to get same value type: bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants