Split sliding_window_size and max_histogram_buckets for the individual LCPP subprojects
Currently, LCPP projects share the following fields. - sliding_window_size - max_histogram_buckets Sharing these fields prevents us from specifying different values for the individual subprojects of LCPP. Bug: 40063266 Change-Id: I92d88f17a48092f9f9200cdb1a72150509367293 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6389125 Reviewed-by: Kouhei Ueno <kouhei@chromium.org> Reviewed-by: Shunya Shishido <sisidovski@chromium.org> Reviewed-by: Yoichi Osato <yoichio@chromium.org> Commit-Queue: Minoru Chikamune <chikamune@chromium.org> Cr-Commit-Position: refs/heads/main@{#1437957}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
dfbb2508b4
commit
5974b95121
chrome/browser/predictors/lcp_critical_path_predictor
testing/variations
third_party/blink
@ -1000,27 +1000,29 @@ LcppDataInputs::~LcppDataInputs() = default;
|
||||
bool UpdateLcppStatWithLcppDataInputs(const LcppDataInputs& inputs,
|
||||
LcppStat& stat) {
|
||||
bool data_updated = false;
|
||||
int sliding_window_size =
|
||||
blink::features::kLCPCriticalPathPredictorHistogramSlidingWindowSize
|
||||
.Get();
|
||||
int max_histogram_buckets =
|
||||
blink::features::kLCPCriticalPathPredictorMaxHistogramBuckets.Get();
|
||||
data_updated |= RecordLcpElementLocatorHistogram(
|
||||
sliding_window_size, max_histogram_buckets, inputs.lcp_element_locator,
|
||||
stat);
|
||||
blink::features::kLCPCriticalPathPredictorSlidingWindowSize.Get(),
|
||||
blink::features::kLCPCriticalPathPredictorMaxHistogramBuckets.Get(),
|
||||
inputs.lcp_element_locator, stat);
|
||||
data_updated |= RecordLcpInfluencerScriptUrlsHistogram(
|
||||
sliding_window_size, max_histogram_buckets, inputs.lcp_influencer_scripts,
|
||||
stat);
|
||||
blink::features::kLCPScriptObserverSlidingWindowSize.Get(),
|
||||
blink::features::kLCPScriptObserverMaxHistogramBuckets.Get(),
|
||||
inputs.lcp_influencer_scripts, stat);
|
||||
data_updated |= RecordFetchedFontUrlsHistogram(
|
||||
sliding_window_size, max_histogram_buckets, inputs.font_urls, stat);
|
||||
blink::features::kLCPPFontURLPredictorSlidingWindowSize.Get(),
|
||||
blink::features::kLCPPFontURLPredictorMaxHistogramBuckets.Get(),
|
||||
inputs.font_urls, stat);
|
||||
data_updated |= RecordFetchedSubresourceUrlsHistogram(
|
||||
sliding_window_size, max_histogram_buckets, inputs.subresource_urls,
|
||||
stat);
|
||||
blink::features::kHttpDiskCachePrewarmingSlidingWindowSize.Get(),
|
||||
blink::features::kHttpDiskCachePrewarmingMaxHistogramBuckets.Get(),
|
||||
inputs.subresource_urls, stat);
|
||||
data_updated |= RecordPreconnectOriginsHistogram(
|
||||
sliding_window_size, max_histogram_buckets, inputs.preconnect_origins,
|
||||
stat);
|
||||
blink::features::kLCPPAutoPreconnectSlidingWindowSize.Get(),
|
||||
blink::features::kLCPPAutoPreconnectMaxHistogramBuckets.Get(),
|
||||
inputs.preconnect_origins, stat);
|
||||
data_updated |= RecordUnusedPreloadUrlsHistogram(
|
||||
sliding_window_size, max_histogram_buckets,
|
||||
blink::features::kLCPPDeferUnusedPreloadSlidingWindowSize.Get(),
|
||||
blink::features::kLCPPDeferUnusedPreloadMaxHistogramBuckets.Get(),
|
||||
inputs.unused_preload_resources, stat);
|
||||
base::UmaHistogramCounts10000("Blink.LCPP.ReportedFontCount",
|
||||
base::checked_cast<int>(inputs.font_url_count));
|
||||
|
48
chrome/browser/predictors/lcp_critical_path_predictor/lcp_critical_path_predictor_util_unittest.cc
48
chrome/browser/predictors/lcp_critical_path_predictor/lcp_critical_path_predictor_util_unittest.cc
@ -1466,15 +1466,49 @@ class LcppDataMapFeatures
|
||||
LcppDataMapFeatures() {
|
||||
scoped_feature_list_.InitWithFeatures(GetParam(),
|
||||
/*disabled_features=*/{});
|
||||
constexpr char kSlidingWindowSize[] = "5";
|
||||
constexpr char kMaxHistogramBuckets[] = "2";
|
||||
scoped_feature_list_for_sliding_window_and_buckets_
|
||||
.InitWithFeaturesAndParameters(
|
||||
{{blink::features::kLCPCriticalPathPredictor,
|
||||
{{blink::features::
|
||||
kLCPCriticalPathPredictorHistogramSlidingWindowSize.name,
|
||||
"5"},
|
||||
{blink::features::kLCPCriticalPathPredictorMaxHistogramBuckets
|
||||
.name,
|
||||
"2"}}}},
|
||||
{
|
||||
{blink::features::kLCPCriticalPathPredictor,
|
||||
{{blink::features::kLCPCriticalPathPredictorSlidingWindowSize
|
||||
.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kLCPCriticalPathPredictorMaxHistogramBuckets
|
||||
.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
{blink::features::kLCPScriptObserver,
|
||||
{{blink::features::kLCPScriptObserverSlidingWindowSize.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kLCPScriptObserverMaxHistogramBuckets.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
{blink::features::kLCPPFontURLPredictor,
|
||||
{{blink::features::kLCPPFontURLPredictorSlidingWindowSize.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kLCPPFontURLPredictorMaxHistogramBuckets
|
||||
.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
{blink::features::kHttpDiskCachePrewarming,
|
||||
{{blink::features::kHttpDiskCachePrewarmingSlidingWindowSize
|
||||
.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kHttpDiskCachePrewarmingMaxHistogramBuckets
|
||||
.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
{blink::features::kLCPPAutoPreconnectLcpOrigin,
|
||||
{{blink::features::kLCPPAutoPreconnectSlidingWindowSize.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kLCPPAutoPreconnectMaxHistogramBuckets.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
{blink::features::kLCPPDeferUnusedPreload,
|
||||
{{blink::features::kLCPPDeferUnusedPreloadSlidingWindowSize
|
||||
.name,
|
||||
kSlidingWindowSize},
|
||||
{blink::features::kLCPPDeferUnusedPreloadMaxHistogramBuckets
|
||||
.name,
|
||||
kMaxHistogramBuckets}}},
|
||||
},
|
||||
{});
|
||||
}
|
||||
|
||||
|
@ -13605,12 +13605,12 @@
|
||||
"lcpp_adjust_image_load_priority_override_first_n_boost": "true",
|
||||
"lcpp_enable_image_load_priority_for_htmlimageelement": "false",
|
||||
"lcpp_enable_perf_improvements": "true",
|
||||
"lcpp_histogram_sliding_window_size": "1000",
|
||||
"lcpp_image_load_priority": "medium",
|
||||
"lcpp_max_element_locator_length": "1024",
|
||||
"lcpp_max_histogram_buckets": "10",
|
||||
"lcpp_max_hosts_to_track": "100",
|
||||
"lcpp_recorded_lcp_element_types": "image_only"
|
||||
"lcpp_recorded_lcp_element_types": "image_only",
|
||||
"lcpp_sliding_window_size": "1000"
|
||||
},
|
||||
"enable_features": [
|
||||
"LCPCriticalPathPredictor"
|
||||
|
64
third_party/blink/common/features.cc
vendored
64
third_party/blink/common/features.cc
vendored
@ -1318,9 +1318,9 @@ BASE_FEATURE_PARAM(int,
|
||||
100);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPCriticalPathPredictorHistogramSlidingWindowSize,
|
||||
kLCPCriticalPathPredictorSlidingWindowSize,
|
||||
&kLCPCriticalPathPredictor,
|
||||
"lcpp_histogram_sliding_window_size",
|
||||
"lcpp_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
@ -1365,6 +1365,18 @@ BASE_FEATURE_PARAM(bool,
|
||||
"lcpscriptobserver_adjust_image_load_priority",
|
||||
false);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPScriptObserverSlidingWindowSize,
|
||||
&kLCPScriptObserver,
|
||||
"lcpscriptobserver_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPScriptObserverMaxHistogramBuckets,
|
||||
&kLCPScriptObserver,
|
||||
"lcpscriptobserver_max_histogram_buckets",
|
||||
10);
|
||||
|
||||
BASE_FEATURE(kLCPTimingPredictorPrerender2,
|
||||
"LCPTimingPredictorPrerender2",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@ -1385,6 +1397,18 @@ BASE_FEATURE_PARAM(int,
|
||||
"lcpp_preconnect_max_origins",
|
||||
2);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPAutoPreconnectSlidingWindowSize,
|
||||
&kLCPPAutoPreconnectLcpOrigin,
|
||||
"lcpp_preconnect_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPAutoPreconnectMaxHistogramBuckets,
|
||||
&kLCPPAutoPreconnectLcpOrigin,
|
||||
"lcpp_preconnect_max_histogram_buckets",
|
||||
10);
|
||||
|
||||
BASE_FEATURE(kLCPPDeferUnusedPreload,
|
||||
"LCPPDeferUnusedPreload",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@ -1442,6 +1466,18 @@ BASE_FEATURE_ENUM_PARAM(LcppDeferUnusedPreloadTiming,
|
||||
LcppDeferUnusedPreloadTiming::kPostTask,
|
||||
&lcpp_defer_unused_preload_timing);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPDeferUnusedPreloadSlidingWindowSize,
|
||||
&kLCPPDeferUnusedPreload,
|
||||
"lcpp_unused_preload_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPDeferUnusedPreloadMaxHistogramBuckets,
|
||||
&kLCPPDeferUnusedPreload,
|
||||
"lcpp_unused_preload_max_histogram_buckets",
|
||||
10);
|
||||
|
||||
BASE_FEATURE(kLCPPFontURLPredictor,
|
||||
"LCPPFontURLPredictor",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@ -1492,6 +1528,18 @@ BASE_FEATURE_PARAM(bool,
|
||||
"lcpp_cross_site_font_prediction_allowed",
|
||||
false);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPFontURLPredictorSlidingWindowSize,
|
||||
&kLCPPFontURLPredictor,
|
||||
"lcpp_font_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kLCPPFontURLPredictorMaxHistogramBuckets,
|
||||
&kLCPPFontURLPredictor,
|
||||
"lcpp_font_max_histogram_buckets",
|
||||
10);
|
||||
|
||||
BASE_FEATURE(kLCPPInitiatorOrigin,
|
||||
"LCPPInitiatorOrigin",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
@ -1633,6 +1681,18 @@ BASE_FEATURE_PARAM(bool,
|
||||
"http_disk_cache_prewarming_skip_during_browser_startup",
|
||||
true);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kHttpDiskCachePrewarmingSlidingWindowSize,
|
||||
&kHttpDiskCachePrewarming,
|
||||
"http_disk_cache_prewarming_sliding_window_size",
|
||||
1000);
|
||||
|
||||
BASE_FEATURE_PARAM(int,
|
||||
kHttpDiskCachePrewarmingMaxHistogramBuckets,
|
||||
&kHttpDiskCachePrewarming,
|
||||
"http_disk_cache_prewarming_max_histogram_buckets",
|
||||
10);
|
||||
|
||||
BASE_FEATURE(kLegacyParsingOfXContentTypeOptions,
|
||||
"LegacyParsingOfXContentTypeOptions",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
60
third_party/blink/public/common/features.h
vendored
60
third_party/blink/public/common/features.h
vendored
@ -836,11 +836,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPCriticalPathPredictorMaxHostsToTrack);
|
||||
|
||||
// The virtual sliding window size for LCP critical path predictor (LCPP)
|
||||
// histogram.
|
||||
// The virtual sliding window size for LCP critical path predictor (LCPP).
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPCriticalPathPredictorHistogramSlidingWindowSize);
|
||||
kLCPCriticalPathPredictorSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database.
|
||||
@ -876,6 +875,17 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
bool,
|
||||
kLCPScriptObserverAdjustImageLoadPriority);
|
||||
|
||||
// The virtual sliding window size for kLCPScriptObserver.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPScriptObserverSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database for kLCPScriptObserver.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPScriptObserverMaxHistogramBuckets);
|
||||
|
||||
// If enabled, Prerender2 by Speculation Rules API is delayed until
|
||||
// LCP is finished.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLCPTimingPredictorPrerender2);
|
||||
@ -894,6 +904,17 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kkLCPPAutoPreconnectMaxPreconnectOriginsCount);
|
||||
|
||||
// The virtual sliding window size for kLCPPAutoPreconnectLcpOrigin.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPAutoPreconnectSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database for kLCPPAutoPreconnectLcpOrigin.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPAutoPreconnectMaxHistogramBuckets);
|
||||
|
||||
// If enabled, unused preload requests are deferred to the timing on LCP.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLCPPDeferUnusedPreload);
|
||||
|
||||
@ -947,6 +968,17 @@ enum class LcppDeferUnusedPreloadTiming {
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(LcppDeferUnusedPreloadTiming,
|
||||
kLcppDeferUnusedPreloadTiming);
|
||||
|
||||
// The virtual sliding window size for kLCPPDeferUnusedPreload.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPDeferUnusedPreloadSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database for kLCPPDeferUnusedPreload.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPDeferUnusedPreloadMaxHistogramBuckets);
|
||||
|
||||
// If enabled, fetched font URLs are observed to predict font usage in the
|
||||
// future navigation.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLCPPFontURLPredictor);
|
||||
@ -996,6 +1028,17 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
bool,
|
||||
kLCPPCrossSiteFontPredictionAllowed);
|
||||
|
||||
// The virtual sliding window size for kLCPPFontURLPredictor.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPFontURLPredictorSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database for kLCPPFontURLPredictor.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kLCPPFontURLPredictorMaxHistogramBuckets);
|
||||
|
||||
// If enabled, LCPP learns with a navigation-initiator origin.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLCPPInitiatorOrigin);
|
||||
|
||||
@ -1112,6 +1155,17 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
bool,
|
||||
kHttpDiskCachePrewarmingSkipDuringBrowserStartup);
|
||||
|
||||
// The virtual sliding window size for kLCPScriptObserver.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kHttpDiskCachePrewarmingSlidingWindowSize);
|
||||
|
||||
// The max histogram bucket count that can be stored in the LCP critical path
|
||||
// predictor (LCPP) database for kLCPScriptObserver.
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(
|
||||
int,
|
||||
kHttpDiskCachePrewarmingMaxHistogramBuckets);
|
||||
|
||||
// Kill-switch for new parsing behaviour of the X-Content-Type-Options header.
|
||||
// (Should be removed after the new behaviour has been launched.)
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLegacyParsingOfXContentTypeOptions);
|
||||
|
Reference in New Issue
Block a user