Avoid possible error when reading groups in debug mode #2108
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This addresses a support forum topic:
The location where this error is occurring:
performance/plugins/optimization-detective/detect.js
Lines 558 to 560 in 85001b9
Normally the
urlMetricGroupCollectionis always populated whenWP_DEBUGis true:performance/plugins/optimization-detective/detection.php
Lines 148 to 150 in 85001b9
However, it seems at least in this case here, the HTML had been mutated to remove that object being passed to
detect(). So this PR hardens the logic to prevent an error from happening.Additionally, there is another benefit. Often when debugging Optimization Detective for sites in the wild, I'll use local overrides in Chrome to modify the HTML as follows:
isDebugtotruedetect.min.jswithdetect.jsHowever, when I do this, I then also need to open up
detect.jsand add another override to comment out this same line that tries to read from thegroup. By checking first to make sure that the property exists and is an array, then this will no longer be necessary when debugging sites in the field.