Merge changes I14eb9d19,I8f6d5c5a into stable

* changes:
  Send new patchset event after its available
  Enable git:// download URLs if canonicalGitUrl set
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index 09b3f50..2e8d5a4 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -1779,6 +1779,9 @@
 If `SAME_GROUP`, only users who are also members of a group the
 current user is a member of will be offered.
 +
+If `VISIBLE_GROUP`, only users who are members of at least one group
+that is visible to the current user will be offered.
++
 If `OFF`, no account suggestions are given.
 +
 Default is `ALL`.
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestAccountsEnum.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestAccountsEnum.java
index 0cd21ef..2ef2d44 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestAccountsEnum.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestAccountsEnum.java
@@ -17,5 +17,6 @@
 public enum SuggestAccountsEnum {
   ALL,
   SAME_GROUP,
+  VISIBLE_GROUP,
   OFF;
 }
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestServiceImpl.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestServiceImpl.java
index 48176b4..379fee6 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestServiceImpl.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/SuggestServiceImpl.java
@@ -165,6 +165,22 @@
         }
         break;
       }
+      case VISIBLE_GROUP: {
+        Set<AccountGroup.Id> usersGroups = groupsOf(account);
+        usersGroups.removeAll(authConfig.getRegisteredGroups());
+        usersGroups.remove(authConfig.getBatchUsersGroup());
+        for (AccountGroup.Id usersGroup : usersGroups) {
+          try {
+            if (groupControlFactory.controlFor(usersGroup).isVisible()) {
+              map.put(account.getId(), info);
+              break;
+            }
+          } catch (NoSuchGroupException e) {
+            continue;
+          }
+        }
+        break;
+      }
       case OFF:
         break;
       default: