Changeset 3380206
- Timestamp:
- 10/17/2025 02:55:12 PM (2 months ago)
- Location:
- litespeed-cache
- Files:
-
- 342 added
- 8 edited
-
tags/7.6.2 (added)
-
tags/7.6.2/LICENSE (added)
-
tags/7.6.2/assets (added)
-
tags/7.6.2/assets/css (added)
-
tags/7.6.2/assets/css/iziModal.min.css (added)
-
tags/7.6.2/assets/css/litespeed-dark-mode.css (added)
-
tags/7.6.2/assets/css/litespeed-dummy.css (added)
-
tags/7.6.2/assets/css/litespeed-legacy.css (added)
-
tags/7.6.2/assets/css/litespeed.css (added)
-
tags/7.6.2/assets/img (added)
-
tags/7.6.2/assets/img/Litespeed.icon.svg (added)
-
tags/7.6.2/assets/img/iconlscwp.svg (added)
-
tags/7.6.2/assets/img/icons (added)
-
tags/7.6.2/assets/img/icons/all.svg (added)
-
tags/7.6.2/assets/img/icons/all_transients.svg (added)
-
tags/7.6.2/assets/img/icons/auto_draft.svg (added)
-
tags/7.6.2/assets/img/icons/cross_icon.svg (added)
-
tags/7.6.2/assets/img/icons/db.svg (added)
-
tags/7.6.2/assets/img/icons/empty-cache.svg (added)
-
tags/7.6.2/assets/img/icons/expired_transient.svg (added)
-
tags/7.6.2/assets/img/icons/img_optm.svg (added)
-
tags/7.6.2/assets/img/icons/img_optm_disabled.svg (added)
-
tags/7.6.2/assets/img/icons/img_webp.svg (added)
-
tags/7.6.2/assets/img/icons/img_webp_disabled.svg (added)
-
tags/7.6.2/assets/img/icons/optimize_tables.svg (added)
-
tags/7.6.2/assets/img/icons/purge-403.svg (added)
-
tags/7.6.2/assets/img/icons/purge-404.svg (added)
-
tags/7.6.2/assets/img/icons/purge-500.svg (added)
-
tags/7.6.2/assets/img/icons/purge-all.svg (added)
-
tags/7.6.2/assets/img/icons/purge-cssjs.svg (added)
-
tags/7.6.2/assets/img/icons/purge-front.svg (added)
-
tags/7.6.2/assets/img/icons/purge-object.svg (added)
-
tags/7.6.2/assets/img/icons/purge-opcache.svg (added)
-
tags/7.6.2/assets/img/icons/purge-pages.svg (added)
-
tags/7.6.2/assets/img/icons/revision.svg (added)
-
tags/7.6.2/assets/img/icons/spam_comment.svg (added)
-
tags/7.6.2/assets/img/icons/success_icon.svg (added)
-
tags/7.6.2/assets/img/icons/trackback-pingback.svg (added)
-
tags/7.6.2/assets/img/icons/trash_comment.svg (added)
-
tags/7.6.2/assets/img/icons/trash_post.svg (added)
-
tags/7.6.2/assets/img/lscwp-logo_90x90.png (added)
-
tags/7.6.2/assets/img/lscwp_blue_font-icon_22px.svg (added)
-
tags/7.6.2/assets/img/lscwp_font-icon_32px.svg (added)
-
tags/7.6.2/assets/img/lscwp_gray-yellow_font-icon_22px.svg (added)
-
tags/7.6.2/assets/img/lscwp_gray_font-icon_22px.svg (added)
-
tags/7.6.2/assets/img/lscwp_grayscale_font-icon_22px.svg (added)
-
tags/7.6.2/assets/img/quic-cloud-icon-16x16.svg (added)
-
tags/7.6.2/assets/img/quic-cloud-logo-light_stack_300px.png (added)
-
tags/7.6.2/assets/img/quic-cloud-logo.svg (added)
-
tags/7.6.2/assets/img/slack-logo.png (added)
-
tags/7.6.2/assets/js (added)
-
tags/7.6.2/assets/js/babel.min.js (added)
-
tags/7.6.2/assets/js/component.cdn.js (added)
-
tags/7.6.2/assets/js/component.crawler.js (added)
-
tags/7.6.2/assets/js/css_async.js (added)
-
tags/7.6.2/assets/js/css_async.min.js (added)
-
tags/7.6.2/assets/js/guest.docref.js (added)
-
tags/7.6.2/assets/js/guest.docref.min.js (added)
-
tags/7.6.2/assets/js/guest.js (added)
-
tags/7.6.2/assets/js/guest.min.js (added)
-
tags/7.6.2/assets/js/instant_click.min.js (added)
-
tags/7.6.2/assets/js/instant_click.ori.js (added)
-
tags/7.6.2/assets/js/iziModal.min.js (added)
-
tags/7.6.2/assets/js/js_delay.js (added)
-
tags/7.6.2/assets/js/js_delay.min.js (added)
-
tags/7.6.2/assets/js/lazyload.init.js (added)
-
tags/7.6.2/assets/js/lazyload.lib.js (added)
-
tags/7.6.2/assets/js/lazyload.min.js (added)
-
tags/7.6.2/assets/js/litespeed-cache-admin.js (added)
-
tags/7.6.2/assets/js/react.min.js (added)
-
tags/7.6.2/assets/js/webfontloader.js (added)
-
tags/7.6.2/assets/js/webfontloader.min.js (added)
-
tags/7.6.2/autoload.php (added)
-
tags/7.6.2/changelog.txt (added)
-
tags/7.6.2/cli (added)
-
tags/7.6.2/cli/crawler.cls.php (added)
-
tags/7.6.2/cli/database.cls.php (added)
-
tags/7.6.2/cli/debug.cls.php (added)
-
tags/7.6.2/cli/image.cls.php (added)
-
tags/7.6.2/cli/online.cls.php (added)
-
tags/7.6.2/cli/option.cls.php (added)
-
tags/7.6.2/cli/presets.cls.php (added)
-
tags/7.6.2/cli/purge.cls.php (added)
-
tags/7.6.2/composer.json (added)
-
tags/7.6.2/composer.lock (added)
-
tags/7.6.2/data (added)
-
tags/7.6.2/data/.htaccess (added)
-
tags/7.6.2/data/cache_nocacheable.txt (added)
-
tags/7.6.2/data/ccss_whitelist.txt (added)
-
tags/7.6.2/data/const.default.json (added)
-
tags/7.6.2/data/const.network_default.json (added)
-
tags/7.6.2/data/css_excludes.txt (added)
-
tags/7.6.2/data/esi.nonce.txt (added)
-
tags/7.6.2/data/esi.nonces.txt (added)
-
tags/7.6.2/data/js_defer_excludes.txt (added)
-
tags/7.6.2/data/js_excludes.txt (added)
-
tags/7.6.2/data/optm_uri_exc.txt (added)
-
tags/7.6.2/data/preset (added)
-
tags/7.6.2/data/preset/advanced.data (added)
-
tags/7.6.2/data/preset/aggressive.data (added)
-
tags/7.6.2/data/preset/basic.data (added)
-
tags/7.6.2/data/preset/essentials.data (added)
-
tags/7.6.2/data/preset/extreme.data (added)
-
tags/7.6.2/data/ucss_whitelist.txt (added)
-
tags/7.6.2/guest.vary.php (added)
-
tags/7.6.2/lang (added)
-
tags/7.6.2/lang/litespeed-cache.pot (added)
-
tags/7.6.2/lib (added)
-
tags/7.6.2/lib/css_js_min (added)
-
tags/7.6.2/lib/css_js_min/minify (added)
-
tags/7.6.2/lib/css_js_min/minify/LICENSE (added)
-
tags/7.6.2/lib/css_js_min/minify/css.cls.php (added)
-
tags/7.6.2/lib/css_js_min/minify/data (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/keywords_after.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/keywords_before.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/keywords_reserved.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/operators.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/operators_after.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/data/js/operators_before.txt (added)
-
tags/7.6.2/lib/css_js_min/minify/exception.cls.php (added)
-
tags/7.6.2/lib/css_js_min/minify/js.cls.php (added)
-
tags/7.6.2/lib/css_js_min/minify/minify.cls.php (added)
-
tags/7.6.2/lib/css_js_min/pathconverter (added)
-
tags/7.6.2/lib/css_js_min/pathconverter/LICENSE (added)
-
tags/7.6.2/lib/css_js_min/pathconverter/converter.cls.php (added)
-
tags/7.6.2/lib/guest.cls.php (added)
-
tags/7.6.2/lib/html-min.cls.php (added)
-
tags/7.6.2/lib/object-cache.php (added)
-
tags/7.6.2/lib/php-compatibility.func.php (added)
-
tags/7.6.2/lib/urirewriter.cls.php (added)
-
tags/7.6.2/litespeed-cache.php (added)
-
tags/7.6.2/package-lock.json (added)
-
tags/7.6.2/package.json (added)
-
tags/7.6.2/phpcs.ruleset.xml (added)
-
tags/7.6.2/phpcs.xml.dist (added)
-
tags/7.6.2/qc-ping.txt (added)
-
tags/7.6.2/readme.txt (added)
-
tags/7.6.2/security.md (added)
-
tags/7.6.2/src (added)
-
tags/7.6.2/src/activation.cls.php (added)
-
tags/7.6.2/src/admin-display.cls.php (added)
-
tags/7.6.2/src/admin-settings.cls.php (added)
-
tags/7.6.2/src/admin.cls.php (added)
-
tags/7.6.2/src/api.cls.php (added)
-
tags/7.6.2/src/avatar.cls.php (added)
-
tags/7.6.2/src/base.cls.php (added)
-
tags/7.6.2/src/cdn (added)
-
tags/7.6.2/src/cdn.cls.php (added)
-
tags/7.6.2/src/cdn/cloudflare.cls.php (added)
-
tags/7.6.2/src/cdn/quic.cls.php (added)
-
tags/7.6.2/src/cloud.cls.php (added)
-
tags/7.6.2/src/conf.cls.php (added)
-
tags/7.6.2/src/control.cls.php (added)
-
tags/7.6.2/src/core.cls.php (added)
-
tags/7.6.2/src/crawler-map.cls.php (added)
-
tags/7.6.2/src/crawler.cls.php (added)
-
tags/7.6.2/src/css.cls.php (added)
-
tags/7.6.2/src/data.cls.php (added)
-
tags/7.6.2/src/data.upgrade.func.php (added)
-
tags/7.6.2/src/data_structure (added)
-
tags/7.6.2/src/data_structure/avatar.sql (added)
-
tags/7.6.2/src/data_structure/crawler.sql (added)
-
tags/7.6.2/src/data_structure/crawler_blacklist.sql (added)
-
tags/7.6.2/src/data_structure/img_optm.sql (added)
-
tags/7.6.2/src/data_structure/img_optming.sql (added)
-
tags/7.6.2/src/data_structure/url.sql (added)
-
tags/7.6.2/src/data_structure/url_file.sql (added)
-
tags/7.6.2/src/db-optm.cls.php (added)
-
tags/7.6.2/src/debug2.cls.php (added)
-
tags/7.6.2/src/doc.cls.php (added)
-
tags/7.6.2/src/error.cls.php (added)
-
tags/7.6.2/src/esi.cls.php (added)
-
tags/7.6.2/src/file.cls.php (added)
-
tags/7.6.2/src/gui.cls.php (added)
-
tags/7.6.2/src/health.cls.php (added)
-
tags/7.6.2/src/htaccess.cls.php (added)
-
tags/7.6.2/src/img-optm.cls.php (added)
-
tags/7.6.2/src/import.cls.php (added)
-
tags/7.6.2/src/import.preset.cls.php (added)
-
tags/7.6.2/src/lang.cls.php (added)
-
tags/7.6.2/src/localization.cls.php (added)
-
tags/7.6.2/src/media.cls.php (added)
-
tags/7.6.2/src/metabox.cls.php (added)
-
tags/7.6.2/src/object-cache-wp.cls.php (added)
-
tags/7.6.2/src/object-cache.cls.php (added)
-
tags/7.6.2/src/object.lib.php (added)
-
tags/7.6.2/src/optimize.cls.php (added)
-
tags/7.6.2/src/optimizer.cls.php (added)
-
tags/7.6.2/src/placeholder.cls.php (added)
-
tags/7.6.2/src/purge.cls.php (added)
-
tags/7.6.2/src/report.cls.php (added)
-
tags/7.6.2/src/rest.cls.php (added)
-
tags/7.6.2/src/root.cls.php (added)
-
tags/7.6.2/src/router.cls.php (added)
-
tags/7.6.2/src/str.cls.php (added)
-
tags/7.6.2/src/tag.cls.php (added)
-
tags/7.6.2/src/task.cls.php (added)
-
tags/7.6.2/src/tool.cls.php (added)
-
tags/7.6.2/src/ucss.cls.php (added)
-
tags/7.6.2/src/utility.cls.php (added)
-
tags/7.6.2/src/vary.cls.php (added)
-
tags/7.6.2/src/vpi.cls.php (added)
-
tags/7.6.2/thirdparty (added)
-
tags/7.6.2/thirdparty/aelia-currencyswitcher.cls.php (added)
-
tags/7.6.2/thirdparty/amp.cls.php (added)
-
tags/7.6.2/thirdparty/autoptimize.cls.php (added)
-
tags/7.6.2/thirdparty/avada.cls.php (added)
-
tags/7.6.2/thirdparty/bbpress.cls.php (added)
-
tags/7.6.2/thirdparty/beaver-builder.cls.php (added)
-
tags/7.6.2/thirdparty/caldera-forms.cls.php (added)
-
tags/7.6.2/thirdparty/divi-theme-builder.cls.php (added)
-
tags/7.6.2/thirdparty/elementor.cls.php (added)
-
tags/7.6.2/thirdparty/entry.inc.php (added)
-
tags/7.6.2/thirdparty/facetwp.cls.php (added)
-
tags/7.6.2/thirdparty/gravity-forms.cls.php (added)
-
tags/7.6.2/thirdparty/litespeed-check.cls.php (added)
-
tags/7.6.2/thirdparty/nextgengallery.cls.php (added)
-
tags/7.6.2/thirdparty/perfmatters.cls.php (added)
-
tags/7.6.2/thirdparty/theme-my-login.cls.php (added)
-
tags/7.6.2/thirdparty/user-switching.cls.php (added)
-
tags/7.6.2/thirdparty/wc-pdf-product-vouchers.cls.php (added)
-
tags/7.6.2/thirdparty/wcml.cls.php (added)
-
tags/7.6.2/thirdparty/woo-paypal.cls.php (added)
-
tags/7.6.2/thirdparty/woocommerce.cls.php (added)
-
tags/7.6.2/thirdparty/woocommerce.content.tpl.php (added)
-
tags/7.6.2/thirdparty/woocommerce.tab.tpl.php (added)
-
tags/7.6.2/thirdparty/wp-polls.cls.php (added)
-
tags/7.6.2/thirdparty/wp-postratings.cls.php (added)
-
tags/7.6.2/thirdparty/wpdiscuz.cls.php (added)
-
tags/7.6.2/thirdparty/wplister.cls.php (added)
-
tags/7.6.2/thirdparty/wpml.cls.php (added)
-
tags/7.6.2/thirdparty/wptouch.cls.php (added)
-
tags/7.6.2/thirdparty/yith-wishlist.cls.php (added)
-
tags/7.6.2/tpl (added)
-
tags/7.6.2/tpl/banner (added)
-
tags/7.6.2/tpl/banner/ajax.php (added)
-
tags/7.6.2/tpl/banner/cloud_news.tpl.php (added)
-
tags/7.6.2/tpl/banner/cloud_promo.tpl.php (added)
-
tags/7.6.2/tpl/banner/new_version.php (added)
-
tags/7.6.2/tpl/banner/new_version_dev.tpl.php (added)
-
tags/7.6.2/tpl/banner/score.php (added)
-
tags/7.6.2/tpl/banner/slack.php (added)
-
tags/7.6.2/tpl/cache (added)
-
tags/7.6.2/tpl/cache/entry.tpl.php (added)
-
tags/7.6.2/tpl/cache/more_settings_tip.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-advanced.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-browser.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-cache.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-excludes.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-object.tpl.php (added)
-
tags/7.6.2/tpl/cache/network_settings-purge.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-advanced.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-browser.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-cache.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-esi.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-excludes.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-object.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-purge.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings-ttl.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.browser.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.cache_dropquery.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.cache_mobile.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.exclude_cookies.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.exclude_useragent.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.login_cookie.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.object.tpl.php (added)
-
tags/7.6.2/tpl/cache/settings_inc.purge_on_upgrade.tpl.php (added)
-
tags/7.6.2/tpl/cdn (added)
-
tags/7.6.2/tpl/cdn/cf.tpl.php (added)
-
tags/7.6.2/tpl/cdn/entry.tpl.php (added)
-
tags/7.6.2/tpl/cdn/other.tpl.php (added)
-
tags/7.6.2/tpl/cdn/qc.tpl.php (added)
-
tags/7.6.2/tpl/crawler (added)
-
tags/7.6.2/tpl/crawler/blacklist.tpl.php (added)
-
tags/7.6.2/tpl/crawler/entry.tpl.php (added)
-
tags/7.6.2/tpl/crawler/map.tpl.php (added)
-
tags/7.6.2/tpl/crawler/settings.tpl.php (added)
-
tags/7.6.2/tpl/crawler/summary.tpl.php (added)
-
tags/7.6.2/tpl/dash (added)
-
tags/7.6.2/tpl/dash/dashboard.tpl.php (added)
-
tags/7.6.2/tpl/dash/entry.tpl.php (added)
-
tags/7.6.2/tpl/dash/network_dash.tpl.php (added)
-
tags/7.6.2/tpl/db_optm (added)
-
tags/7.6.2/tpl/db_optm/entry.tpl.php (added)
-
tags/7.6.2/tpl/db_optm/manage.tpl.php (added)
-
tags/7.6.2/tpl/db_optm/settings.tpl.php (added)
-
tags/7.6.2/tpl/esi.tpl.php (added)
-
tags/7.6.2/tpl/esi_widget_edit.php (added)
-
tags/7.6.2/tpl/general (added)
-
tags/7.6.2/tpl/general/entry.tpl.php (added)
-
tags/7.6.2/tpl/general/network_settings.tpl.php (added)
-
tags/7.6.2/tpl/general/online.tpl.php (added)
-
tags/7.6.2/tpl/general/settings.tpl.php (added)
-
tags/7.6.2/tpl/general/settings_inc.auto_upgrade.tpl.php (added)
-
tags/7.6.2/tpl/general/settings_inc.guest.tpl.php (added)
-
tags/7.6.2/tpl/general/settings_tuning.tpl.php (added)
-
tags/7.6.2/tpl/img_optm (added)
-
tags/7.6.2/tpl/img_optm/entry.tpl.php (added)
-
tags/7.6.2/tpl/img_optm/network_settings.tpl.php (added)
-
tags/7.6.2/tpl/img_optm/settings.media_webp.tpl.php (added)
-
tags/7.6.2/tpl/img_optm/settings.tpl.php (added)
-
tags/7.6.2/tpl/img_optm/summary.tpl.php (added)
-
tags/7.6.2/tpl/inc (added)
-
tags/7.6.2/tpl/inc/admin_footer.php (added)
-
tags/7.6.2/tpl/inc/check_cache_disabled.php (added)
-
tags/7.6.2/tpl/inc/check_if_network_disable_all.php (added)
-
tags/7.6.2/tpl/inc/in_upgrading.php (added)
-
tags/7.6.2/tpl/inc/metabox.php (added)
-
tags/7.6.2/tpl/inc/modal.deactivation.php (added)
-
tags/7.6.2/tpl/inc/show_display_installed.php (added)
-
tags/7.6.2/tpl/inc/show_error_cookie.php (added)
-
tags/7.6.2/tpl/inc/show_rule_conflict.php (added)
-
tags/7.6.2/tpl/optimax (added)
-
tags/7.6.2/tpl/optimax/entry.tpl.php (added)
-
tags/7.6.2/tpl/optimax/settings.tpl.php (added)
-
tags/7.6.2/tpl/optimax/summary.tpl.php (added)
-
tags/7.6.2/tpl/page_optm (added)
-
tags/7.6.2/tpl/page_optm/entry.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_css.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_html.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_js.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_localization.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_media.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_media_exc.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_tuning.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_tuning_css.tpl.php (added)
-
tags/7.6.2/tpl/page_optm/settings_vpi.tpl.php (added)
-
tags/7.6.2/tpl/presets (added)
-
tags/7.6.2/tpl/presets/entry.tpl.php (added)
-
tags/7.6.2/tpl/presets/standard.tpl.php (added)
-
tags/7.6.2/tpl/toolbox (added)
-
tags/7.6.2/tpl/toolbox/beta_test.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/edit_htaccess.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/entry.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/heartbeat.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/import_export.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/log_viewer.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/purge.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/report.tpl.php (added)
-
tags/7.6.2/tpl/toolbox/settings-debug.tpl.php (added)
-
tags/7.6.2/typos.toml (added)
-
trunk/assets/css/litespeed-dark-mode.css (modified) (90 diffs)
-
trunk/litespeed-cache.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/admin-display.cls.php (modified) (1 diff)
-
trunk/src/cloud.cls.php (modified) (3 diffs)
-
trunk/src/purge.cls.php (modified) (1 diff)
-
trunk/src/rest.cls.php (modified) (8 diffs)
-
trunk/tpl/toolbox/beta_test.tpl.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
litespeed-cache/trunk/assets/css/litespeed-dark-mode.css
r3379049 r3380206 25 25 26 26 @media (prefers-color-scheme: dark) { 27 body[class*="litespeed "]:not(.litespeed-lightmode) {27 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) { 28 28 background-color: #1e1e1e; 29 29 color: #e0e0e0; … … 37 37 /* WordPress admin wrapper */ 38 38 @media (prefers-color-scheme: dark) { 39 body[class*="litespeed "]:not(.litespeed-lightmode) #wpwrap {39 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) #wpwrap { 40 40 background-color: #1e1e1e; 41 41 color: #e0e0e0; … … 49 49 /* Main content area */ 50 50 @media (prefers-color-scheme: dark) { 51 body[class*="litespeed "]:not(.litespeed-lightmode) #wpcontent {51 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) #wpcontent { 52 52 background-color: #181818; 53 53 color: #e0e0e0; … … 61 61 /* Form inputs */ 62 62 @media (prefers-color-scheme: dark) { 63 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='text'],64 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='number'],65 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='email'],66 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='url'],67 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='password'],68 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='search'],69 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='file'],70 body[class*="litespeed "]:not(.litespeed-lightmode) textarea,71 body[class*="litespeed "]:not(.litespeed-lightmode) select {63 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='text'], 64 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='number'], 65 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='email'], 66 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='url'], 67 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='password'], 68 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='search'], 69 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='file'], 70 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) textarea, 71 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) select { 72 72 background-color: #2d2d30; 73 73 border: 1px solid #3e3e42; … … 90 90 91 91 @media (prefers-color-scheme: dark) { 92 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='text']:focus,93 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='number']:focus,94 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='email']:focus,95 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='url']:focus,96 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='password']:focus,97 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='search']:focus,98 body[class*="litespeed "]:not(.litespeed-lightmode) input[type='file']:focus,99 body[class*="litespeed "]:not(.litespeed-lightmode) textarea:focus,100 body[class*="litespeed "]:not(.litespeed-lightmode) select:focus {92 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='text']:focus, 93 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='number']:focus, 94 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='email']:focus, 95 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='url']:focus, 96 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='password']:focus, 97 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='search']:focus, 98 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type='file']:focus, 99 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) textarea:focus, 100 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) select:focus { 101 101 background-color: #404043; 102 102 border: 1px solid #5a5a5d; … … 120 120 /* Buttons */ 121 121 @media (prefers-color-scheme: dark) { 122 body[class*="litespeed "]:not(.litespeed-lightmode) .button,123 body[class*="litespeed "]:not(.litespeed-lightmode) .button-secondary {122 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button, 123 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-secondary { 124 124 background-color: #3e3e42; 125 125 border-color: #5a5a5d; … … 135 135 136 136 @media (prefers-color-scheme: dark) { 137 body[class*="litespeed "]:not(.litespeed-lightmode) circle.litespeed-pie_bg {137 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) circle.litespeed-pie_bg { 138 138 stroke: #3e3e42; 139 139 } … … 144 144 145 145 @media (prefers-color-scheme: dark) { 146 body[class*="litespeed "]:not(.litespeed-lightmode) g.litespeed-pie_info text {146 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) g.litespeed-pie_info text { 147 147 fill: #e0e0e0; 148 148 } … … 153 153 154 154 @media (prefers-color-scheme: dark) { 155 body[class*="litespeed "]:not(.litespeed-lightmode) g.litespeed-pie_info .litespeed-pie-done {155 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) g.litespeed-pie_info .litespeed-pie-done { 156 156 fill: #6dd17e; 157 157 } … … 162 162 163 163 @media (prefers-color-scheme: dark) { 164 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-switch input:not(:checked) + label {164 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-switch input:not(:checked) + label { 165 165 background-color: #3e3e42; 166 166 color: #e0e0e0; … … 176 176 /* Column with boxes layout */ 177 177 @media (prefers-color-scheme: dark) { 178 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-column-with-boxes .postbox {178 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-column-with-boxes .postbox { 179 179 border-color: #3e3e42; 180 180 } … … 185 185 186 186 @media (prefers-color-scheme: dark) { 187 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-column-with-boxes > div.litespeed-column-right {187 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-column-with-boxes > div.litespeed-column-right { 188 188 background-color: #2d2d30; 189 189 } … … 194 194 195 195 @media (prefers-color-scheme: dark) { 196 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-image-optim-summary,197 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-column-left-inside {196 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-image-optim-summary, 197 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-column-left-inside { 198 198 background-color: #1e1e1e; 199 199 border: 1px solid #3e3e42; … … 224 224 225 225 @media (prefers-color-scheme: dark) { 226 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-image-optim-summary-footer,227 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-column-with-boxes-footer {226 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-image-optim-summary-footer, 227 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-column-with-boxes-footer { 228 228 border-top: 1px solid #373737; 229 229 background: revert; … … 237 237 238 238 @media (prefers-color-scheme: dark) { 239 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-column-with-boxes-footer {239 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-column-with-boxes-footer { 240 240 border-top: 1px solid #3e3e42; 241 241 background-color: #353539; … … 250 250 251 251 @media (prefers-color-scheme: dark) { 252 body[class*="litespeed "]:not(.litespeed-lightmode) .nav-tab:focus:not(.nav-tab-active),253 body[class*="litespeed "]:not(.litespeed-lightmode) .nav-tab:hover:not(.nav-tab-active) {252 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .nav-tab:focus:not(.nav-tab-active), 253 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .nav-tab:hover:not(.nav-tab-active) { 254 254 background-color: #4d4d51; 255 255 border-color: #666; … … 265 265 266 266 @media (prefers-color-scheme: dark) { 267 body[class*="litespeed "]:not(.litespeed-lightmode) .button:hover,268 body[class*="litespeed "]:not(.litespeed-lightmode) .button-secondary:hover {267 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button:hover, 268 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-secondary:hover { 269 269 background-color: #484851; 270 270 border-color: #666; … … 278 278 279 279 @media (prefers-color-scheme: dark) { 280 body[class*="litespeed "]:not(.litespeed-lightmode) .button-primary {280 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-primary { 281 281 background-color: #0073aa; 282 282 border-color: #005a87; … … 291 291 292 292 @media (prefers-color-scheme: dark) { 293 body[class*="litespeed "]:not(.litespeed-lightmode) .button-primary:hover {293 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-primary:hover { 294 294 background-color: #005a87; 295 295 border-color: #004a73; … … 302 302 303 303 @media (prefers-color-scheme: dark) { 304 body[class*="litespeed "]:not(.litespeed-lightmode) .button-primary:disabled,305 body[class*="litespeed "]:not(.litespeed-lightmode) .button-primary[disabled] {304 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-primary:disabled, 305 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .button-primary[disabled] { 306 306 background-color: #3e3e42; 307 307 border-color: #5a5a5d; … … 322 322 /* Danger buttons */ 323 323 @media (prefers-color-scheme: dark) { 324 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-btn-danger-bg,325 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed .litespeed-btn-danger-bg,326 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-wrap .litespeed-btn-danger-bg {324 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-btn-danger-bg, 325 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed .litespeed-btn-danger-bg, 326 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-wrap .litespeed-btn-danger-bg { 327 327 background-color: #dc3232; 328 328 border-color: #b32d2e; … … 341 341 342 342 @media (prefers-color-scheme: dark) { 343 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-btn-danger-bg:hover,344 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed .litespeed-btn-danger-bg:hover,345 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-wrap .litespeed-btn-danger-bg:hover {343 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-btn-danger-bg:hover, 344 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed .litespeed-btn-danger-bg:hover, 345 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-wrap .litespeed-btn-danger-bg:hover { 346 346 background-color: #b32d2e; 347 347 border-color: #a02622; … … 357 357 /* Notices */ 358 358 @media (prefers-color-scheme: dark) { 359 body[class*="litespeed "]:not(.litespeed-lightmode) .notice {359 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .notice { 360 360 background-color: #262626; 361 361 border-left: 4px solid #72a9d3; … … 370 370 371 371 @media (prefers-color-scheme: dark) { 372 body[class*="litespeed "]:not(.litespeed-lightmode) .notice-success {372 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .notice-success { 373 373 border-left-color: #46b450; 374 374 } … … 379 379 380 380 @media (prefers-color-scheme: dark) { 381 body[class*="litespeed "]:not(.litespeed-lightmode) .notice-warning {381 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .notice-warning { 382 382 border-left-color: #b28100; 383 383 } … … 388 388 389 389 @media (prefers-color-scheme: dark) { 390 body[class*="litespeed "]:not(.litespeed-lightmode) .notice-error {390 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .notice-error { 391 391 border-left-color: #dc3232; 392 392 } … … 397 397 398 398 @media (prefers-color-scheme: dark) { 399 body[class*="litespeed "]:not(.litespeed-lightmode) .notice-info {399 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .notice-info { 400 400 border-left-color: #00a0d2; 401 401 } … … 407 407 /* Striped table notices */ 408 408 @media (prefers-color-scheme: dark) { 409 body[class*="litespeed "]:not(.litespeed-lightmode) .striped > tbody > :nth-child(even) .notice {409 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .striped > tbody > :nth-child(even) .notice { 410 410 background-color: #3e3e42; 411 411 box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.3); … … 419 419 /* Postboxes */ 420 420 @media (prefers-color-scheme: dark) { 421 body[class*="litespeed "]:not(.litespeed-lightmode) .postbox {421 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .postbox { 422 422 background-color: #2d2d30; 423 423 border: 1px solid #767679; … … 432 432 433 433 @media (prefers-color-scheme: dark) { 434 body[class*="litespeed "]:not(.litespeed-lightmode) .postbox h3,435 body[class*="litespeed "]:not(.litespeed-lightmode) .postbox .hndle {434 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .postbox h3, 435 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .postbox .hndle { 436 436 color: #e0e0e0; 437 437 } … … 444 444 /* Tables */ 445 445 @media (prefers-color-scheme: dark) { 446 body[class*="litespeed "]:not(.litespeed-lightmode) table,447 body[class*="litespeed "]:not(.litespeed-lightmode) .wp-list-table {446 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) table, 447 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .wp-list-table { 448 448 background-color: #2d2d30; 449 449 color: #e0e0e0; … … 457 457 458 458 @media (prefers-color-scheme: dark) { 459 body[class*="litespeed "]:not(.litespeed-lightmode) .wp-list-table th {459 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .wp-list-table th { 460 460 color: #e0e0e0; 461 461 } … … 466 466 467 467 @media (prefers-color-scheme: dark) { 468 body[class*="litespeed "]:not(.litespeed-lightmode) .wp-list-table td {468 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .wp-list-table td { 469 469 border-bottom: 1px solid #3e3e42; 470 470 color: #e0e0e0; … … 477 477 478 478 @media (prefers-color-scheme: dark) { 479 body[class*="litespeed "]:not(.litespeed-lightmode) .striped > tbody > :nth-child(odd) {479 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .striped > tbody > :nth-child(odd) { 480 480 background-color: #2d2d30; 481 481 } … … 486 486 487 487 @media (prefers-color-scheme: dark) { 488 body[class*="litespeed "]:not(.litespeed-lightmode) .striped > tbody > :nth-child(even) {488 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .striped > tbody > :nth-child(even) { 489 489 background-color: #353539; 490 490 } … … 496 496 /* Form tables */ 497 497 @media (prefers-color-scheme: dark) { 498 body[class*="litespeed "]:not(.litespeed-lightmode) .form-table {498 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .form-table { 499 499 background: transparent; 500 500 } … … 505 505 506 506 @media (prefers-color-scheme: dark) { 507 body[class*="litespeed "]:not(.litespeed-lightmode) .form-table th {507 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .form-table th { 508 508 background: transparent; 509 509 color: #e0e0e0; … … 516 516 517 517 @media (prefers-color-scheme: dark) { 518 body[class*="litespeed "]:not(.litespeed-lightmode) .form-table td {518 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .form-table td { 519 519 background: transparent; 520 520 color: #e0e0e0; … … 528 528 /* Links */ 529 529 @media (prefers-color-scheme: dark) { 530 body[class*="litespeed "]:not(.litespeed-lightmode) a {530 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) a { 531 531 color: #72aee6; 532 532 } … … 537 537 538 538 @media (prefers-color-scheme: dark) { 539 body[class*="litespeed "]:not(.litespeed-lightmode) a:hover,540 body[class*="litespeed "]:not(.litespeed-lightmode) a:focus {539 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) a:hover, 540 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) a:focus { 541 541 color: #9ec8f2; 542 542 } … … 549 549 /* Code blocks */ 550 550 @media (prefers-color-scheme: dark) { 551 body[class*="litespeed "]:not(.litespeed-lightmode) code {551 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) code { 552 552 background-color: #404043; 553 553 color: #e0e0e0; … … 561 561 /* Horizontal rules */ 562 562 @media (prefers-color-scheme: dark) { 563 body[class*="litespeed "]:not(.litespeed-lightmode) hr {563 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) hr { 564 564 border-color: #5a5a5d; 565 565 background-color: #5a5a5d; … … 573 573 /* Dashboard widgets */ 574 574 @media (prefers-color-scheme: dark) { 575 body[class*="litespeed "]:not(.litespeed-lightmode) .dashboard-widget {575 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .dashboard-widget { 576 576 background-color: #2d2d30; 577 577 border: 1px solid #3e3e42; … … 584 584 585 585 @media (prefers-color-scheme: dark) { 586 body[class*="litespeed "]:not(.litespeed-lightmode) .dashboard-widget .widget-top {586 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .dashboard-widget .widget-top { 587 587 background-color: #404043; 588 588 border-bottom: 1px solid #5a5a5d; … … 596 596 /* Meta boxes */ 597 597 @media (prefers-color-scheme: dark) { 598 body[class*="litespeed "]:not(.litespeed-lightmode) .meta-box-sortables .postbox {598 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .meta-box-sortables .postbox { 599 599 background-color: #2d2d30; 600 600 border: 1px solid #3e3e42; … … 608 608 /* LiteSpeed specific styles */ 609 609 @media (prefers-color-scheme: dark) { 610 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-header {610 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-header { 611 611 border-bottom: 1px solid #5a5a5d; 612 612 } … … 617 617 618 618 @media (prefers-color-scheme: dark) { 619 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-body {619 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-body { 620 620 background-color: #1e1e1e; 621 621 border-left: 1px solid #5a5a5d; … … 634 634 635 635 @media (prefers-color-scheme: dark) { 636 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-panel {636 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-panel { 637 637 background-color: #2d2d30; 638 638 border: 1px solid #3e3e42; … … 647 647 648 648 @media (prefers-color-scheme: dark) { 649 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-panel-wrapper {649 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-panel-wrapper { 650 650 background: transparent; 651 651 } … … 657 657 /* Dashboard titles */ 658 658 @media (prefers-color-scheme: dark) { 659 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-h1,660 body[class*="litespeed "]:not(.litespeed-lightmode) h1.litespeed-h1 {659 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-h1, 660 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) h1.litespeed-h1 { 661 661 color: #e0e0e0; 662 662 } … … 668 668 669 669 @media (prefers-color-scheme: dark) { 670 body[class*="litespeed "]:not(.litespeed-lightmode) h3 {670 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) h3 { 671 671 color: #e0e0e0; 672 672 } … … 678 678 /* LiteSpeed postboxes */ 679 679 @media (prefers-color-scheme: dark) { 680 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox {680 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox { 681 681 background-color: #2d2d30; 682 682 border: 1px solid #3e3e42; … … 691 691 692 692 @media (prefers-color-scheme: dark) { 693 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox .inside {693 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox .inside { 694 694 color: #e0e0e0; 695 695 } … … 700 700 701 701 @media (prefers-color-scheme: dark) { 702 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox .inside .litespeed-title {702 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox .inside .litespeed-title { 703 703 border-bottom: 1px solid #5a5a5d; 704 704 color: #e0e0e0; … … 711 711 712 712 @media (prefers-color-scheme: dark) { 713 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox .inside.litespeed-postbox-footer {713 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox .inside.litespeed-postbox-footer { 714 714 background-color: #353539; 715 715 border-top: 1px solid #5a5a5d; … … 722 722 723 723 @media (prefers-color-scheme: dark) { 724 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox p.litespeed-dashboard-stats-total {724 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox p.litespeed-dashboard-stats-total { 725 725 border-top: 1px dashed #5a5a5d; 726 726 } … … 732 732 /* Dashboard stats */ 733 733 @media (prefers-color-scheme: dark) { 734 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-stats .litespeed-desc {734 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-stats .litespeed-desc { 735 735 color: #b3b3b3; 736 736 } … … 741 741 742 742 @media (prefers-color-scheme: dark) { 743 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-stats-payg {743 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-stats-payg { 744 744 color: #b3b3b3; 745 745 } … … 750 750 751 751 @media (prefers-color-scheme: dark) { 752 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-stats-payg strong {752 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-stats-payg strong { 753 753 color: #e0e0e0; 754 754 } … … 759 759 760 760 @media (prefers-color-scheme: dark) { 761 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {761 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) { 762 762 border-left-color: #3e3e42; 763 763 } … … 768 768 769 769 @media (prefers-color-scheme: dark) { 770 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox.litespeed-postbox-partner h3.litespeed-title {770 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox.litespeed-postbox-partner h3.litespeed-title { 771 771 color: #b3b3b3; 772 772 } … … 778 778 /* QUIC.cloud postbox styling */ 779 779 @media (prefers-color-scheme: dark) { 780 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud {780 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud { 781 781 border-color: #3e7cb3; 782 782 } … … 787 787 788 788 @media (prefers-color-scheme: dark) { 789 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title {789 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title { 790 790 background-color: #41464a; 791 791 color: #ffffff; … … 798 798 799 799 @media (prefers-color-scheme: dark) { 800 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a {800 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a { 801 801 color: #a5caf2; 802 802 } … … 807 807 808 808 @media (prefers-color-scheme: dark) { 809 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a:hover {809 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a:hover { 810 810 color: #c2dcff; 811 811 } … … 817 817 /* Dashboard unlock/promo styling */ 818 818 @media (prefers-color-scheme: dark) { 819 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-unlock {819 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-unlock { 820 820 background-color: #2d2d30; 821 821 color: #e0e0e0; … … 828 828 829 829 @media (prefers-color-scheme: dark) { 830 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-unlock-desc {830 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-unlock-desc { 831 831 color: #e0e0e0; 832 832 } … … 837 837 838 838 @media (prefers-color-scheme: dark) { 839 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-dashboard-unlock-desc span {839 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-dashboard-unlock-desc span { 840 840 color: #b3b3b3; 841 841 } … … 847 847 /* Navigation tabs */ 848 848 @media (prefers-color-scheme: dark) { 849 body[class*="litespeed "]:not(.litespeed-lightmode) .nav-tab {849 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .nav-tab { 850 850 background-color: #3e3e42; 851 851 border-color: #5a5a5d; … … 860 860 861 861 @media (prefers-color-scheme: dark) { 862 body[class*="litespeed "]:not(.litespeed-lightmode) .nav-tab:hover {862 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .nav-tab:hover { 863 863 background-color: #1e1e1e; 864 864 } … … 869 869 870 870 @media (prefers-color-scheme: dark) { 871 body[class*="litespeed "]:not(.litespeed-lightmode) .nav-tab-active {871 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .nav-tab-active { 872 872 background-color: #1e1e1e; 873 873 border-bottom-color: #1e1e1e; … … 883 883 /* Status indicators */ 884 884 @media (prefers-color-scheme: dark) { 885 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-success {885 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-success { 886 886 color: #46b450; 887 887 } … … 892 892 893 893 @media (prefers-color-scheme: dark) { 894 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-error {894 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-error { 895 895 color: #dc3232; 896 896 } … … 901 901 902 902 @media (prefers-color-scheme: dark) { 903 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-warning {903 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-warning { 904 904 color: #ffb900; 905 905 } … … 910 910 911 911 @media (prefers-color-scheme: dark) { 912 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-warning-bg {912 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-warning-bg { 913 913 background-color: #584007 !important; 914 914 color: #ffffff; … … 922 922 /* Footer */ 923 923 @media (prefers-color-scheme: dark) { 924 body[class*="litespeed "]:not(.litespeed-lightmode) #wpfooter {924 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) #wpfooter { 925 925 background-color: #2d2d30; 926 926 color: #e0e0e0; … … 934 934 /* Checkbox and radio inputs */ 935 935 @media (prefers-color-scheme: dark) { 936 body[class*="litespeed "]:not(.litespeed-lightmode) input[type="checkbox"],937 body[class*="litespeed "]:not(.litespeed-lightmode) input[type="radio"] {936 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type="checkbox"], 937 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) input[type="radio"] { 938 938 background-color: #2d2d30; 939 939 border: 1px solid #3e3e42; … … 948 948 /* Progress bars */ 949 949 @media (prefers-color-scheme: dark) { 950 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-progress {950 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-progress { 951 951 background-color: #3e3e42; 952 952 } … … 957 957 958 958 @media (prefers-color-scheme: dark) { 959 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-progress-bar {959 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-progress-bar { 960 960 background-color: #0073aa; 961 961 } … … 967 967 /* Litespeed tick buttons */ 968 968 @media (prefers-color-scheme: dark) { 969 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick {969 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick { 970 970 background-color: #2d2d30; 971 971 border: 1px solid #3e3e42; … … 980 980 981 981 @media (prefers-color-scheme: dark) { 982 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick:hover {982 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick:hover { 983 983 background-color: #404043; 984 984 border-color: #5a5a5d; … … 991 991 992 992 @media (prefers-color-scheme: dark) { 993 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick label {993 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick label { 994 994 color: #e0e0e0; 995 995 padding: 4px 8px; … … 1002 1002 1003 1003 @media (prefers-color-scheme: dark) { 1004 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick label:hover {1004 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick label:hover { 1005 1005 color: #72aee6; 1006 1006 } … … 1011 1011 1012 1012 @media (prefers-color-scheme: dark) { 1013 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick input[type='checkbox'] {1013 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick input[type='checkbox'] { 1014 1014 background-color: #2d2d30; 1015 1015 border: 2px solid #5a5a5d; … … 1022 1022 1023 1023 @media (prefers-color-scheme: dark) { 1024 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-tick input[type='checkbox']:checked {1024 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-tick input[type='checkbox']:checked { 1025 1025 background-color: #0073aa; 1026 1026 border-color: #0073aa; … … 1034 1034 /* Card headers */ 1035 1035 @media (prefers-color-scheme: dark) { 1036 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-card-header {1036 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-card-header { 1037 1037 background-color: #404043; 1038 1038 border-bottom: 1px solid #5a5a5d; … … 1048 1048 /* Card action buttons */ 1049 1049 @media (prefers-color-scheme: dark) { 1050 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-card-action .button-secondary:hover {1050 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-card-action .button-secondary:hover { 1051 1051 background-color: #484851; 1052 1052 border-color: #666; … … 1061 1061 1062 1062 @media (prefers-color-scheme: dark) { 1063 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-card-action .button-primary:hover {1063 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-card-action .button-primary:hover { 1064 1064 background-color: #005a87; 1065 1065 border-color: #004a73; … … 1074 1074 1075 1075 @media (prefers-color-scheme: dark) { 1076 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-h3,1077 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-panel-para {1076 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-h3, 1077 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-panel-para { 1078 1078 color: revert; 1079 1079 } … … 1086 1086 /* Text gradient for QUIC.cloud branding */ 1087 1087 @media (prefers-color-scheme: dark) { 1088 body[class*="litespeed "]:not(.litespeed-lightmode) .litespeed-qc-text-gradient {1088 body[class*="litespeed-cache_page_litespeed"]:not(.litespeed-lightmode) .litespeed-qc-text-gradient { 1089 1089 background: -webkit-linear-gradient(130deg, #ff69b4, #4db3e6 60%, #a5e7ff); 1090 1090 -webkit-background-clip: text; -
litespeed-cache/trunk/litespeed-cache.php
r3379192 r3380206 4 4 * Plugin URI: https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration 5 5 * Description: High-performance page caching and site optimization from LiteSpeed 6 * Version: 7.6. 16 * Version: 7.6.2 7 7 * Author: LiteSpeed Technologies 8 8 * Author URI: https://www.litespeedtech.com … … 36 36 } 37 37 38 ! defined( 'LSCWP_V' ) && define( 'LSCWP_V', '7.6. 1' );38 ! defined( 'LSCWP_V' ) && define( 'LSCWP_V', '7.6.2' ); 39 39 40 40 ! defined( 'LSCWP_CONTENT_DIR' ) && define( 'LSCWP_CONTENT_DIR', WP_CONTENT_DIR ); -
litespeed-cache/trunk/readme.txt
r3379192 r3380206 5 5 Requires PHP: 7.2 6 6 Tested up to: 6.8 7 Stable tag: 7.6. 17 Stable tag: 7.6.2 8 8 License: GPLv3 9 9 License URI: http://www.gnu.org/licenses/gpl.html … … 257 257 258 258 == Changelog == 259 260 = 7.6.2 - Oct 17 2025 = 261 * 🐞**Cloud** Fixed the PHP 8+ typecast issue in QUIC.cloud signature verification which caused activation failures. 262 * **Purge** Restored a delay purge hook while calling purge by CLI. (asafm7) 263 * **REST** Dropped legacy code that had been used for development purposes. 264 * **GUI** Use a stricter selector for dark mode to prevent side effects. 259 265 260 266 = 7.6.1 - Oct 15 2025 = -
litespeed-cache/trunk/src/admin-display.cls.php
r3379192 r3380206 330 330 1 331 331 ); 332 // Add unified body class for settings page and top-level page 333 add_filter( 'admin_body_class', function ( $classes ) { 334 $screen = get_current_screen(); 335 if ( $screen && in_array( $screen->id, [ 'settings_page_litespeed-cache-options', 'toplevel_page_litespeed' ], true ) ) { 336 $classes .= ' litespeed-cache_page_litespeed'; 337 } 338 return $classes; 339 } ); 332 340 } ); 333 341 } -
litespeed-cache/trunk/src/cloud.cls.php
r3379192 r3380206 593 593 594 594 // phpcs:ignore WordPress.Security.NonceVerification.Missing 595 $ts = !empty( $_POST['wpapi_ts'] ) ? (int) sanitize_text_field( wp_unslash( $_POST['wpapi_ts'] ) ) : 0;595 $ts = !empty( $_POST['wpapi_ts'] ) ? sanitize_text_field( wp_unslash( $_POST['wpapi_ts'] ) ) : ''; 596 596 // phpcs:ignore WordPress.Security.NonceVerification.Missing 597 597 $sig = !empty( $_POST['wpapi_signature_b64'] ) ? sanitize_text_field( wp_unslash( $_POST['wpapi_signature_b64'] ) ) : ''; … … 635 635 } 636 636 $signature = base64_decode( $signature_b64 ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode 637 $is_valid = sodium_crypto_sign_verify_detached( $signature, $data, $cloud_pk );637 $is_valid = sodium_crypto_sign_verify_detached( $signature, (string) $data, $cloud_pk ); 638 638 } catch ( \SodiumException $e ) { 639 639 self::debugErr( 'Decryption failed: ' . esc_html( $e->getMessage() ) ); … … 2080 2080 */ 2081 2081 public function is_from_cloud() { 2082 // return true;2083 2082 $check_point = time() - 86400 * self::TTL_IPS; 2084 2083 if ( empty( $this->_summary['ips'] ) || empty( $this->_summary['ips_ts'] ) || $this->_summary['ips_ts'] < $check_point ) { -
litespeed-cache/trunk/src/purge.cls.php
r3379049 r3380206 607 607 608 608 if ( defined( 'LITESPEED_CLI' ) ) { 609 // Can't send, already has output, need to save and wait for next run 610 self::update_option($purge2 ? self::DB_QUEUE2 : self::DB_QUEUE, $curr_built); 609 611 self::debug( 'CLI request, queue stored: ' . $curr_built ); 610 612 } else { -
litespeed-cache/trunk/src/rest.cls.php
r3352087 r3380206 1 1 <?php 2 // phpcs:ignoreFile3 4 2 /** 5 * The REST related class.3 * REST endpoints and helpers for LiteSpeed. 6 4 * 7 * @since 2.9.4 5 * @since 2.9.4 6 * @package LiteSpeed 8 7 */ 9 8 10 9 namespace LiteSpeed; 11 10 12 defined('WPINC') || exit(); 13 11 defined( 'WPINC' ) || exit(); 12 13 /** 14 * Class REST 15 * 16 * Registers plugin REST endpoints and exposes helpers for REST detection. 17 */ 14 18 class REST extends Root { 15 19 16 const LOG_TAG = '☎️'; 20 const LOG_TAG = '☎️'; 21 22 /** 23 * Whether current request is an internal REST call. 24 * 25 * @var bool 26 */ 17 27 private $_internal_rest_status = false; 18 28 19 29 /** 20 * Con fructor of ESI21 * 22 * @since 2.9.430 * Constructor. 31 * 32 * @since 2.9.4 23 33 */ 24 34 public function __construct() { 25 // Hook to internal REST call 26 add_filter( 'rest_request_before_callbacks', array( $this, 'set_internal_rest_on' ));27 add_filter( 'rest_request_after_callbacks', array( $this, 'set_internal_rest_off' ));28 29 add_action( 'rest_api_init', array( $this, 'rest_api_init' ));30 } 31 32 /** 33 * Register REST hooks34 * 35 * @since 3.036 * @ access public35 // Hook to internal REST call. 36 add_filter( 'rest_request_before_callbacks', [ $this, 'set_internal_rest_on' ] ); 37 add_filter( 'rest_request_after_callbacks', [ $this, 'set_internal_rest_off' ] ); 38 39 add_action( 'rest_api_init', [ $this, 'rest_api_init' ] ); 40 } 41 42 /** 43 * Register REST routes. 44 * 45 * @since 3.0 46 * @return void 37 47 */ 38 48 public function rest_api_init() { 39 49 // Activate or deactivate a specific crawler callback 40 register_rest_route( 'litespeed/v1', '/toggle_crawler_state', array(41 'methods' => 'POST',42 'callback' => array( $this, 'toggle_crawler_state' ),50 register_rest_route( 'litespeed/v1', '/toggle_crawler_state', [ 51 'methods' => 'POST', 52 'callback' => [ $this, 'toggle_crawler_state' ], 43 53 'permission_callback' => function () { 44 return current_user_can( 'manage_network_options') || current_user_can('manage_options');54 return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' ); 45 55 }, 46 ));47 48 register_rest_route( 'litespeed/v1', '/tool/check_ip', array(49 'methods' => 'GET',50 'callback' => array( $this, 'check_ip' ),56 ] ); 57 58 register_rest_route( 'litespeed/v1', '/tool/check_ip', [ 59 'methods' => 'GET', 60 'callback' => [ $this, 'check_ip' ], 51 61 'permission_callback' => function () { 52 return current_user_can( 'manage_network_options') || current_user_can('manage_options');62 return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' ); 53 63 }, 54 ));64 ] ); 55 65 56 66 // IP callback validate 57 register_rest_route( 'litespeed/v3', '/ip_validate', array(58 'methods' => 'POST',59 'callback' => array( $this, 'ip_validate' ),60 'permission_callback' => array( $this, 'is_from_cloud' ),61 ));67 register_rest_route( 'litespeed/v3', '/ip_validate', [ 68 'methods' => 'POST', 69 'callback' => [ $this, 'ip_validate' ], 70 'permission_callback' => [ $this, 'is_from_cloud' ], 71 ] ); 62 72 63 73 // 1.2. WP REST Dryrun Callback 64 register_rest_route( 'litespeed/v3', '/wp_rest_echo', array(65 'methods' => 'POST',66 'callback' => array( $this, 'wp_rest_echo' ),67 'permission_callback' => array( $this, 'is_from_cloud' ),68 ));69 register_rest_route( 'litespeed/v3', '/ping', array(70 'methods' => 'POST',71 'callback' => array( $this, 'ping' ),72 'permission_callback' => array( $this, 'is_from_cloud' ),73 ));74 register_rest_route( 'litespeed/v3', '/wp_rest_echo', [ 75 'methods' => 'POST', 76 'callback' => [ $this, 'wp_rest_echo' ], 77 'permission_callback' => [ $this, 'is_from_cloud' ], 78 ] ); 79 register_rest_route( 'litespeed/v3', '/ping', [ 80 'methods' => 'POST', 81 'callback' => [ $this, 'ping' ], 82 'permission_callback' => [ $this, 'is_from_cloud' ], 83 ] ); 74 84 75 85 // CDN setup callback notification 76 register_rest_route( 'litespeed/v3', '/cdn_status', array(77 'methods' => 'POST',78 'callback' => array( $this, 'cdn_status' ),79 'permission_callback' => array( $this, 'is_from_cloud' ),80 ));86 register_rest_route( 'litespeed/v3', '/cdn_status', [ 87 'methods' => 'POST', 88 'callback' => [ $this, 'cdn_status' ], 89 'permission_callback' => [ $this, 'is_from_cloud' ], 90 ] ); 81 91 82 92 // Image optm notify_img 83 93 // Need validation 84 register_rest_route( 'litespeed/v1', '/notify_img', array(85 'methods' => 'POST',86 'callback' => array( $this, 'notify_img' ),87 'permission_callback' => array( $this, 'is_from_cloud' ),88 ));89 90 register_rest_route( 'litespeed/v1', '/notify_ccss', array(91 'methods' => 'POST',92 'callback' => array( $this, 'notify_ccss' ),93 'permission_callback' => array( $this, 'is_from_cloud' ),94 ));95 96 register_rest_route( 'litespeed/v1', '/notify_ucss', array(97 'methods' => 'POST',98 'callback' => array( $this, 'notify_ucss' ),99 'permission_callback' => array( $this, 'is_from_cloud' ),100 ));101 102 register_rest_route( 'litespeed/v1', '/notify_vpi', array(103 'methods' => 'POST',104 'callback' => array( $this, 'notify_vpi' ),105 'permission_callback' => array( $this, 'is_from_cloud' ),106 ));107 108 register_rest_route( 'litespeed/v3', '/err_domains', array(109 'methods' => 'POST',110 'callback' => array( $this, 'err_domains' ),111 'permission_callback' => array( $this, 'is_from_cloud' ),112 ));94 register_rest_route( 'litespeed/v1', '/notify_img', [ 95 'methods' => 'POST', 96 'callback' => [ $this, 'notify_img' ], 97 'permission_callback' => [ $this, 'is_from_cloud' ], 98 ] ); 99 100 register_rest_route( 'litespeed/v1', '/notify_ccss', [ 101 'methods' => 'POST', 102 'callback' => [ $this, 'notify_ccss' ], 103 'permission_callback' => [ $this, 'is_from_cloud' ], 104 ] ); 105 106 register_rest_route( 'litespeed/v1', '/notify_ucss', [ 107 'methods' => 'POST', 108 'callback' => [ $this, 'notify_ucss' ], 109 'permission_callback' => [ $this, 'is_from_cloud' ], 110 ] ); 111 112 register_rest_route( 'litespeed/v1', '/notify_vpi', [ 113 'methods' => 'POST', 114 'callback' => [ $this, 'notify_vpi' ], 115 'permission_callback' => [ $this, 'is_from_cloud' ], 116 ] ); 117 118 register_rest_route( 'litespeed/v3', '/err_domains', [ 119 'methods' => 'POST', 120 'callback' => [ $this, 'err_domains' ], 121 'permission_callback' => [ $this, 'is_from_cloud' ], 122 ] ); 113 123 114 124 // Image optm check_img 115 125 // Need validation 116 register_rest_route( 'litespeed/v1', '/check_img', array(117 'methods' => 'POST',118 'callback' => array( $this, 'check_img' ),119 'permission_callback' => array( $this, 'is_from_cloud' ),120 ));126 register_rest_route( 'litespeed/v1', '/check_img', [ 127 'methods' => 'POST', 128 'callback' => [ $this, 'check_img' ], 129 'permission_callback' => [ $this, 'is_from_cloud' ], 130 ] ); 121 131 } 122 132 … … 127 137 */ 128 138 public function toggle_crawler_state() { 129 if (isset($_POST['crawler_id'])) { 130 return $this->cls('Crawler')->toggle_activeness($_POST['crawler_id']) ? 1 : 0; 131 } 132 } 133 134 /** 135 * Check if the request is from cloud nodes 139 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- REST API nonce verified by WordPress 140 $crawler_id = isset( $_POST['crawler_id'] ) ? sanitize_text_field( wp_unslash( $_POST['crawler_id'] ) ) : ''; 141 142 if ( $crawler_id ) { 143 return $this->cls( 'Crawler' )->toggle_activeness( $crawler_id ) ? 1 : 0; 144 } 145 } 146 147 /** 148 * Check if the request is from cloud nodes. 136 149 * 137 150 * @since 4.2 138 * @since 4.4.7 As there is always token/api key validation, ip validation is redundant 151 * @since 4.4.7 Token/API key validation makes IP validation redundant. 152 * @return bool 139 153 */ 140 154 public function is_from_cloud() { 141 // return true;142 return $this->cls('Cloud')->is_from_cloud();143 } 144 145 /**146 * Ping pong147 * 148 * @ since 3.0.4155 return $this->cls( 'Cloud' )->is_from_cloud(); 156 } 157 158 /** 159 * Ping pong. 160 * 161 * @since 3.0.4 162 * @return mixed 149 163 */ 150 164 public function ping() { 151 return $this->cls('Cloud')->ping(); 152 } 153 154 /** 155 * Launch api call 156 * 157 * @since 3.0 165 return $this->cls( 'Cloud' )->ping(); 166 } 167 168 /** 169 * Launch IP check. 170 * 171 * @since 3.0 172 * @return mixed 158 173 */ 159 174 public function check_ip() { … … 162 177 163 178 /** 164 * Launch api call 165 * 166 * @since 3.0 179 * Validate IPs from cloud. 180 * 181 * @since 3.0 182 * @return mixed 167 183 */ 168 184 public function ip_validate() { 169 return $this->cls('Cloud')->ip_validate(); 170 } 171 172 /** 173 * Launch api call 174 * 175 * @since 3.0 185 return $this->cls( 'Cloud' )->ip_validate(); 186 } 187 188 /** 189 * REST echo helper. 190 * 191 * @since 3.0 192 * @return mixed 176 193 */ 177 194 public function wp_rest_echo() { 178 return $this->cls('Cloud')->wp_rest_echo(); 179 } 180 181 /** 182 * Endpoint for QC to notify plugin of CDN status update. 183 * 184 * @since 7.0 195 return $this->cls( 'Cloud' )->wp_rest_echo(); 196 } 197 198 /** 199 * Endpoint to notify plugin of CDN status updates. 200 * 201 * @since 7.0 202 * @return mixed 185 203 */ 186 204 public function cdn_status() { 187 return $this->cls('Cloud')->update_cdn_status(); 188 } 189 190 /** 191 * Launch api call 192 * 193 * @since 3.0 205 return $this->cls( 'Cloud' )->update_cdn_status(); 206 } 207 208 /** 209 * Image optimization notification. 210 * 211 * @since 3.0 212 * @return mixed 194 213 */ 195 214 public function notify_img() { … … 198 217 199 218 /** 200 * @since 7.1 219 * Critical CSS notification. 220 * 221 * @since 7.1 222 * @return mixed 201 223 */ 202 224 public function notify_ccss() { 203 self::debug( 'notify_ccss');225 self::debug( 'notify_ccss' ); 204 226 return CSS::cls()->notify(); 205 227 } 206 228 207 229 /** 208 * @since 5.2 230 * Unique CSS notification. 231 * 232 * @since 5.2 233 * @return mixed 209 234 */ 210 235 public function notify_ucss() { 211 self::debug( 'notify_ucss');236 self::debug( 'notify_ucss' ); 212 237 return UCSS::cls()->notify(); 213 238 } 214 239 215 240 /** 216 * @since 4.7 241 * Viewport Images notification. 242 * 243 * @since 4.7 244 * @return mixed 217 245 */ 218 246 public function notify_vpi() { 219 self::debug( 'notify_vpi');247 self::debug( 'notify_vpi' ); 220 248 return VPI::cls()->notify(); 221 249 } 222 250 223 251 /** 224 * @since 4.7 252 * Error domain report from cloud. 253 * 254 * @since 4.7 255 * @return mixed 225 256 */ 226 257 public function err_domains() { 227 self::debug('err_domains'); 228 return $this->cls('Cloud')->rest_err_domains(); 229 } 230 231 /** 232 * Launch api call 233 * 234 * @since 3.0 258 self::debug( 'err_domains' ); 259 return $this->cls( 'Cloud' )->rest_err_domains(); 260 } 261 262 /** 263 * Launch image check. 264 * 265 * @since 3.0 266 * @return mixed 235 267 */ 236 268 public function check_img() { … … 239 271 240 272 /** 241 * Return error 242 * 243 * @since 5.7.0.1 273 * Return a standardized error payload. 274 * 275 * @since 5.7.0.1 276 * @param string|int $code Error code. 277 * @return array 244 278 */ 245 279 public static function err( $code ) { 246 return array(280 return [ 247 281 '_res' => 'err', 248 282 '_msg' => $code, 249 ); 250 } 251 252 /** 253 * Set internal REST tag to ON 254 * 255 * @since 2.9.4 256 * @access public 283 ]; 284 } 285 286 /** 287 * Set internal REST tag to ON. 288 * 289 * @since 2.9.4 290 * @param mixed $not_used Passthrough value from the filter. 291 * @return mixed 257 292 */ 258 293 public function set_internal_rest_on( $not_used = null ) { 259 294 $this->_internal_rest_status = true; 260 Debug2::debug2( '[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks');295 Debug2::debug2( '[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks' ); 261 296 262 297 return $not_used; … … 264 299 265 300 /** 266 * Set internal REST tag to OFF 267 * 268 * @since 2.9.4 269 * @access public 301 * Set internal REST tag to OFF. 302 * 303 * @since 2.9.4 304 * @param mixed $not_used Passthrough value from the filter. 305 * @return mixed 270 306 */ 271 307 public function set_internal_rest_off( $not_used = null ) { 272 308 $this->_internal_rest_status = false; 273 Debug2::debug2( '[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks');309 Debug2::debug2( '[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks' ); 274 310 275 311 return $not_used; … … 277 313 278 314 /** 279 * Get internal REST tag280 * 281 * @since 2.9.4282 * @ access public315 * Whether current request is an internal REST call. 316 * 317 * @since 2.9.4 318 * @return bool 283 319 */ 284 320 public function is_internal_rest() { … … 287 323 288 324 /** 289 * Check if an URL or current page is REST req or not 290 * 291 * @since 2.9.3 292 * @since 2.9.4 Moved here from Utility, dropped static 293 * @access public 325 * Check whether a URL or current page is a REST request. 326 * 327 * @since 2.9.3 328 * @since 2.9.4 Moved here from Utility, dropped static. 329 * @param string|false $url URL to check; when false checks current request. 330 * @return bool 294 331 */ 295 332 public function is_rest( $url = false ) { 296 // For WP 4.4.0- compatibility 297 if ( !function_exists('rest_get_url_prefix')) {298 return defined('REST_REQUEST') && REST_REQUEST;333 // For WP 4.4.0- compatibility. 334 if ( ! function_exists( 'rest_get_url_prefix' ) ) { 335 return ( defined( 'REST_REQUEST' ) && REST_REQUEST ); 299 336 } 300 337 301 338 $prefix = rest_get_url_prefix(); 302 339 303 // Case #1: After WP_REST_Request initiali sation304 if ( defined('REST_REQUEST') && REST_REQUEST) {340 // Case #1: After WP_REST_Request initialization. 341 if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { 305 342 return true; 306 343 } 307 344 308 // Case #2: Support "plain" permalink settings 309 if (isset($_GET['rest_route']) && strpos(trim($_GET['rest_route'], '\\/'), $prefix, 0) === 0) { 345 // Case #2: Support "plain" permalink settings. 346 // phpcs:ignore WordPress.Security.NonceVerification.Recommended 347 $route = isset( $_GET['rest_route'] ) ? sanitize_text_field( wp_unslash( $_GET['rest_route'] ) ) : ''; 348 349 if ( $route && 0 === strpos( trim( $route, '\\/' ), $prefix, 0 ) ) { 310 350 return true; 311 351 } 312 352 313 if ( !$url) {353 if ( !$url ) { 314 354 return false; 315 355 } 316 356 317 // Case #3: URL Path begins with wp-json/ (REST prefix) Safe for subfolder installation 318 $rest_url = wp_parse_url(site_url($prefix)); 319 $current_url = wp_parse_url($url); 320 // Debug2::debug( '[Util] is_rest check [base] ', $rest_url ); 321 // Debug2::debug( '[Util] is_rest check [curr] ', $current_url ); 322 // Debug2::debug( '[Util] is_rest check [curr2] ', wp_parse_url( add_query_arg( array( ) ) ) ); 323 if ($current_url !== false && !empty($current_url['path']) && $rest_url !== false && !empty($rest_url['path'])) { 324 return strpos($current_url['path'], $rest_url['path']) === 0; 357 // Case #3: URL path begins with wp-json/ (REST prefix) – safe for subfolder installs. 358 $rest_url = wp_parse_url( site_url( $prefix ) ); 359 $current_url = wp_parse_url( $url ); 360 361 if ( false !== $current_url && ! empty( $current_url['path'] ) && false !== $rest_url && ! empty( $rest_url['path'] ) ) { 362 return 0 === strpos( $current_url['path'], $rest_url['path'] ); 325 363 } 326 364 -
litespeed-cache/trunk/tpl/toolbox/beta_test.tpl.php
r3379192 r3380206 15 15 // List of available public versions 16 16 $v_list = array( 17 '7.6.2', 17 18 '7.6.1', 18 19 '7.6', 19 20 '7.5.0.1', 20 '7.5',21 21 '7.4', 22 22 '7.3.0.1',
Note: See TracChangeset
for help on using the changeset viewer.