class-script-strategy.php

Script loading strategy — defer rendering + delay-JS decisions and data.

Source includes/Assets/class-script-strategy.php15 min readPart of Performance Optimisation

includes/Assets/class-script-strategy.php

Script loading strategy — defer rendering + delay-JS decisions and data.

Namespace: PerformanceOptimise\\Inc · Lines: 3850

Class Script_Strategy

Class Script_Strategy

Source: includes/Assets/class-script-strategy.php, line 55

final class Script_Strategy

Tags: @since 2.4.0

Properties

PropertyVisibilityTypeDefaultLine
$mainprivateMain—67
$delay_pattern_regex_cacheprivate staticarrayarray()92
$delay_excluded_context_memoprivate static?boolnull106
$delay_excluded_context_memo_sigprivate staticstring\'\'114
$delay_js_third_party_auto_cacheprivate static?arraynull126
$delay_js_third_party_auto_cache_blogprivate staticint0138
$delay_js_third_party_auto_handle_segmentsprivate staticarrayarray()150
$delay_js_third_party_auto_handle_reprivate staticstring\'\'158
$delay_js_third_party_auto_handle_keyprivate static?stringnull168
$delay_js_auto_label_commerceprivate static?arraynull183
$delay_js_auto_label_categoriesprivate static?arraynull193
$delay_js_auto_label_blogprivate staticint0201

public __construct()

public function __construct(Main $main)

Constructor.

ParameterTypeDefaultDescription
$mainMain—Main instance (hook-state + settings owner).

Tags: @since 2.4.0

Source: includes/Assets/class-script-strategy.php, line 75

public remove_woocommerce_scripts()

public function remove_woocommerce_scripts()

Dequeues configured WooCommerce CSS and JS handles unless the current URL is excluded.

Tags: @since 1.0.0 Relocated from Main::remove_woocommerce_scripts() (ARCH-005).

Source: includes/Assets/class-script-strategy.php, line 214

publicstatic supports_native_defer_strategy()

public static function supports_native_defer_strategy(): bool

Whether the native WP 6.3+ script loading strategy API can be used.

Return: bool — True when the native defer strategy path is allowed. Relocated from Main::supports_native_defer_strategy() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 286

publicstatic supports_native_script_fetchpriority()

public static function supports_native_script_fetchpriority(): bool

Whether the native WP 6.9+ script fetchpriority API can be used.

Return: bool — True when the native fetchpriority path is allowed. Relocated from Main::supports_native_script_fetchpriority() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 321

public is_defer_eligible_for_handle()

public function is_defer_eligible_for_handle(object $wp_scripts, string $handle, array=array() $intended, array&=array() $checked): bool

Whether a queued handle is eligible for a deferred loading strategy.

ParameterTypeDefaultDescription
$wp_scriptsobject—WP_Scripts registry.
$handlestring—Script handle.
$intendedarray=array()—Handles this run intends to defer (pass the interactivity guard and exclusion list). Defaults to empty for direct calls.
$checkedarray&=array()—Visited handles for the recursion guard (mirrors core\’s $checked). Callers leave this at its default; a fresh map is used per top-level evaluation.

Return: bool — True when the handle may receive strategy defer. Relocated from Main::is_defer_eligible_for_handle() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 372

publicstatic should_use_core_template_buffer()

public static function should_use_core_template_buffer(): bool

Whether the WP 6.9+ core template-enhancement buffer should carry plugin post-processing.

Return: bool — True when the core template-enhancement buffer path is allowed. Relocated to Preload_Buffer_Coordinator in P3-015; retained as a compatibility proxy for existing Script_Strategy callers.

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 499

public get_filtered_deferred_fetchpriority()

public function get_filtered_deferred_fetchpriority(string $handle): string

Resolve the filtered fetchpriority for a deferred handle.

ParameterTypeDefaultDescription
$handlestring—Script handle or module id.

Return: string — Validated \’high\’|\’low\’|\’auto\’, or \’\’ to suppress. Relocated from Main::get_filtered_deferred_fetchpriority() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 520

public function should_move_deferred_to_footer(string $handle): bool

Whether a deferred handle should be moved to the footer.

ParameterTypeDefaultDescription
$handlestring—Script handle or module id.

Return: bool — True when the handle should be footer-bound. Relocated from Main::should_move_deferred_to_footer() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 566

public add_defer_strategy()

public function add_defer_strategy(): void

Applies defer strategy to non-logged-in users\’ scripts using wp_script_add_data.

Return: void — Relocated from Main::add_defer_strategy() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 615

public is_executable_script_type()

public function is_executable_script_type(string $tag): bool

Whether a script tag\’s type attribute is executable JavaScript.

ParameterTypeDefaultDescription
$tagstring—The script tag markup.

Return: bool — True when the tag may be delay-rewritten. Relocated from Main::is_executable_script_type() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 788

public add_defer_attribute()

public function add_defer_attribute($tag, $handle): string

Adds defer attribute to non-logged-in users\’ scripts.

ParameterTypeDefaultDescription
$tagstring—The script tag HTML.
$handlestring—The script\’s registered handle.

Return: string — Modified script tag with defer attribute. Relocated from Main::add_defer_attribute() (ARCH-005).

Tags: @since 1.0.0

Source: includes/Assets/class-script-strategy.php, line 823

public add_defer_attribute_legacy()

public function add_defer_attribute_legacy($tag, $handle): string

Adds the defer attribute to script tags on WordPress < 6.3.

ParameterTypeDefaultDescription
$tagstring—The script tag HTML.
$handlestring—The script\’s registered handle.

Return: string — Modified script tag with the defer attribute. Relocated from Main::add_defer_attribute_legacy() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 1050

public matches_delay_pattern()

public function matches_delay_pattern(string $handle, string $pattern): bool

Check whether a script handle matches a delay pattern using word boundaries.

ParameterTypeDefaultDescription
$handlestring—The script handle.
$patternstring—The configured pattern (handle or URL).

Return: bool — True if the handle matches the pattern. Relocated from Main::matches_delay_pattern() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 1129

privatestatic get_delay_patterns_regex()

private static function get_delay_patterns_regex(array $patterns): string

Build (once per request) a combined alternation regex for a pattern list.

ParameterTypeDefaultDescription
$patternsarray—Pattern list.

Return: string — Empty string when no usable patterns; otherwise a ready regex. Relocated from Main::get_delay_patterns_regex() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1144

public matches_any_delay_pattern()

public function matches_any_delay_pattern(string $handle, array $patterns): bool

Whether a handle matches any pattern in a list via the precompiled alternation.

ParameterTypeDefaultDescription
$handlestring—Script handle.
$patternsarray—Pattern list.

Return: bool — True on match. Relocated from Main::matches_any_delay_pattern() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1183

public is_delay_excluded_handle()

public function is_delay_excluded_handle(string $handle): bool

Whether a script handle is excluded from Delay JS.

ParameterTypeDefaultDescription
$handlestring—The script\’s registered handle.

Return: bool — True when the handle must stay un-delayed. Relocated from Main::is_delay_excluded_handle() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1222

public get_delay_exclusions()

public function get_delay_exclusions(): array

Delay-JS exclusions with `wppo_exclude_delay_js` applied on first use.

Return: array<int, — string> Relocated from Main::get_delay_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 1306

publicstatic is_delay_excluded_context()

public static function is_delay_excluded_context(): bool

Whether the current request must skip delay-JS rewriting.

Return: bool — True when delay must be skipped for this request. Relocated from Main::is_delay_excluded_context() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1373

privatestatic delay_context_request_signature()

private static function delay_context_request_signature(): string

Signature of the request inputs that drive the delay-context verdict.

Return: string — Signature string. Relocated from Main::delay_context_request_signature() (ARCH-005).

Tags: @since 2.0.0 · @since 2.4.0 Blog-keyed signature (ARCH-005 multisite correction).

Source: includes/Assets/class-script-strategy.php, line 1411

publicstatic reset_delay_context_memo()

public static function reset_delay_context_memo(): void

Reset the per-request delay-context memo (for tests).

Return: void — Relocated from Main::reset_delay_context_memo() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1436

privatestatic compute_delay_excluded_context()

private static function compute_delay_excluded_context(): bool

Compute whether the current request must skip delay-JS rewriting.

Return: bool — True when delay must be skipped for this request. Relocated from Main::compute_delay_excluded_context() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1454

privatestatic matches_woo_page_path()

private static function matches_woo_page_path(string $local_path): bool

Whether a request path belongs to a WooCommerce cart/checkout/account page.

ParameterTypeDefaultDescription
$local_pathstring—Request path with a leading slash.

Return: bool — True when the path is a Woo page path. Relocated from Main::matches_woo_page_path() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1632

public get_delay_strategy_for_handle()

public function get_delay_strategy_for_handle(string $handle, string=\'\' $tag, ?bool=null $is_auto_matched): string

Get the delay strategy for a given script handle.

ParameterTypeDefaultDescription
$handlestring—The script handle.
$tagstring=\'\'—Optional script tag markup (for auto-mode src matching).
$is_auto_matched?bool=null—Optional precomputed auto-candidate verdict.

Return: string — The strategy: \’interaction\’, \’idle\’, or \’viewport\’. Relocated from Main::get_delay_strategy_for_handle() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 1695

public get_delay_priority_for_handle()

public function get_delay_priority_for_handle(string $handle): string

Get the delay priority for a given script handle.

ParameterTypeDefaultDescription
$handlestring—The script handle.

Return: string — The priority: \’high\’, \’normal\’, or \’low\’. Relocated from Main::get_delay_priority_for_handle() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 1756

public apply_per_page_delay_config()

public function apply_per_page_delay_config(): void

Apply per-page delay configuration overrides from the Asset Manager metabox.

Return: void — Relocated from Main::apply_per_page_delay_config() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 1784

publicstatic get_delay_js_builder_exclusions()

public static function get_delay_js_builder_exclusions(): array

Curated per-builder Delay JS exclusions (issue #966).

Return: string[] — Relocated from Main::get_delay_js_builder_exclusions() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1934

publicstatic get_delay_js_commerce_exclusions()

public static function get_delay_js_commerce_exclusions(): array

Curated commerce Delay JS exclusions (issue #988).

Return: string[] — Relocated from Main::get_delay_js_commerce_exclusions() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 1996

publicstatic get_delay_js_slider_exclusions()

public static function get_delay_js_slider_exclusions(): array

Curated slider Delay JS exclusions (issue #988).

Return: string[] — Relocated from Main::get_delay_js_slider_exclusions() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 2039

publicstatic get_delay_js_interaction_exclusions()

public static function get_delay_js_interaction_exclusions(): array

Curated first-click interaction Delay JS exclusions (issue #1055).

Return: string[] — Relocated from Main::get_delay_js_interaction_exclusions() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 2076

publicstatic get_delay_js_preset_levels()

public static function get_delay_js_preset_levels(): array

One-click Delay-JS preset levels (issue #1385).

Return: string[] — Relocated from Main::get_delay_js_preset_levels() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 2115

publicstatic get_delay_js_preset_level_settings()

public static function get_delay_js_preset_level_settings(string $level): array

Toggle map applied by a one-click Delay-JS preset level (issue #1385).

ParameterTypeDefaultDescription
$levelstring—Preset level (safe|balanced|aggressive).

Return: array<string, — bool> Relocated from Main::get_delay_js_preset_level_settings() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 2133

publicstatic get_delay_js_preset_level_exclusions()

public static function get_delay_js_preset_level_exclusions(string $level): array

Merged exclusion list for a one-click Delay-JS preset level (issue #1385).

ParameterTypeDefaultDescription
$levelstring—Preset level (safe|balanced|aggressive).

Return: string[] — Relocated from Main::get_delay_js_preset_level_exclusions() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 2218

privatestatic filter_compat_preset_list()

private static function filter_compat_preset_list(string $filter, array $preset): array

Apply a preset exclusion filter with fail-open guards (issue #1308).

ParameterTypeDefaultDescription
$filterstring—Filter hook name.
$presetarray—Curated preset exclusions.

Return: string[] — Relocated from Main::filter_compat_preset_list() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2338

public static function get_delay_js_consent_exclusions(): array

Curated consent Delay JS exclusions (issue #1308).

Return: string[] — Relocated from Main::get_delay_js_consent_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2387

publicstatic get_delay_js_analytics_exclusions()

public static function get_delay_js_analytics_exclusions(): array

Curated analytics Delay JS exclusions (issue #1308).

Return: string[] — Relocated from Main::get_delay_js_analytics_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2426

public static function get_delay_js_gallery_exclusions(): array

Curated gallery Delay JS exclusions (issue #1308).

Return: string[] — Relocated from Main::get_delay_js_gallery_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2464

publicstatic get_delay_js_jquery_exclusions()

public static function get_delay_js_jquery_exclusions(): array

Curated jQuery-legacy Delay JS exclusions (issue #1308).

Return: string[] — Relocated from Main::get_delay_js_jquery_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2499

publicstatic get_delay_js_compat_preset_map()

public static function get_delay_js_compat_preset_map(): array

Compat preset slugs keyed by their settings key (issue #1308).

Return: array<string, — string> Relocated from Main::get_delay_js_compat_preset_map() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2526

publicstatic get_delay_js_compat_preset_exclusions()

public static function get_delay_js_compat_preset_exclusions(string $slug): array

Exclusion list for one compat preset slug (issue #1308).

ParameterTypeDefaultDescription
$slugstring—Preset slug (consent|analytics|gallery|jquery).

Return: string[] — Relocated from Main::get_delay_js_compat_preset_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2547

publicstatic get_delay_js_third_party_denylist()

public static function get_delay_js_third_party_denylist(): array

Curated third-party Delay-JS denylist (one-click delay, issue #1217).

Return: string[] — Relocated from Main::get_delay_js_third_party_denylist() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2596

publicstatic get_delay_js_third_party_allowlist_for_slice()

public static function get_delay_js_third_party_allowlist_for_slice(array $file_opt): array

Parse the user-configured third-party allowlist for a settings slice.

ParameterTypeDefaultDescription
$file_optarray—Effective file_optimisation slice.

Return: string[] — Relocated from Main::get_delay_js_third_party_allowlist_for_slice() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2696

public get_delay_js_third_party_allowlist()

public function get_delay_js_third_party_allowlist(): array

Parse the user-configured third-party allowlist (wins over denylist).

Return: string[] — Relocated from Main::get_delay_js_third_party_allowlist() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2820

public is_delay_third_party_candidate()

public function is_delay_third_party_candidate(string $tag, string $handle): bool

Whether a script tag/handle is a third-party delay candidate.

ParameterTypeDefaultDescription
$tagstring—Script tag markup.
$handlestring—Script handle.

Return: bool — True when the script should be delayed in third-party mode. Relocated from Main::is_delay_third_party_candidate() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2852

publicstatic is_same_site_script_host()

public static function is_same_site_script_host(string $a, string $b): bool

Whether two script hosts belong to the same site (issue #1217 review).

ParameterTypeDefaultDescription
$astring—First host.
$bstring—Second host.

Return: bool — True when both hosts belong to the same site. Relocated from Main::is_same_site_script_host() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 2953

publicstatic get_delay_js_third_party_auto_categories()

public static function get_delay_js_third_party_auto_categories(): array

Labelled auto third-party vendor categories (issue #1385).

Return: array<string, — string[]> Relocated from Main::get_delay_js_third_party_auto_categories() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 2991

publicstatic get_delay_js_third_party_auto_label()

public static function get_delay_js_third_party_auto_label(string $src_or_handle): string

Label a script src/handle with its auto third-party category (issue #1385).

ParameterTypeDefaultDescription
$src_or_handlestring—Script src URL, tag markup, or handle.

Return: string — Category label or empty string. Relocated from Main::get_delay_js_third_party_auto_label() (ARCH-005).

Tags: @since 2.3.0

Source: includes/Assets/class-script-strategy.php, line 3085

publicstatic reset_delay_third_party_auto_cache()

public static function reset_delay_third_party_auto_cache(): void

Reset the auto third-party pattern memo (for tests).

Return: void — Relocated from Main::reset_delay_third_party_auto_cache() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3156

publicstatic get_delay_js_third_party_auto_patterns()

public static function get_delay_js_third_party_auto_patterns(): array

Curated known-vendor URL patterns for auto third-party delay (#1314).

Return: string[] — Relocated from Main::get_delay_js_third_party_auto_patterns() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3187

publicstatic matches_third_party_auto_pattern()

public static function matches_third_party_auto_pattern(string $handle, string $tag): bool

Whether a handle/tag matches the curated auto third-party patterns (#1314).

ParameterTypeDefaultDescription
$handlestring—Script handle (may be empty on buffered paths).
$tagstring—Script tag markup or src URL.

Return: bool — True on match. Relocated from Main::matches_third_party_auto_pattern() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3312

public is_delay_third_party_auto_candidate()

public function is_delay_third_party_auto_candidate(string $tag, string $handle): bool

Whether a script tag/handle is an auto third-party delay candidate (#1314).

ParameterTypeDefaultDescription
$tagstring—Script tag markup.
$handlestring—Script handle.

Return: bool — True when the script should be delayed in auto mode. Relocated from Main::is_delay_third_party_auto_candidate() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3430

privatestatic inject_delay_script_attr()

private static function inject_delay_script_attr(string $tag, string $insert): string

Inject an attribute string into a script open tag (issue #1217 review).

ParameterTypeDefaultDescription
$tagstring—Script tag markup.
$insertstring—Attribute string including trailing space, e.g. \’fetchpriority=\”low\” \’.

Return: string — Tag with the attributes injected. Relocated from Main::inject_delay_script_attr() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3524

publicstatic get_delay_js_base_preset_exclusions()

public static function get_delay_js_base_preset_exclusions(): array

Base Delay JS preset exclusions (always applied, issue #966).

Return: string[] — Relocated from Main::get_delay_js_base_preset_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3547

privatestatic get_delay_js_protected_exclusions()

private static function get_delay_js_protected_exclusions(array $file_opt): array

Manual + safe exclusions a per-page preset opt-out must never strip (issue #1308).

ParameterTypeDefaultDescription
$file_optarray—file_optimisation settings slice.

Return: string[] — Relocated from Main::get_delay_js_protected_exclusions() (ARCH-005).

Tags: @since 2.2.0

Source: includes/Assets/class-script-strategy.php, line 3597

public get_delay_js_preset_exclusions()

public function get_delay_js_preset_exclusions(): array

Get curated delay JS preset exclusions (jquery, recaptcha, stripe, analytics, etc.).

Return: string[] — Relocated from Main::get_delay_js_preset_exclusions() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 3652

public is_delay_js_safe_context()

public function is_delay_js_safe_context(): bool

Whether Delay-JS must be skipped for the current request (fail-open safe context).

Return: bool — True when Delay-JS must be skipped. Relocated from Main::is_delay_js_safe_context() (ARCH-005).

Tags: @since 2.0.0

Source: includes/Assets/class-script-strategy.php, line 3765

public add_fetchpriority_to_deferred()

public function add_fetchpriority_to_deferred($tag, $handle): string

Adds fetchpriority to rendered script tags for deferred handles.

ParameterTypeDefaultDescription
$tagstring—The script tag HTML.
$handlestring—The script\’s registered handle.

Return: string — Modified script tag with fetchpriority. Relocated from Main::add_fetchpriority_to_deferred() (ARCH-005).

Tags: @since 1.9.0

Source: includes/Assets/class-script-strategy.php, line 3835

Hooks

Hooks referenced in includes/Assets/class-script-strategy.php:

HookTypeLineNotes
wppo_deferred_fetchpriorityfilter537@param ×2
wppo_deferred_in_footerfilter583@param ×2
wppo_exclude_delay_jsfilter1315—
wppo_delay_js_preset_level_settingsfilter2175—
wppo_delay_js_preset_level_exclusionsfilter2287—
wppo_delay_js_third_party_denylistfilter2654—
wppo_delay_js_third_party_allowlistfilter2752—
wppo_delay_js_third_party_auto_categoriesfilter3042—
wppo_delay_js_third_party_auto_patternsfilter3261—
wppo_delay_js_exclusionsfilter3727—