Install and activate Optimization Detective when the Embed Optimizer feature is activated from the Performance screen#1644
Conversation
…feature is activated
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
felixarntz
left a comment
There was a problem hiding this comment.
@westonruter While functionally this is a good call, I think we should not introduce a "half-baked" API for something like plugin suggestions which would need more thought.
plugins/performance-lab/load.php
Outdated
| * @since 3.0.0 | ||
| * | ||
| * @return array<string, array{'constant': string, 'experimental'?: bool}> Associative array of $plugin_slug => $plugin_data pairs. | ||
| * @return array<string, array{'constant': string, 'experimental'?: bool, 'suggest'?: string[]}> Associative array of $plugin_slug => $plugin_data pairs. |
There was a problem hiding this comment.
I'm not sure we want to establish this as something we may want to do more, given that this is not a thing that WordPress Core supports.
Therefore instead of introducing a "schema" change here, I think we should for now hard-code this in perflab_install_and_activate_plugin(). Feels more hacky, but is more future-proof as it doesn't change any portion of the API. Given that this PR simply takes the "suggested" feature as if it was "required", that part would need more thought if we truly wanted to establish a way to suggest a feature.
| // Add recommended plugins (soft dependencies) to the list of plugins installed and activated. | ||
| $standalone_plugin_data = perflab_get_standalone_plugin_data(); | ||
| if ( isset( $standalone_plugin_data[ $plugin_slug ]['suggest'] ) ) { | ||
| $plugin_data['requires_plugins'] = array_merge( | ||
| $plugin_data['requires_plugins'], | ||
| $standalone_plugin_data[ $plugin_slug ]['suggest'] | ||
| ); | ||
| } |
There was a problem hiding this comment.
See my other comment: For those reasons, I think we should simply hard-code here: If embed-optimizer, add optimization-detective to requires_plugins.
This reverts commit b012d8d.
Fixes #1615
Most of the optimizations provided by Embed Optimizer require the Optimization Detective plugin. So this PR will automatically install and activate Optimization Detective when the Embed Optimizer feature is activated from the Performance screen.
Screen recording:
Screen.recording.2024-11-11.09.03.26.webm
Build for testing: performance-lab.zip