Add new user preference "allowBrowserNotifications"
In user settings, User will be able to disable browser notifications
and prompt to enable notifications in browser.
This will be used in service-worker-installer introduced in Change
325047.
Google-Bug-Id: b/202288366
Release-Notes: skip
Change-Id: I3472b3f0c0f9ff4cb17bd6f4d638940d3458fa34
diff --git a/Documentation/rest-api-accounts.txt b/Documentation/rest-api-accounts.txt
index e4bc8f0..7e06e4a 100644
--- a/Documentation/rest-api-accounts.txt
+++ b/Documentation/rest-api-accounts.txt
@@ -1292,6 +1292,7 @@
"mute_common_path_prefixes": true,
"publish_comments_on_push": true,
"work_in_progress_by_default": true,
+ "allow_browser_notifications": true,
"default_base_for_merges": "FIRST_PARENT",
"my": [
{
@@ -1344,6 +1345,7 @@
"size_bar_in_change_table": true,
"disable_keyboard_shortcuts": true,
"disable_token_highlighting": true,
+ "allow_browser_notifications": false,
"diff_view": "SIDE_BY_SIDE",
"mute_common_path_prefixes": true,
"my": [
@@ -2686,6 +2688,8 @@
|`signed_off_by` |not set if `false`|
Whether to insert Signed-off-by footer in changes created with the
inline edit feature.
+|`allow_browser_notifications` |not set if `false`|
+Whether to prompt user to enable browser notification in browser.
|`my` ||
The menu items of the `MY` top menu as a list of
link:rest-api-config.html#top-menu-item-info[TopMenuItemInfo] entities.
@@ -2755,6 +2759,8 @@
|`signed_off_by` |optional|
Whether to insert Signed-off-by footer in changes created with the
inline edit feature.
+|`allow_browser_notifications` |not set if `false`|
+Whether to prompt user to enable browser notification in browser.
|`my` |optional|
The menu items of the `MY` top menu as a list of
link:rest-api-config.html#top-menu-item-info[TopMenuItemInfo] entities.
diff --git a/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java b/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
index 91d6294..1ee2cd8 100644
--- a/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
+++ b/java/com/google/gerrit/extensions/client/GeneralPreferencesInfo.java
@@ -150,6 +150,7 @@
public Boolean workInProgressByDefault;
public List<MenuItem> my;
public List<String> changeTable;
+ public Boolean allowBrowserNotifications;
public DateFormat getDateFormat() {
if (dateFormat == null) {
@@ -208,6 +209,7 @@
p.disableKeyboardShortcuts = false;
p.disableTokenHighlighting = false;
p.workInProgressByDefault = false;
+ p.allowBrowserNotifications = true;
return p;
}
}
diff --git a/javatests/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java b/javatests/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
index ff1aa89..f5b311b 100644
--- a/javatests/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/accounts/GeneralPreferencesIT.java
@@ -84,6 +84,7 @@
i.legacycidInChangeTable ^= true;
i.muteCommonPathPrefixes ^= true;
i.signedOffBy ^= true;
+ i.allowBrowserNotifications ^= false;
i.diffView = DiffView.UNIFIED_DIFF;
i.my = new ArrayList<>();
i.my.add(new MenuItem("name", "url"));
@@ -95,6 +96,7 @@
assertThat(o.my).containsExactlyElementsIn(i.my);
assertThat(o.changeTable).containsExactlyElementsIn(i.changeTable);
assertThat(o.theme).isEqualTo(i.theme);
+ assertThat(o.allowBrowserNotifications).isEqualTo(i.allowBrowserNotifications);
assertThat(o.disableKeyboardShortcuts).isEqualTo(i.disableKeyboardShortcuts);
}