Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2023)

Unified Diff: chrome/browser/notifications/notification_platform_bridge_android.cc

Issue 1969303002: Upstream WebAPK notification related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/notifications/notification_platform_bridge_android.cc
diff --git a/chrome/browser/notifications/notification_platform_bridge_android.cc b/chrome/browser/notifications/notification_platform_bridge_android.cc
index 10e6fd1a08764def514fe5a4d90d301fb52afea6..1dcae46543fda891333ce2d79a59b4803845bfbc 100644
--- a/chrome/browser/notifications/notification_platform_bridge_android.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_android.cc
@@ -9,6 +9,7 @@
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
+#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
@@ -17,6 +18,7 @@
#include "chrome/browser/notifications/persistent_notification_delegate.h"
#include "chrome/browser/notifications/platform_notification_service_impl.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/common/chrome_switches.h"
#include "content/public/common/persistent_notification_status.h"
#include "content/public/common/platform_notification_data.h"
#include "jni/NotificationPlatformBridge_jni.h"
@@ -88,13 +90,16 @@ void NotificationPlatformBridgeAndroid::OnNotificationClicked(
const JavaParamRef<jstring>& java_profile_id,
jboolean incognito,
const JavaParamRef<jstring>& java_tag,
+ const JavaParamRef<jstring>& java_webapk_package,
jint action_index) {
GURL origin(ConvertJavaStringToUTF8(env, java_origin));
std::string tag = ConvertJavaStringToUTF8(env, java_tag);
std::string profile_id = ConvertJavaStringToUTF8(env, java_profile_id);
+ std::string webapk_package =
+ ConvertJavaStringToUTF8(env, java_webapk_package);
regenerated_notification_infos_[persistent_notification_id] =
- std::make_pair(origin.spec(), tag);
+ RegeneratedNotificationInfo(origin.spec(), tag, webapk_package);
PlatformNotificationServiceImpl::GetInstance()
->ProcessPersistentNotificationOperation(
@@ -146,6 +151,16 @@ void NotificationPlatformBridgeAndroid::Display(
ScopedJavaLocalRef<jstring> origin =
ConvertUTF8ToJavaString(env, origin_url.spec());
+
+ ScopedJavaLocalRef<jstring> webapk_package;
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableWebApk)) {
+ webapk_package = Java_NotificationPlatformBridge_queryWebApkPackage(
+ env, java_object_.obj(), origin.obj());
+ } else {
+ webapk_package = ConvertUTF8ToJavaString(env, "");
+ }
+
ScopedJavaLocalRef<jstring> tag =
ConvertUTF8ToJavaString(env, notification.tag());
ScopedJavaLocalRef<jstring> title =
@@ -180,13 +195,16 @@ void NotificationPlatformBridgeAndroid::Display(
Java_NotificationPlatformBridge_displayNotification(
env, java_object_.obj(), persistent_notification_id, origin.obj(),
- j_profile_id.obj(), incognito, tag.obj(), title.obj(), body.obj(),
- notification_icon.obj(), badge.obj(), vibration_pattern.obj(),
- notification.timestamp().ToJavaTime(), notification.renotify(),
- notification.silent(), action_titles.obj(), action_icons.obj());
+ j_profile_id.obj(), incognito, tag.obj(), webapk_package.obj(),
+ title.obj(), body.obj(), notification_icon.obj(), badge.obj(),
+ vibration_pattern.obj(), notification.timestamp().ToJavaTime(),
+ notification.renotify(), notification.silent(), action_titles.obj(),
+ action_icons.obj());
regenerated_notification_infos_[persistent_notification_id] =
- std::make_pair(origin_url.spec(), notification.tag());
+ RegeneratedNotificationInfo(
+ origin_url.spec(), notification.tag(),
+ ConvertJavaStringToUTF8(env, webapk_package));
}
void NotificationPlatformBridgeAndroid::Close(
@@ -211,9 +229,12 @@ void NotificationPlatformBridgeAndroid::Close(
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jstring> origin =
- ConvertUTF8ToJavaString(env, notification_info.first);
+ ConvertUTF8ToJavaString(env, notification_info.origin);
ScopedJavaLocalRef<jstring> tag =
- ConvertUTF8ToJavaString(env, notification_info.second);
+ ConvertUTF8ToJavaString(env, notification_info.tag);
+ ScopedJavaLocalRef<jstring> webapk_package =
+ ConvertUTF8ToJavaString(env, notification_info.webapk_package);
+
ScopedJavaLocalRef<jstring> j_profile_id =
ConvertUTF8ToJavaString(env, profile_id);
@@ -221,7 +242,7 @@ void NotificationPlatformBridgeAndroid::Close(
Java_NotificationPlatformBridge_closeNotification(
env, java_object_.obj(), j_profile_id.obj(), persistent_notification_id,
- origin.obj(), tag.obj());
+ origin.obj(), tag.obj(), webapk_package.obj());
}
bool NotificationPlatformBridgeAndroid::GetDisplayed(
@@ -240,3 +261,15 @@ bool NotificationPlatformBridgeAndroid::RegisterNotificationPlatformBridge(
JNIEnv* env) {
return RegisterNativesImpl(env);
}
+
+NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo::
+ RegeneratedNotificationInfo() {}
+
+NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo::
+ RegeneratedNotificationInfo(const std::string& origin,
+ const std::string& tag,
+ const std::string& webapk_package)
+ : origin(origin), tag(tag), webapk_package(webapk_package) {}
+
+NotificationPlatformBridgeAndroid::RegeneratedNotificationInfo::
+ ~RegeneratedNotificationInfo() {}
« no previous file with comments | « chrome/browser/notifications/notification_platform_bridge_android.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698