Add ForeignSessionHelper.triggerSessionSync()

We need a way to manually trigger a session sync on Android.

BUG=378035

Review URL: https://codereview.chromium.org/702153004

Cr-Commit-Position: refs/heads/master@{#302931}
diff --git a/chrome/browser/android/foreign_session_helper.cc b/chrome/browser/android/foreign_session_helper.cc
index 3d61357..2f3d0ac 100644
--- a/chrome/browser/android/foreign_session_helper.cc
+++ b/chrome/browser/android/foreign_session_helper.cc
@@ -20,6 +20,8 @@
 #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
+#include "content/public/browser/notification_details.h"
+#include "content/public/browser/notification_service.h"
 #include "content/public/browser/notification_source.h"
 #include "content/public/browser/web_contents.h"
 #include "jni/ForeignSessionHelper_jni.h"
@@ -164,6 +166,14 @@
   return service && service->GetActiveDataTypes().Has(syncer::PROXY_TABS);
 }
 
+void ForeignSessionHelper::TriggerSessionSync(JNIEnv* env, jobject obj) {
+  const syncer::ModelTypeSet types(syncer::SESSIONS);
+  content::NotificationService::current()->Notify(
+      chrome::NOTIFICATION_SYNC_REFRESH_LOCAL,
+      content::Source<Profile>(profile_),
+      content::Details<const syncer::ModelTypeSet>(&types));
+}
+
 void ForeignSessionHelper::SetOnForeignSessionCallback(JNIEnv* env,
                                                        jobject obj,
                                                        jobject callback) {