Disable all predictors code: fix desktop build with BUILD_WITH_TFLITE_LIB disabled

This commit is contained in:
Carmelo Messina
2025-09-05 11:59:22 +02:00
parent aeb696e438
commit edd60fee15
+106 -1
View File
@@ -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<autofill_ml_internals::mojom::MLPredictionLogPtr>
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<ModelInputHash, std::vector<FieldType>> predictions_cache_;
- raw_ptr<autofill::MLLogRouter> log_router_ = nullptr;
-
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
autofill_ml_internals::mojom::MLPredictionLogPtr CreateMLPredictionLog(
const FormStructure& form_structure) const;
+#endif
base::WeakPtrFactory<FieldClassificationModelHandler> 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