-
Notifications
You must be signed in to change notification settings - Fork 233
Fixes #4758 Exclude our remove CPCSS script from delay JS #4824
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
Fixes #4758 Exclude our remove CPCSS script from delay JS #4824
Conversation
engahmeds3ed
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job at ur first PR.
Just a small request, we need to update the tests fixtures that we use here: https://github.com/wp-media/wp-rocket/blob/6cfc42e7a1fb9975b2bd32d43199d5dc9fcc12bd/tests/Fixtures/inc/Engine/Optimization/DelayJS/HTML/delayJs.php
to include the following script
<script>
function wprRemoveCPCSS() {
let preload_stylesheets = document.querySelectorAll( \'link[data-rocket-async="style"][rel="preload"]\' );
if ( preload_stylesheets && preload_stylesheets.length > 0 ) {
for ( let stylesheet_index = 0;stylesheet_index < preload_stylesheets.length;stylesheet_index++ ){
let media = preload_stylesheets[stylesheet_index].getAttribute(\'media\') || \'all\';
if( window.matchMedia(media).matches ){
setTimeout( wprRemoveCPCSS, 200 );
return;
}
}
}
const elem = document.getElementById( \'rocket-critical-css\' );
if ( elem && \'remove\' in elem ) {
elem.remove();
}
}
if ( window.addEventListener ) {
window.addEventListener( \'load\', wprRemoveCPCSS );
} else if ( window.attachEvent ) {
window.attachEvent( \'onload\', wprRemoveCPCSS );
}
</script>
inside the three variables there just before </body>, this will make sure that we don't delay this script anymore.
…d testing that this script is not deleted
engahmeds3ed
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Congratulations, Awesome job
Mai-Saad
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Working as expected
* Fixes #4757 Exclude AMP redirection script from delay JS (#4827) * Added amp-mobile-version-switcher to the HTML DelayJs exclusion array * Added amp-mobile-version-switcher script the delayJs fixture to ensure by automated testing that this script is not deleted * Reverted changes in DelayJS and fixtures corresponding to it. * Added a call to the filter rocket_delay_js_exclusions in the AMP Subscriber to exclude amp-mobile-version-switcher * Wrapped the filter rocket_delay_js_exclusions in the AMP verification to launch it only when it is activated * Fixed code standards * Added integration test for the exclude_script_from_delay_js method * Update version in inc/ThirdParty/Plugins/Optimization/AMP.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Use configTestData instead of providerTestData tests/Integration/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Remove providerTestData function in tests/Integration/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Removed providerTestData mehod in tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Use configTestData instead of providerTestData in tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Update inc/ThirdParty/Plugins/Optimization/AMP.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Update tests/Unit/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Update tests/Integration/inc/ThirdParty/Plugins/Optimization/AMP/excludeScriptFromDelayJs.php Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Added Integration TestCase Co-authored-by: Rémy Perona <remy@wp-rocket.me> * Fixes #4804 Use absint values for width/height values when setting image dimensions of SVG files (#4805) * Fixes #4527 Remove Rocket option to deactivate lazyload of iframes and YT videos when Autoptimize lazyload is enabled (#4889) * Closes #4020 Delete metadata from the postmeta table during uninstall (#4855) * Closes #4133 Clean feeds only if our cache feeds helper plugin is enabled (#4833) * Fixes #4171 Exclude judge.me script from delay JS (#4839) * Fixes #4032 Disabling heartbeat causing dependency error in query monitor (#4888) * Prevent issues when parsing the HTML to apply optimizations (#4838) * Fixes #4758 Exclude our remove CPCSS script from delay JS (#4824) * Closes #4896 Update test suite (#4903) Update our test suite to be cross-compatible with WP and PHPUnit versions * Prevent PHP 8.1 deprecation notices (#4732) * Flatsome preserver dynamic #image_ style (PR #4979) Fixes #4971 * Preserve Health Center dynamic CSS selectors (PR #4976) * Closes #4867 Update the deactivation form UI (PR #4880) * Remove render class * move deactivation form assets to deactivation intent class * update classes instantiation * add subscriber class * update code for new deactivation intent form * delete new option and transient on uninstall * remove modal task * remove old modal CSS * remove old modal JS * use micromodal for deactivation modal * update the form HTML * update the modal CSS * update micromodal to v0.4.10 * return type hint * add transition * replace divs by list * remove unneeded comment * add missing semicolon * update activate_safe_mode tests * add unit tests * add fixtures * cast option to int * update used hooks * remove screen check * update test and fixture * integration tests * fix PHPCS * Fixes #4868 Apply CDN to used CSS on output instead of on saving (PR #4893) * Moved the filter and removed the clean_used_css_with_cdn method * Removed fixtures and integration tests from the method `clean_used_css_with_cdn` * Added unit tests for treeshake function from UsedCSS controller * Fixed code standards * Removed quotes * Fixed errors with the tests * replicate magic isset declaration from parent class * revert previous commit Co-authored-by: Rémy Perona <remperona@gmail.com> * Fix problem with action scheduler (PR #4965) * Added fix * Added fix standards * Added check on pending * Fixed search * Added fix standards * Fixed to conform to CR * Fixed code standards * Fixed code standards * Changed `search` method usage to keep backward compatibility * stop bailing out after cancel all actions Co-authored-by: Ahmed Saeed <eng.ahmeds3ed@gmail.com> * update plugin version * Fixed failing test (#4986) Co-authored-by: COQUARD Cyrille <18537428+CrochetFeve0251@users.noreply.github.com> Co-authored-by: Rémy Perona <remy@wp-rocket.me> Co-authored-by: Klemart3D <Klemart3D@users.noreply.github.com> Co-authored-by: michael lee <38788055+jeawhanlee@users.noreply.github.com> Co-authored-by: Rémy Perona <remperona@gmail.com> Co-authored-by: Adame Dahmani <hello@adame.io> Co-authored-by: Vasilis Manthos <vmanthos@users.noreply.github.com>
Description
Fix the problem which prevent the id='rocket-critical-css' from being removed on page load by excluding wprRemoveCPCSS from Delay JS.
Fixes #4758
Is the solution different from the one proposed during the grooming?
No the grooming was right
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist: