Send server experiment IDs in feed reliability log
Bug: 348442524
Change-Id: I0bf51f6dc8a652d142c3d55e0fd58dc75347d8da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5663717
Reviewed-by: Jonathan Freed <[email protected]>
Reviewed-by: Adam Arcaro <[email protected]>
Code-Coverage: [email protected] <[email protected]>
Commit-Queue: Jian Li <[email protected]>
Reviewed-by: Tommy Nyquist <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1322338}
diff --git a/chrome/browser/feed/android/feed_reliability_logging_bridge.cc b/chrome/browser/feed/android/feed_reliability_logging_bridge.cc
index 7cb8a75..bb6907b9 100644
--- a/chrome/browser/feed/android/feed_reliability_logging_bridge.cc
+++ b/chrome/browser/feed/android/feed_reliability_logging_bridge.cc
@@ -3,7 +3,9 @@
// found in the LICENSE file.
#include "chrome/browser/feed/android/feed_reliability_logging_bridge.h"
+
#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
#include "base/time/time.h"
#include "components/feed/core/v2/public/types.h"
#include "net/base/net_errors.h"
@@ -13,6 +15,8 @@
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/browser/feed/android/jni_headers/FeedReliabilityLoggingBridge_jni.h"
+using base::android::ScopedJavaLocalRef;
+
namespace feed {
namespace android {
namespace {
@@ -248,6 +252,13 @@
base::android::AttachCurrentThread(), java_ref_, success);
}
+void FeedReliabilityLoggingBridge::ReportExperiments(
+ const std::vector<int32_t>& experiment_ids) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ Java_FeedReliabilityLoggingBridge_reportExperiments(env, java_ref_,
+ experiment_ids);
+}
+
void FeedReliabilityLoggingBridge::Destroy(JNIEnv* env) {
delete this;
}
diff --git a/chrome/browser/feed/android/feed_reliability_logging_bridge.h b/chrome/browser/feed/android/feed_reliability_logging_bridge.h
index a5f9ee2..549e5870f 100644
--- a/chrome/browser/feed/android/feed_reliability_logging_bridge.h
+++ b/chrome/browser/feed/android/feed_reliability_logging_bridge.h
@@ -62,6 +62,7 @@
int64_t server_send_timestamp_ns) override;
void LogLoadMoreRequestFinished(int combined_network_status_code) override;
void LogLoadMoreEnded(bool success) override;
+ void ReportExperiments(const std::vector<int32_t>& experiment_ids) override;
private:
base::android::ScopedJavaGlobalRef<jobject> java_ref_;
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedReliabilityLoggingBridge.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedReliabilityLoggingBridge.java
index d9aa472..1165e29 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedReliabilityLoggingBridge.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedReliabilityLoggingBridge.java
@@ -8,6 +8,7 @@
import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
+import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
import org.chromium.chrome.browser.xsurface.feed.FeedLaunchReliabilityLogger;
@@ -198,6 +199,14 @@
}
}
+ @CalledByNative
+ public void reportExperiments(@JniType("std::vector<int32_t>") int[] experimentIds) {
+ mLaunchLogger.reportExperiments(experimentIds);
+ if (mUserInteractionLogger != null) {
+ mUserInteractionLogger.reportExperiments(experimentIds);
+ }
+ }
+
public void onStreamUpdateFinished() {
if (!mLaunchLogger.isLaunchInProgress()) return;
diff --git a/chrome/browser/feed/feed_service_factory.cc b/chrome/browser/feed/feed_service_factory.cc
index 29f2624..933f356 100644
--- a/chrome/browser/feed/feed_service_factory.cc
+++ b/chrome/browser/feed/feed_service_factory.cc
@@ -121,9 +121,9 @@
// by design. We do not provide the variations IDs from the backend
// and do not attach them to the X-Client-Data header.
for (const auto& exp : experiments) {
- for (const auto& group_name : exp.second) {
+ for (const auto& group : exp.second) {
ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(exp.first,
- group_name);
+ group.name);
}
}
}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 5107440..9debef6 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -250,6 +250,7 @@
#include "components/feed/buildflags.h"
#include "components/feed/core/common/pref_names.h"
#include "components/feed/core/shared_prefs/pref_names.h"
+#include "components/feed/core/v2/ios_shared_prefs.h"
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -2808,6 +2809,11 @@
syncer::SyncPrefs::MaybeMigrateAutofillToPerAccountPref(profile_prefs);
#endif // !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(IS_ANDROID)
+ // Added 06/2024
+ feed::prefs::MigrateObsoleteFeedExperimentPref_Jun_2024(profile_prefs);
+#endif // BUILDFLAG(IS_ANDROID)
+
// Please don't delete the following line. It is used by PRESUBMIT.py.
// END_MIGRATE_OBSOLETE_PROFILE_PREFS