$sanitizer_args ) { if ( ! class_exists( $sanitizer_class ) ) { /* translators: %s is sanitizer class */ _doing_it_wrong( __METHOD__, sprintf( esc_html__( 'Sanitizer (%s) class does not exist', 'amp' ), esc_html( $sanitizer_class ) ), '0.4.1' ); continue; } /** * Sanitizer. * * @type AMP_Base_Sanitizer $sanitizer */ $sanitizer = new $sanitizer_class( $dom, array_merge( $args, $sanitizer_args ) ); if ( ! is_subclass_of( $sanitizer, 'AMP_Base_Sanitizer' ) ) { _doing_it_wrong( __METHOD__, esc_html( sprintf( /* translators: 1: sanitizer class. 2: AMP_Base_Sanitizer */ __( 'Sanitizer (%1$s) must extend `%2$s`', 'amp' ), esc_html( $sanitizer_class ), 'AMP_Base_Sanitizer' ) ), '0.1' ); continue; } $sanitizers[ $sanitizer_class ] = $sanitizer; } // Let the sanitizers know about each other prior to sanitizing. foreach ( $sanitizers as $sanitizer ) { $sanitizer->init( $sanitizers ); } // Sanitize. foreach ( $sanitizers as $sanitizer_class => $sanitizer ) { $sanitize_class_start = microtime( true ); $sanitizer->sanitize(); $scripts = array_merge( $scripts, $sanitizer->get_scripts() ); if ( $return_styles ) { $styles = array_merge( $styles, $sanitizer->get_styles() ); } else { $stylesheets = array_merge( $stylesheets, $sanitizer->get_stylesheets() ); } AMP_HTTP::send_server_timing( 'amp_sanitize', -$sanitize_class_start, $sanitizer_class ); } return compact( 'scripts', 'styles', 'stylesheets' ); } }