Skip to content

Commit da9b8bc

Browse files
committed
Update Jetpack plugin from 16.1 to 16.1.1
1 parent 6303f61 commit da9b8bc

247 files changed

Lines changed: 156 additions & 68709 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎wp-content/plugins/jetpack/CHANGELOG.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
### This is a list detailing changes for all Jetpack releases.
44

5+
## 16.1.1 - 2026-08-11
6+
### Bug fixes
7+
- Error Handler: Prevent a fatal error when a request runs during a plugin update and an older version of the Error_Handler class is already loaded.
8+
9+
### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
10+
- Remove Reprint full-site export support and its `jetpack/v4` REST routes. [#51179]
11+
512
## 16.1 - 2026-08-10
613
### Enhancements
714
- Account Protection: Add additional context to Verify your identity page to reduce user confusion. [#50338]

‎wp-content/plugins/jetpack/class.jetpack.php‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -796,13 +796,6 @@ function () {
796796
// Jetpack plugin for now: the Connection package no longer auto-wires these, so
797797
// connection-only consumers (Boost, Protect, Search, etc.) do not register them yet.
798798
\Automattic\Jetpack\Connection\Abilities\Connection_Abilities::init();
799-
800-
// Register Reprint export support on Pressable and WordPress.com (Atomic)
801-
// hosts (overridable via the `jetpack_reprint_export_available` filter), so
802-
// generic self-hosted Jetpack sites never expose the export endpoint.
803-
if ( \Automattic\Jetpack\Reprint_Export\Reprint_Exporter::is_available() ) {
804-
\Automattic\Jetpack\Reprint_Export\Reprint_Exporter::init();
805-
}
806799
}
807800

808801
/**

‎wp-content/plugins/jetpack/composer.json‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"automattic/jetpack-compat": "^4.0.4",
2828
"automattic/jetpack-composer-plugin": "^4.0.9",
2929
"automattic/jetpack-config": "^3.1.3",
30-
"automattic/jetpack-connection": "^8.8.2",
30+
"automattic/jetpack-connection": "^8.9.0.1",
3131
"automattic/jetpack-constants": "^3.0.12",
3232
"automattic/jetpack-device-detection": "^3.4.5",
3333
"automattic/jetpack-error": "^3.0.10",
@@ -63,8 +63,7 @@
6363
"automattic/jetpack-videopress": "^0.45.0",
6464
"automattic/jetpack-waf": "^0.28.11",
6565
"automattic/jetpack-wp-abilities": "^0.1.5",
66-
"automattic/woocommerce-analytics": "^0.16",
67-
"wp-php-toolkit/reprint-exporter": "^0.9.1"
66+
"automattic/woocommerce-analytics": "^0.16"
6867
},
6968
"require-dev": {
7069
"antecedent/patchwork": "^2.2",
@@ -100,11 +99,6 @@
10099
"autoload": {
101100
"classmap": [
102101
"src"
103-
],
104-
"exclude-from-classmap": [
105-
"vendor/wp-php-toolkit/data-liberation/vendor-patched/psr/log/",
106-
"vendor/wp-php-toolkit/data-liberation/vendor-patched/rowbot/",
107-
"vendor/wp-php-toolkit/data-liberation/vendor-patched/brick/"
108102
]
109103
},
110104
"minimum-stability": "dev",
@@ -114,7 +108,7 @@
114108
"platform": {
115109
"ext-intl": "0.0.0"
116110
},
117-
"autoloader-suffix": "f11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ16_1",
111+
"autoloader-suffix": "f11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ16_1_1",
118112
"allow-plugins": {
119113
"automattic/jetpack-autoloader": true,
120114
"automattic/jetpack-composer-plugin": true

‎wp-content/plugins/jetpack/jetpack.php‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Plugin URI: https://jetpack.com
55
* Description: Security, performance, and marketing tools made by WordPress experts. Jetpack keeps your site protected so you can focus on more important things.
66
* Author: Automattic
7-
* Version: 16.1
7+
* Version: 16.1.1
88
* Author URI: https://jetpack.com
99
* License: GPL2+
1010
* Text Domain: jetpack
@@ -37,7 +37,7 @@
3737

3838
if ( ! defined( 'JETPACK__VERSION' ) ) {
3939
// This breaks the project version checks when a one-liner.
40-
define( 'JETPACK__VERSION', '16.1' );
40+
define( 'JETPACK__VERSION', '16.1.1' );
4141
}
4242
defined( 'JETPACK__MINIMUM_WP_VERSION' ) || define( 'JETPACK__MINIMUM_WP_VERSION', '6.9' );
4343
defined( 'JETPACK__MINIMUM_PHP_VERSION' ) || define( 'JETPACK__MINIMUM_PHP_VERSION', '7.2' );

‎wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/CHANGELOG.md‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [8.9.0.1] - 2026-08-11
9+
### Fixed
10+
- Error Handler: Prevent a fatal error when a request runs during a plugin update and an older version of the Error_Handler class is already loaded. [#51173]
11+
812
## [8.9.0] - 2026-08-06
913
### Changed
10-
- Error Handler: Standardize the stored connection error structure with explicit error type and direction fields, store local connection-state errors as 'local_state' instead of 'connection', and store previously dropped signature verification errors, which can now surface connection error notices. [#50992]
14+
- Error Handler: Standardize the stored connection error structure with explicit error type and direction fields. [#50992]
1115

1216
## [8.8.2] - 2026-08-03
1317
### Changed
@@ -1978,6 +1982,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19781982

19791983
- Separate the connection library into its own package.
19801984

1985+
[8.9.0.1]: https://github.com/Automattic/jetpack-connection/compare/v8.9.0...v8.9.0.1
19811986
[8.9.0]: https://github.com/Automattic/jetpack-connection/compare/v8.8.2...v8.9.0
19821987
[8.8.2]: https://github.com/Automattic/jetpack-connection/compare/v8.8.1...v8.8.2
19831988
[8.8.1]: https://github.com/Automattic/jetpack-connection/compare/v8.8.0...v8.8.1

‎wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-client.php‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@ public static function remote_request( $args, $body = null ) {
5151
// class docblock for the full picture of both error-handling flows.
5252
// Outgoing XML-RPC calls (Jetpack_IXR_Client) are funneled through this method too;
5353
// tell the transports apart by the endpoint the request targets.
54+
// The literals match Error_Handler::ERROR_TYPE_XMLRPC / ERROR_TYPE_REST. The constants
55+
// themselves must not be referenced from this class: during a plugin update, a stale
56+
// Error_Handler that predates them can already be loaded, and resolving them against
57+
// it would fatal the request.
5458
$request_path = (string) wp_parse_url( empty( $args['url'] ) ? '' : $args['url'], PHP_URL_PATH );
55-
$error_type = '/xmlrpc.php' === substr( $request_path, -strlen( '/xmlrpc.php' ) )
56-
? Error_Handler::ERROR_TYPE_XMLRPC
57-
: Error_Handler::ERROR_TYPE_REST;
59+
$error_type = '/xmlrpc.php' === substr( $request_path, -strlen( '/xmlrpc.php' ) ) ? 'xmlrpc' : 'rest';
5860

5961
Error_Handler::get_instance()->check_api_response_for_errors(
6062
$response,

‎wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php‎

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ private function internal_verify_xml_rpc_signature() {
482482
// REST authentication into verify_xml_rpc_signature()), so the stored error type is
483483
// derived from the actual request context rather than hardcoded.
484484
$error_type = $this->get_current_request_transport();
485-
$error_direction = Error_Handler::DIRECTION_INCOMING;
485+
$error_direction = 'incoming'; // Matches Error_Handler::DIRECTION_INCOMING — see build_connection_error_data() for why the constant is not referenced.
486486

487487
// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
488488
@list( $token_key, $version, $user_id ) = explode( ':', wp_unslash( $_GET['token'] ) );
@@ -495,7 +495,7 @@ private function internal_verify_xml_rpc_signature() {
495495
|| empty( $version )
496496
|| (string) $jetpack_api_version !== $version
497497
) {
498-
return new \WP_Error( 'malformed_token', 'Malformed token in request', Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction ) );
498+
return new \WP_Error( 'malformed_token', 'Malformed token in request', $this->build_connection_error_data( $signature_details, $error_type, $error_direction ) );
499499
}
500500

501501
if ( '0' === $user_id ) {
@@ -507,7 +507,7 @@ private function internal_verify_xml_rpc_signature() {
507507
return new \WP_Error(
508508
'malformed_user_id',
509509
'Malformed user_id in request',
510-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
510+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
511511
);
512512
}
513513
$user_id = (int) $user_id;
@@ -517,20 +517,20 @@ private function internal_verify_xml_rpc_signature() {
517517
return new \WP_Error(
518518
'unknown_user',
519519
sprintf( 'User %d does not exist', $user_id ),
520-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
520+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
521521
);
522522
}
523523
}
524524

525525
$token = $this->get_tokens()->get_access_token( $user_id, $token_key, false );
526526
if ( is_wp_error( $token ) ) {
527-
$token->add_data( Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction ) );
527+
$token->add_data( $this->build_connection_error_data( $signature_details, $error_type, $error_direction ) );
528528
return $token;
529529
} elseif ( ! $token ) {
530530
return new \WP_Error(
531531
'unknown_token',
532532
sprintf( 'Token %s:%s:%d does not exist', $token_key, $version, $user_id ),
533-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
533+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
534534
);
535535
}
536536

@@ -572,7 +572,7 @@ private function internal_verify_xml_rpc_signature() {
572572
return new \WP_Error(
573573
'could_not_sign',
574574
'Unknown signature error',
575-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
575+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
576576
);
577577
} elseif ( is_wp_error( $signature ) ) {
578578
// Jetpack_Signature errors carry their own signature_details (or, for some codes,
@@ -582,7 +582,7 @@ private function internal_verify_xml_rpc_signature() {
582582
if ( isset( $signature_error_data['signature_details'] ) && is_array( $signature_error_data['signature_details'] ) ) {
583583
$signature_details = array_merge( $signature_details, $signature_error_data['signature_details'] );
584584
}
585-
$signature->add_data( Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction ) );
585+
$signature->add_data( $this->build_connection_error_data( $signature_details, $error_type, $error_direction ) );
586586
return $signature;
587587
}
588588

@@ -596,7 +596,7 @@ private function internal_verify_xml_rpc_signature() {
596596
return new \WP_Error(
597597
'invalid_nonce',
598598
'Could not add nonce',
599-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
599+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
600600
);
601601
}
602602

@@ -610,7 +610,7 @@ private function internal_verify_xml_rpc_signature() {
610610
return new \WP_Error(
611611
'signature_mismatch',
612612
'Signature mismatch',
613-
Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction )
613+
$this->build_connection_error_data( $signature_details, $error_type, $error_direction )
614614
);
615615
}
616616

@@ -664,7 +664,33 @@ private function get_current_request_transport() {
664664
$is_rest = $has_rest_route_arg || false !== strpos( $request_path, '/' . rest_get_url_prefix() . '/' );
665665
}
666666

667-
return $is_rest ? Error_Handler::ERROR_TYPE_REST : Error_Handler::ERROR_TYPE_XMLRPC;
667+
// The literals match Error_Handler::ERROR_TYPE_REST / ERROR_TYPE_XMLRPC — see
668+
// build_connection_error_data() for why the constants are not referenced.
669+
return $is_rest ? 'rest' : 'xmlrpc';
670+
}
671+
672+
/**
673+
* Builds the standardized connection error data attached to signature-verification errors.
674+
*
675+
* Wraps `Error_Handler::build_connection_error_data()`, falling back to the legacy
676+
* error-data shape when the loaded Error_Handler predates that method: during a plugin
677+
* update, an older version of the class can already be in memory while this file is the
678+
* new one, and a mid-update request must never fatal. For the same reason, code in this
679+
* class must not reference Error_Handler constants introduced along with that method
680+
* ('xmlrpc', 'rest', 'local_state', 'incoming', 'outgoing') — use the literal values.
681+
*
682+
* @since 8.9.0.1
683+
*
684+
* @param array $signature_details Details of the request signature being verified.
685+
* @param string $error_type The transport of the request: 'xmlrpc' or 'rest'.
686+
* @param string $error_direction The direction of the request: 'incoming' or 'outgoing'.
687+
* @return array Error data for `WP_Error`.
688+
*/
689+
private function build_connection_error_data( $signature_details, $error_type, $error_direction ) {
690+
if ( ! method_exists( Error_Handler::class, 'build_connection_error_data' ) ) {
691+
return compact( 'signature_details', 'error_type' );
692+
}
693+
return Error_Handler::build_connection_error_data( $signature_details, $error_type, $error_direction );
668694
}
669695

670696
/**
@@ -982,13 +1008,15 @@ public function get_connection_owner() {
9821008
$connection_owner = get_userdata( $user_token->external_user_id );
9831009
}
9841010

985-
if ( $connection_owner === false ) {
1011+
// Reporting is best-effort and must never fatal a request running mid-plugin-update:
1012+
// skip it when the already-loaded Error_Handler is a stale version predating the factory.
1013+
if ( $connection_owner === false && method_exists( Error_Handler::class, 'build_connection_wp_error' ) ) {
9861014
Error_Handler::get_instance()->report_error(
9871015
Error_Handler::build_connection_wp_error(
9881016
'invalid_connection_owner',
9891017
'Invalid connection owner',
9901018
array( 'token' => '' ),
991-
Error_Handler::ERROR_TYPE_LOCAL_STATE,
1019+
'local_state', // Error_Handler::ERROR_TYPE_LOCAL_STATE.
9921020
'', // Local-state errors describe the site's database, not a request, so they have no direction.
9931021
array(
9941022
'user_id' => $user_id,

‎wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313
class Package_Version {
1414

15-
const PACKAGE_VERSION = '8.9.0';
15+
const PACKAGE_VERSION = '8.9.0.1';
1616

1717
const PACKAGE_SLUG = 'connection';
1818

‎wp-content/plugins/jetpack/readme.txt‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
=== Jetpack - WP Security, Backup, Speed, & Growth ===
22
Contributors: automattic, adamkheckler, adrianmoldovanwp, aduth, akirk, allendav, alternatekev, andy, annamcphee, annezazu, apeatling, arcangelini, arsihasi, azaozz, barry, batmoo, beaulebens, bindlegirl, biskobe, bjorsch, blobaugh, brbrr, brileyhooper, cainm, cena, cfinke, cgastrell, chaselivingston, chellycat, clickysteve, csonnek, danielbachhuber, daniloercoli, davoraltman, delawski, designsimply, dkmyta, dllh, dlocc, drawmyface, dsmart, dun2mis, dzver, ebinnion, egregor, eliorivero, enej, eoigal, erania-pinnera, ethitter, fgiannar, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, joen, jblz, jeffgolenski, jeherve, jennywp, jenia, jessefriedman, jgs, jkudish, jmdodd, joanrho, johnjamesjacoby, jshreve, kbrownkd, keoshi, koke, kraftbj, lancewillett, leogermani, lhkowalski, lschuyler, macmanx, martinremy, matt, mattwiebe, matveb, maverick3x6, mcsf, mdawaffe, mdbitz, MichaelArestad, migueluy, miguelxavierpenha, mikeyarce, mkaz, nancythanki, nickmomrik, njweller, nunyvega, obenland, oskosk, pento, professor44, rachelsquirrel, rdcoll, renatoagds, retrofox, richardmtl, richardmuscat, robertbpugh, roccotripaldi, ryanc413, samhotchkiss, samiff, scarstocea, scottsweb, sdixon194, sdquirk, sermitr, simison, stephdau, thehenridev, tmoorewp, tyxla, Viper007Bond, westi, williamvianas, wpkaren, yoavf, zinigor
33
Tags: Security, backup, malware, scan, performance
4-
Stable tag: 16.1
4+
Stable tag: 16.1.1
55
Requires at least: 6.9
66
Requires PHP: 7.2
77
Tested up to: 7.0
@@ -326,6 +326,10 @@ Jetpack Backup can do a full website migration to a new host, migrate theme file
326326

327327

328328
== Changelog ==
329+
### 16.1.1 - 2026-08-11
330+
#### Bug fixes
331+
- Error Handler: Prevent a fatal error when a request runs during a plugin update and an older version of the Error_Handler class is already loaded.
332+
329333
### 16.1 - 2026-08-10
330334
#### Enhancements
331335
- Account Protection: Add additional context to Verify your identity page to reduce user confusion.

0 commit comments

Comments
 (0)