diff --git a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php index 4571a09b3a..59c1f3ea80 100644 --- a/inc/Engine/Media/AboveTheFold/AJAX/Controller.php +++ b/inc/Engine/Media/AboveTheFold/AJAX/Controller.php @@ -153,22 +153,6 @@ private function create_object( $image, $keys ) { $object = new \stdClass(); $object->type = $image->type ?? 'img'; - if ( is_array( $image->src ) ) { - $sanitized_object_array = array_map( - function ( $item ) { - if ( ! empty( $item->src ) ) { - $item->src = $this->sanitize_image_url( $item->src ); - } - return $item; - }, - $image->src - ); - - $object->src = $sanitized_object_array; - } elseif ( ! empty( $image->src ) ) { - $object->src = $this->sanitize_image_url( $image->src ); - } - switch ( $object->type ) { case 'img-srcset': // If the type is 'img-srcset', add all the required parameters to the object. @@ -209,6 +193,13 @@ function ( $item ) { return null; } + // Returned objects must always have a src for front-end optimization. + // Except bg-img and bg-img-set for which we use bg_set only. + // To keep it simple and safe for now, we enforce src for all, pending a refactor. + if ( ! isset( $object->src ) ) { + $object->src = ''; + } + return $object; } diff --git a/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addLcpData.php b/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addLcpData.php index 4e403d227a..2266c2c9c2 100644 --- a/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addLcpData.php +++ b/tests/Fixtures/inc/Engine/Media/AboveTheFold/AJAX/Controller/addLcpData.php @@ -324,7 +324,6 @@ 'lcp' => json_encode( (object) [ 'type' => 'bg-img', - 'src' => 'http://example.org/lcp.jpg', 'bg_set' => [ [ 'src' => 'http://example.org/anotherlcp.jpg' @@ -332,7 +331,8 @@ [ 'src' => 'http://example.org/anotherlcp2.jpg' ], - ] + ], + 'src' => '' ], ), 'viewport' => json_encode( [ @@ -352,15 +352,15 @@ 'lcp' => json_encode( (object) [ 'type' => 'bg-img', - 'src' => 'http://example.org/lcp.jpg', 'bg_set' => [ [ - 'src' => 'http://example.org/anotherlcp.jpg' + 'src' => 'http://example.org/anotherlcp.jpg' ], [ 'src' => 'http://example.org/anotherlcp2.jpg' ], - ] + ], + 'src' => '' ], ), 'viewport' => json_encode( [ @@ -418,14 +418,6 @@ 'lcp' => json_encode( (object) [ 'type' => 'bg-img-set', - 'src' => [ - [ - 'src' => 'http://example.org/lcp.jpg' - ], - [ - 'src' => 'http://example.org/random.jpg' - ] - ], 'bg_set' => [ [ 'src' => 'http://example.org/anotherlcp.jpg' @@ -433,7 +425,8 @@ [ 'src' => 'http://example.org/anotherlcp2.jpg' ], - ] + ], + 'src' => '' ], ), 'viewport' => json_encode( [ @@ -453,14 +446,6 @@ 'lcp' => json_encode( (object) [ 'type' => 'bg-img-set', - 'src' => [ - [ - 'src' => 'http://example.org/lcp.jpg' - ], - [ - 'src' => 'http://example.org/random.jpg' - ] - ], 'bg_set' => [ [ 'src' => 'http://example.org/anotherlcp.jpg' @@ -468,7 +453,8 @@ [ 'src' => 'http://example.org/anotherlcp2.jpg' ], - ] + ], + 'src' => '' ], ), 'viewport' => json_encode( [