Make passage embeddings timeout value finchable.
Bug: b/354042889
Change-Id: If89b47116f1ab613aafe69cf0b7bd26e62fce367
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5731038
Reviewed-by: Raj T <rajendrant@chromium.org>
Commit-Queue: Zekun Jiang <zekunjiang@google.com>
Reviewed-by: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1332408}
diff --git a/components/history_embeddings/history_embeddings_features.cc b/components/history_embeddings/history_embeddings_features.cc
index 02819c69..a2d08506 100644
--- a/components/history_embeddings/history_embeddings_features.cc
+++ b/components/history_embeddings/history_embeddings_features.cc
@@ -119,6 +119,11 @@
"UseUrlFilter",
false);
+const base::FeatureParam<base::TimeDelta> kEmbeddingsServiceTimeout(
+ &kHistoryEmbeddings,
+ "EmbeddingsServiceTimeout",
+ base::Seconds(60));
+
bool IsHistoryEmbeddingsEnabled() {
#if BUILDFLAG(IS_CHROMEOS)
return chromeos::features::IsFeatureManagementHistoryEmbeddingEnabled() &&
diff --git a/components/history_embeddings/history_embeddings_features.h b/components/history_embeddings/history_embeddings_features.h
index e5f2cff..810d54c 100644
--- a/components/history_embeddings/history_embeddings_features.h
+++ b/components/history_embeddings/history_embeddings_features.h
@@ -105,6 +105,10 @@
// Whether to enable the URL filter to skip blocked URLs to improve performance.
extern const base::FeatureParam<bool> kUseUrlFilter;
+// The amount of time in seconds that the passage embeddings service will idle
+// for before being torn down to reduce memory usage.
+extern const base::FeatureParam<base::TimeDelta> kEmbeddingsServiceTimeout;
+
// Whether the history embeddings feature is enabled. This only checks if the
// feature flags are enabled and does not check the user's opt-in preference.
// See chrome/browser/history_embeddings/history_embeddings_utils.h.
diff --git a/components/history_embeddings/passage_embeddings_service_controller.cc b/components/history_embeddings/passage_embeddings_service_controller.cc
index 8fe4c51..4ee3f35 100644
--- a/components/history_embeddings/passage_embeddings_service_controller.cc
+++ b/components/history_embeddings/passage_embeddings_service_controller.cc
@@ -7,14 +7,12 @@
#include "base/metrics/histogram_functions.h"
#include "base/task/thread_pool.h"
#include "components/history_embeddings/embedder.h"
+#include "components/history_embeddings/history_embeddings_features.h"
#include "components/history_embeddings/vector_database.h"
#include "components/optimization_guide/core/optimization_guide_util.h"
namespace {
-// Time it takes before the remote idles.
-constexpr int kRemoteTimeoutSeconds = 60;
-
passage_embeddings::mojom::PassageEmbeddingsLoadModelsParamsPtr MakeModelParams(
const base::FilePath& embeddings_path,
const base::FilePath& sp_path,
@@ -160,7 +158,7 @@
base::BindOnce(&PassageEmbeddingsServiceController::OnDisconnected,
weak_ptr_factory_.GetWeakPtr()));
embedder_remote_.set_idle_handler(
- base::Seconds(kRemoteTimeoutSeconds),
+ history_embeddings::kEmbeddingsServiceTimeout.Get(),
base::BindRepeating(&PassageEmbeddingsServiceController::ResetRemotes,
weak_ptr_factory_.GetWeakPtr()));
}