Add LearningSession to BrowserContext
This CL adds a singleton LearningSession to BrowserContext. This
provides a single location from which to get LearningTaskControllers,
which will allow aggregating observations accross multiple frames.
Bug: 994831
Change-Id: Ibeaf47a09ae7408d0afab9bc113a98e9f1532199
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758625
Reviewed-by: Matt Falkenhagen <[email protected]>
Reviewed-by: Frank Liberato <[email protected]>
Commit-Queue: Thomas Guilbert <[email protected]>
Cr-Commit-Position: refs/heads/master@{#688733}
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
index c1fee6e..9e5b738 100644
--- a/content/browser/browser_context.cc
+++ b/content/browser/browser_context.cc
@@ -60,6 +60,7 @@
#include "media/base/media_switches.h"
#include "media/capabilities/in_memory_video_decode_stats_db_impl.h"
#include "media/capabilities/video_decode_stats_db_impl.h"
+#include "media/learning/impl/learning_session_impl.h"
#include "media/mojo/services/video_decode_perf_history.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/cookies/cookie_store.h"
@@ -173,6 +174,7 @@
const char kServiceInstanceGroup[] = "service-instance-group";
const char kStoragePartitionMapKeyName[] = "content_storage_partition_map";
const char kVideoDecodePerfHistoryId[] = "video-decode-perf-history";
+const char kLearningSession[] = "learning-session";
#if defined(OS_CHROMEOS)
const char kMountPointsKey[] = "mount_points";
@@ -811,6 +813,24 @@
return decode_history;
}
+media::learning::LearningSession* BrowserContext::GetLearningSession() {
+ media::learning::LearningSession* learning_session =
+ static_cast<media::learning::LearningSession*>(
+ GetUserData(kLearningSession));
+
+ if (!learning_session) {
+ auto new_learning_session =
+ std::make_unique<media::learning::LearningSessionImpl>(
+ base::SequencedTaskRunnerHandle::Get());
+
+ learning_session = new_learning_session.get();
+
+ SetUserData(kLearningSession, std::move(new_learning_session));
+ }
+
+ return learning_session;
+}
+
download::InProgressDownloadManager*
BrowserContext::RetriveInProgressDownloadManager() {
return nullptr;