From edd60fee151cd499edd5b7522c4be832b4e3499d Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 5 Sep 2025 11:59:22 +0200 Subject: [PATCH] Disable all predictors code: fix desktop build with BUILD_WITH_TFLITE_LIB disabled --- .../patches/Disable-all-predictors-code.patch | 107 +++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index e0636484..99b549e3 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -37,6 +37,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/utility/services.cc | 8 -------- components/BUILD.gn | 2 +- .../autofill_optimization_guide.cc | 5 +++-- + .../field_classification_model_handler.cc | 12 ++++++++---- + .../field_classification_model_handler.h | 10 ++++++---- .../omnibox/browser/autocomplete_controller.cc | 4 ++++ .../omnibox/browser/base_search_provider.cc | 4 ++-- .../prediction_model_download_manager.cc | 6 ++++-- @@ -62,7 +64,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/html/parser/html_document_parser.cc | 1 + .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 57 files changed, 136 insertions(+), 80 deletions(-) + 59 files changed, 150 insertions(+), 88 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -793,6 +795,109 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization(url, optimization_type, /*optimization_metadata=*/nullptr); +diff --git a/components/autofill/core/browser/ml_model/field_classification_model_handler.cc b/components/autofill/core/browser/ml_model/field_classification_model_handler.cc +--- a/components/autofill/core/browser/ml_model/field_classification_model_handler.cc ++++ b/components/autofill/core/browser/ml_model/field_classification_model_handler.cc +@@ -97,8 +97,7 @@ bool ParsingSupportsMultipleFieldsOfType(FieldType type) { + + FieldClassificationModelHandler::FieldClassificationModelHandler( + optimization_guide::OptimizationGuideModelProvider* model_provider, +- optimization_guide::proto::OptimizationTarget optimization_target, +- autofill::MLLogRouter* log_router) ++ optimization_guide::proto::OptimizationTarget optimization_target) + : optimization_guide::ModelHandler< + FieldClassificationModelEncoder::ModelOutput, + const FieldClassificationModelEncoder::ModelInput&>( +@@ -110,8 +109,7 @@ FieldClassificationModelHandler::FieldClassificationModelHandler( + optimization_target, + CreateModelMetadata()), + optimization_target_(optimization_target), +- predictions_cache_(kMaxPredictionsToCache), +- log_router_(log_router) { ++ predictions_cache_(kMaxPredictionsToCache) { + // Store the model in memory as soon as it is available and keep it loaded for + // the whole browser session since we query predictions very regularly. + // TODO(crbug.com/40276177): Maybe change both back to default behavior if we +@@ -160,6 +158,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( + } + } + ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + autofill_ml_internals::mojom::MLPredictionLogPtr + FieldClassificationModelHandler::CreateMLPredictionLog( + const FormStructure& form_structure) const { +@@ -231,6 +230,7 @@ FieldClassificationModelHandler::CreateMLPredictionLog( + prediction_log->start_time = base::Time::Now(); + return prediction_log; + } ++#endif + + void PopulateMLPredictionLogAfterInference( + autofill_ml_internals::mojom::MLPredictionLog& prediction_log, +@@ -259,9 +259,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( + + std::optional + prediction_log = std::nullopt; ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (log_router_ && log_router_->HasReceivers()) { + prediction_log = CreateMLPredictionLog(*form_structure); + } ++#endif + + // TODO(crbug.com/428686605) Set tokenized representation in `prediction_log`. + FieldClassificationModelEncoder::ModelInput encoded_input = +@@ -312,11 +314,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( + predicted_types); + } + } ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (self && output && prediction_log && self->log_router_) { + PopulateMLPredictionLogAfterInference(*(prediction_log.value()), + output.value()); + self->log_router_->ProcessLog(std::move(*prediction_log)); + } ++#endif + std::move(callback).Run(std::move(form_structure)); + }, + weak_ptr_factory_.GetWeakPtr(), std::move(prediction_log), +diff --git a/components/autofill/core/browser/ml_model/field_classification_model_handler.h b/components/autofill/core/browser/ml_model/field_classification_model_handler.h +--- a/components/autofill/core/browser/ml_model/field_classification_model_handler.h ++++ b/components/autofill/core/browser/ml_model/field_classification_model_handler.h +@@ -15,8 +15,11 @@ + #include "components/autofill/core/browser/field_types.h" + #include "components/autofill/core/browser/form_structure.h" + #include "components/autofill/core/browser/ml_model/field_classification_model_encoder.h" ++#include "components/optimization_guide/machine_learning_tflite_buildflags.h" ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + #include "components/autofill/core/browser/ml_model/logging/autofill_ml_internals.mojom.h" + #include "components/autofill/core/browser/ml_model/logging/ml_log_router.h" ++#endif + #include "components/keyed_service/core/keyed_service.h" + #include "components/optimization_guide/core/delivery/optimization_guide_model_provider.h" + #include "components/optimization_guide/core/inference/model_handler.h" +@@ -42,8 +45,7 @@ class FieldClassificationModelHandler + + FieldClassificationModelHandler( + optimization_guide::OptimizationGuideModelProvider* model_provider, +- optimization_guide::proto::OptimizationTarget optimization_target, +- autofill::MLLogRouter* log_router = nullptr); ++ optimization_guide::proto::OptimizationTarget optimization_target); + ~FieldClassificationModelHandler() override; + + // This function asynchronously queries predictions for the `form_structure` +@@ -136,10 +138,10 @@ class FieldClassificationModelHandler + // Cached model classifications. + base::LRUCache> predictions_cache_; + +- raw_ptr log_router_ = nullptr; +- ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + autofill_ml_internals::mojom::MLPredictionLogPtr CreateMLPredictionLog( + const FormStructure& form_structure) const; ++#endif + + base::WeakPtrFactory weak_ptr_factory_{this}; + }; diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc