| @@ -678,8 +678,22 @@ | ||
| 678 | 678 | private const OPTIONAL_FOR_HANDOVER = array( |
| 679 | 679 | 'object-cache', |
| 680 | 680 | 'cdn', |
| 681 | 681 | 'preloader', |
| 682 | + /* | |
| 683 | + * `cache` is optional for the HANDOVER decision specifically, and it | |
| 684 | + * has to be, because the source itself is usually why it failed: the | |
| 685 | + * source holds advanced-cache.php, so page cache cannot apply, so we | |
| 686 | + * refuse to deactivate the source, so it keeps holding the drop-in. | |
| 687 | + * That loop is what left sites with no cache at all (#391). | |
| 688 | + * | |
| 689 | + * Deactivating first and enabling after is the resolution -- see | |
| 690 | + * MigrationModule::restore_own_environment(), which now turns caching | |
| 691 | + * on once the field is free. A cache failure is still reported to the | |
| 692 | + * user either way; it just no longer vetoes the switch-off the notice | |
| 693 | + * already promised. | |
| 694 | + */ | |
| 695 | + 'cache', | |
| 682 | 696 | ); |
| 683 | 697 | |
| 684 | 698 | /** |
| 685 | 699 | * Is it safe to switch the source plugin off? |