Merge "Remove ::content and fix the `no-left` style for shift + a"
diff --git a/Documentation/pg-plugin-admin-api.txt b/Documentation/pg-plugin-admin-api.txt
index 084fa2c..1a41778 100644
--- a/Documentation/pg-plugin-admin-api.txt
+++ b/Documentation/pg-plugin-admin-api.txt
@@ -4,14 +4,18 @@
and provides customization of the admin menu.
== addMenuLink
-`adminApi.addMenuLink(text, url, opt_external, opt_capabilities)`
+`adminApi.addMenuLink(text, url, opt_capability)`
Add a new link to the end of the admin navigation menu.
.Params
- *text* String text to appear in the link.
- *url* String of the destination URL for the link.
+- *opt_capability* String of capability required to show this link.
When adding an external link, the URL provided should be a full URL. Otherwise,
a non-external link should be relative beginning with a slash. For example, to
-create a link to open changes, use the value `/q/status:open`.
\ No newline at end of file
+create a link to open changes, use the value `/q/status:open`.
+
+See more about capability from
+link:rest-api-accounts.html#list-account-capabilities[List Account Capabilities].
\ No newline at end of file
diff --git a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
index c9a0154..61fa4f9 100644
--- a/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
+++ b/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
@@ -280,7 +280,7 @@
private final Globals globals;
private final Provider<RestCollection<RestResource, RestResource>> members;
- private Optional<String> traceId;
+ private Optional<String> traceId = Optional.empty();
public RestApiServlet(
Globals globals, RestCollection<? extends RestResource, ? extends RestResource> members) {
diff --git a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
index c6c9b39..0a12937 100644
--- a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
+++ b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java
@@ -2785,6 +2785,16 @@
Change change = notes.getChange();
priorPatchSet = change.currentPatchSetId();
if (!revisions.containsValue(priorPatchSet)) {
+ logger.atWarning().log(
+ "Change %d is missing revision for patch set %s"
+ + " (it has revisions for these patch sets: %s)",
+ change.getChangeId(),
+ priorPatchSet.getId(),
+ Iterables.toString(
+ revisions.values().stream()
+ .limit(100) // Enough for "normal" changes.
+ .map(PatchSet.Id::getId)
+ .collect(Collectors.toList())));
reject(inputCommand, "change " + ontoChange + " missing revisions");
return false;
}
diff --git a/plugins/codemirror-editor b/plugins/codemirror-editor
index 767e6bf..92ce310 160000
--- a/plugins/codemirror-editor
+++ b/plugins/codemirror-editor
@@ -1 +1 @@
-Subproject commit 767e6bfc028f438b4a1234ad6179aaba78a8b11e
+Subproject commit 92ce310ecf717133601b9e824c38bc5e5eafecba
diff --git a/polygerrit-ui/app/behaviors/base-url-behavior/base-url-behavior_test.html b/polygerrit-ui/app/behaviors/base-url-behavior/base-url-behavior_test.html
index 8a76d9d..b61b142 100644
--- a/polygerrit-ui/app/behaviors/base-url-behavior/base-url-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/base-url-behavior/base-url-behavior_test.html
@@ -54,7 +54,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [
Gerrit.BaseUrlBehavior,
],
diff --git a/polygerrit-ui/app/behaviors/docs-url-behavior/docs-url-behavior_test.html b/polygerrit-ui/app/behaviors/docs-url-behavior/docs-url-behavior_test.html
index 4f16e79..2c513f3 100644
--- a/polygerrit-ui/app/behaviors/docs-url-behavior/docs-url-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/docs-url-behavior/docs-url-behavior_test.html
@@ -40,7 +40,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'docs-url-behavior-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.DocsUrlBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/dom-util-behavior/dom-util-behavior_test.html b/polygerrit-ui/app/behaviors/dom-util-behavior/dom-util-behavior_test.html
index 15affee..8323ac6 100644
--- a/polygerrit-ui/app/behaviors/dom-util-behavior/dom-util-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/dom-util-behavior/dom-util-behavior_test.html
@@ -48,7 +48,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.DomUtilBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior_test.html b/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior_test.html
index 817d26e..0d1ee57 100644
--- a/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-access-behavior/gr-access-behavior_test.html
@@ -40,7 +40,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.AccessBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/gr-admin-nav-behavior/gr-admin-nav-behavior_test.html b/polygerrit-ui/app/behaviors/gr-admin-nav-behavior/gr-admin-nav-behavior_test.html
index f1e28d1..0285e35 100644
--- a/polygerrit-ui/app/behaviors/gr-admin-nav-behavior/gr-admin-nav-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-admin-nav-behavior/gr-admin-nav-behavior_test.html
@@ -43,7 +43,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [
Gerrit.AdminNavBehavior,
],
diff --git a/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior_test.html b/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior_test.html
index 9b7339d..791e2af 100644
--- a/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-change-table-behavior/gr-change-table-behavior_test.html
@@ -50,7 +50,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.ChangeTableBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior_test.html b/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior_test.html
index 4c5c899..3d4eca1 100644
--- a/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior_test.html
@@ -46,7 +46,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element-anon',
- _legacyUndefinedCheck: true,
behaviors: [
Gerrit.DisplayNameBehavior,
],
diff --git a/polygerrit-ui/app/behaviors/gr-list-view-behavior/gr-list-view-behavior_test.html b/polygerrit-ui/app/behaviors/gr-list-view-behavior/gr-list-view-behavior_test.html
index 9973ae8..b0b29e1 100644
--- a/polygerrit-ui/app/behaviors/gr-list-view-behavior/gr-list-view-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-list-view-behavior/gr-list-view-behavior_test.html
@@ -42,7 +42,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.ListViewBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/gr-tooltip-behavior/gr-tooltip-behavior_test.html b/polygerrit-ui/app/behaviors/gr-tooltip-behavior/gr-tooltip-behavior_test.html
index 2c4b376..173c8d4 100644
--- a/polygerrit-ui/app/behaviors/gr-tooltip-behavior/gr-tooltip-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-tooltip-behavior/gr-tooltip-behavior_test.html
@@ -53,7 +53,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'tooltip-behavior-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.TooltipBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html b/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html
index 8601397..73e51d3 100644
--- a/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior_test.html
@@ -42,7 +42,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.URLEncodingBehavior],
});
});
diff --git a/polygerrit-ui/app/behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior_test.html b/polygerrit-ui/app/behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior_test.html
index 9d5481d..5a563ab 100644
--- a/polygerrit-ui/app/behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior_test.html
@@ -52,7 +52,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.KeyboardShortcutBehavior],
keyBindings: {
k: '_handleKey',
diff --git a/polygerrit-ui/app/behaviors/rest-client-behavior/rest-client-behavior_test.html b/polygerrit-ui/app/behaviors/rest-client-behavior/rest-client-behavior_test.html
index 013ec2e..a77a01f 100644
--- a/polygerrit-ui/app/behaviors/rest-client-behavior/rest-client-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/rest-client-behavior/rest-client-behavior_test.html
@@ -56,7 +56,6 @@
// Define a Polymer element that uses this behavior.
Polymer({
is: 'test-element',
- _legacyUndefinedCheck: true,
behaviors: [
Gerrit.BaseUrlBehavior,
Gerrit.RESTClientBehavior,
diff --git a/polygerrit-ui/app/behaviors/safe-types-behavior/safe-types-behavior_test.html b/polygerrit-ui/app/behaviors/safe-types-behavior/safe-types-behavior_test.html
index 5d949a5..ab446f1 100644
--- a/polygerrit-ui/app/behaviors/safe-types-behavior/safe-types-behavior_test.html
+++ b/polygerrit-ui/app/behaviors/safe-types-behavior/safe-types-behavior_test.html
@@ -41,7 +41,6 @@
suiteSetup(() => {
Polymer({
is: 'safe-types-element',
- _legacyUndefinedCheck: true,
behaviors: [Gerrit.SafeTypes],
});
});
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
index fbde87b..b6f1b74 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
@@ -38,7 +38,6 @@
Polymer({
is: 'gr-access-section',
- _legacyUndefinedCheck: true,
properties: {
capabilities: Object,
diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.js b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.js
index edf5845..4c099d6 100644
--- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.js
+++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-admin-group-list',
- _legacyUndefinedCheck: true,
properties: {
/**
diff --git a/polygerrit-ui/app/elements/admin/gr-admin-view/gr-admin-view.js b/polygerrit-ui/app/elements/admin/gr-admin-view/gr-admin-view.js
index 5b728eb..d3f020d 100644
--- a/polygerrit-ui/app/elements/admin/gr-admin-view/gr-admin-view.js
+++ b/polygerrit-ui/app/elements/admin/gr-admin-view/gr-admin-view.js
@@ -22,7 +22,6 @@
Polymer({
is: 'gr-admin-view',
- _legacyUndefinedCheck: true,
properties: {
/** @type {?} */
diff --git a/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js b/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
index a99c9b1..acc76de 100644
--- a/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.js
@@ -25,7 +25,6 @@
Polymer({
is: 'gr-confirm-delete-item-dialog',
- _legacyUndefinedCheck: true,
/**
* Fired when the confirm button is pressed.
diff --git a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.js b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.js
index 128eb85..5e4d102 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.js
@@ -22,7 +22,6 @@
Polymer({
is: 'gr-create-change-dialog',
- _legacyUndefinedCheck: true,
properties: {
repoName: String,
diff --git a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.js b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.js
index ec667ee..01aeb43 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-create-group-dialog',
- _legacyUndefinedCheck: true,
properties: {
params: Object,
diff --git a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.js b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.js
index 65bb46d..4e9da90 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.js
@@ -24,7 +24,6 @@
Polymer({
is: 'gr-create-pointer-dialog',
- _legacyUndefinedCheck: true,
properties: {
detailType: String,
diff --git a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.js b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.js
index ef7edd4..bb2b5f2 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.js
+++ b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-create-repo-dialog',
- _legacyUndefinedCheck: true,
properties: {
params: Object,
diff --git a/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.js b/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.js
index 3b41811..8901d4a 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.js
+++ b/polygerrit-ui/app/elements/admin/gr-group-audit-log/gr-group-audit-log.js
@@ -21,7 +21,6 @@
Polymer({
is: 'gr-group-audit-log',
- _legacyUndefinedCheck: true,
properties: {
groupId: String,
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
index 915f748..958c0ac 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
@@ -25,7 +25,6 @@
Polymer({
is: 'gr-group-members',
- _legacyUndefinedCheck: true,
properties: {
groupId: Number,
diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group.js b/polygerrit-ui/app/elements/admin/gr-group/gr-group.js
index deccab6..68228b4 100644
--- a/polygerrit-ui/app/elements/admin/gr-group/gr-group.js
+++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group.js
@@ -32,7 +32,6 @@
Polymer({
is: 'gr-group',
- _legacyUndefinedCheck: true,
/**
* Fired when the group name changes.
diff --git a/polygerrit-ui/app/elements/admin/gr-plugin-list/gr-plugin-list.js b/polygerrit-ui/app/elements/admin/gr-plugin-list/gr-plugin-list.js
index 9656eee..b77f078 100644
--- a/polygerrit-ui/app/elements/admin/gr-plugin-list/gr-plugin-list.js
+++ b/polygerrit-ui/app/elements/admin/gr-plugin-list/gr-plugin-list.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-plugin-list',
- _legacyUndefinedCheck: true,
properties: {
/**
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access.js b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access.js
index 5459749..94bef54 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access.js
@@ -70,7 +70,6 @@
Polymer({
is: 'gr-repo-access',
- _legacyUndefinedCheck: true,
properties: {
repo: {
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-command/gr-repo-command.js b/polygerrit-ui/app/elements/admin/gr-repo-command/gr-repo-command.js
index 04d9781..026c990 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-command/gr-repo-command.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo-command/gr-repo-command.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-repo-command',
- _legacyUndefinedCheck: true,
properties: {
title: String,
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.js b/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.js
index b6f7039..92f15b0 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.js
@@ -28,7 +28,6 @@
Polymer({
is: 'gr-repo-commands',
- _legacyUndefinedCheck: true,
properties: {
params: Object,
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards.js b/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards.js
index 6b20289..6e38566 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-repo-dashboards',
- _legacyUndefinedCheck: true,
properties: {
repo: {
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.js b/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.js
index e50c498..da8ef52 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.js
@@ -26,7 +26,6 @@
Polymer({
is: 'gr-repo-detail-list',
- _legacyUndefinedCheck: true,
properties: {
/**
diff --git a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.js b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.js
index 37eff2c..918efba 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.js
+++ b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.js
@@ -53,7 +53,6 @@
Polymer({
is: 'gr-repo',
- _legacyUndefinedCheck: true,
properties: {
params: Object,
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js
index 9cf2ad6..8eb39891 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js
@@ -26,7 +26,6 @@
Polymer({
is: 'gr-change-list-item',
- _legacyUndefinedCheck: true,
properties: {
visibleChangeTableColumns: Array,
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
index 455019f..02e9a04 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
@@ -31,7 +31,6 @@
Polymer({
is: 'gr-change-list-view',
- _legacyUndefinedCheck: true,
/**
* Fired when the title of the page should change.
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
index 085ce6e..bfd80e7 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
@@ -24,7 +24,6 @@
Polymer({
is: 'gr-change-list',
- _legacyUndefinedCheck: true,
/**
* Fired when next page key shortcut was pressed.
diff --git a/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.js b/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.js
index b9df583b..19e7a25 100644
--- a/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.js
+++ b/polygerrit-ui/app/elements/change-list/gr-create-change-help/gr-create-change-help.js
@@ -19,7 +19,6 @@
Polymer({
is: 'gr-create-change-help',
- _legacyUndefinedCheck: true,
/**
* Fired when the "Create change" button is tapped.
diff --git a/polygerrit-ui/app/elements/change-list/gr-create-commands-dialog/gr-create-commands-dialog.js b/polygerrit-ui/app/elements/change-list/gr-create-commands-dialog/gr-create-commands-dialog.js
index e4958c5..5abb257 100644
--- a/polygerrit-ui/app/elements/change-list/gr-create-commands-dialog/gr-create-commands-dialog.js
+++ b/polygerrit-ui/app/elements/change-list/gr-create-commands-dialog/gr-create-commands-dialog.js
@@ -25,7 +25,7 @@
Polymer({
is: 'gr-create-commands-dialog',
- _legacyUndefinedCheck: true,
+
properties: {
branch: String,
_createNewCommitCommand: {
diff --git a/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.js b/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.js
index ed87e9e..d601cad 100644
--- a/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.js
+++ b/polygerrit-ui/app/elements/change-list/gr-create-destination-dialog/gr-create-destination-dialog.js
@@ -26,7 +26,7 @@
Polymer({
is: 'gr-create-destination-dialog',
- _legacyUndefinedCheck: true,
+
properties: {
_repo: String,
_branch: String,
diff --git a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.js b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.js
index 44a1140..832400b 100644
--- a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.js
+++ b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view.js
@@ -21,7 +21,6 @@
Polymer({
is: 'gr-dashboard-view',
- _legacyUndefinedCheck: true,
/**
* Fired when the title of the page should change.
diff --git a/polygerrit-ui/app/elements/change-list/gr-embed-dashboard/gr-embed-dashboard.js b/polygerrit-ui/app/elements/change-list/gr-embed-dashboard/gr-embed-dashboard.js
index 14d0cb0..acc4295 100644
--- a/polygerrit-ui/app/elements/change-list/gr-embed-dashboard/gr-embed-dashboard.js
+++ b/polygerrit-ui/app/elements/change-list/gr-embed-dashboard/gr-embed-dashboard.js
@@ -19,7 +19,7 @@
Polymer({
is: 'gr-embed-dashboard',
- _legacyUndefinedCheck: true,
+
properties: {
account: Object,
sections: Array,
diff --git a/polygerrit-ui/app/elements/change-list/gr-repo-header/gr-repo-header.js b/polygerrit-ui/app/elements/change-list/gr-repo-header/gr-repo-header.js
index 67fbd97..7ae4dab 100644
--- a/polygerrit-ui/app/elements/change-list/gr-repo-header/gr-repo-header.js
+++ b/polygerrit-ui/app/elements/change-list/gr-repo-header/gr-repo-header.js
@@ -19,7 +19,7 @@
Polymer({
is: 'gr-repo-header',
- _legacyUndefinedCheck: true,
+
properties: {
/** @type {?String} */
repo: {
diff --git a/polygerrit-ui/app/elements/change-list/gr-user-header/gr-user-header.js b/polygerrit-ui/app/elements/change-list/gr-user-header/gr-user-header.js
index 93464b7..6942705 100644
--- a/polygerrit-ui/app/elements/change-list/gr-user-header/gr-user-header.js
+++ b/polygerrit-ui/app/elements/change-list/gr-user-header/gr-user-header.js
@@ -19,7 +19,7 @@
Polymer({
is: 'gr-user-header',
- _legacyUndefinedCheck: true,
+
properties: {
/** @type {?String} */
userId: {
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
index 87ac4fd7..13977a6 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
@@ -19,6 +19,7 @@
<link rel="import" href="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../../styles/gr-change-metadata-shared-styles.html">
+<link rel="import" href="../../../styles/gr-change-view-integration-shared-styles.html">
<link rel="import" href="../../../styles/gr-voting-styles.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../plugins/gr-endpoint-decorator/gr-endpoint-decorator.html">
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.html b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
index ee75673..ca4600b 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
@@ -176,7 +176,7 @@
<div class$="[[_computeClass(_expanded, showAvatar, message)]]">
<gr-avatar account="[[author]]" image-size="100"></gr-avatar>
<div class="contentContainer">
- <div class="author" on-tap="_handleAuthorTap">
+ <div class="author" on-click="_handleAuthorClick">
<span hidden$="[[!showOnBehalfOf]]">
<span class="name">[[message.real_author.name]]</span>
on behalf of
@@ -233,7 +233,7 @@
</span>
</template>
<template is="dom-if" if="[[message.id]]">
- <span class="date" on-tap="_handleAnchorTap">
+ <span class="date" on-click="_handleAnchorClick">
<gr-date-formatter
has-tooltip
show-date-and-time
@@ -242,7 +242,7 @@
</template>
<iron-icon
id="expandToggle"
- on-tap="_toggleExpanded"
+ on-click="_toggleExpanded"
title="Toggle expanded state"
icon="[[_computeExpandToggleIcon(_expanded)]]">
</span>
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.js b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
index 29abaa0..d2dff92 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.js
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.js
@@ -37,7 +37,7 @@
*/
listeners: {
- tap: '_handleTap',
+ click: '_handleClick',
},
properties: {
@@ -163,13 +163,13 @@
}
},
- _handleTap(e) {
+ _handleClick(e) {
if (this.message.expanded) { return; }
e.stopPropagation();
this.set('message.expanded', true);
},
- _handleAuthorTap(e) {
+ _handleAuthorClick(e) {
if (!this.message.expanded) { return; }
e.stopPropagation();
this.set('message.expanded', false);
@@ -232,7 +232,7 @@
return classes.join(' ');
},
- _handleAnchorTap(e) {
+ _handleAnchorClick(e) {
e.preventDefault();
this.dispatchEvent(new CustomEvent('message-anchor-tap', {
bubbles: true,
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
index c9aea58..3a4f8a7 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.html
@@ -109,7 +109,7 @@
hide-automated="[[_hideAutomated]]"
project-name="[[projectName]]"
show-reply-button="[[showReplyButtons]]"
- on-message-anchor-tap="_handleAnchorTap"
+ on-message-anchor-tap="_handleAnchorClick"
label-extremes="[[_labelExtremes]]"
data-message-id$="[[message.id]]"></gr-message>
</template>
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
index 9fa0290..6e4ddc9 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list.js
@@ -194,7 +194,7 @@
this.handleExpandCollapse(!this._expanded);
},
- _handleAnchorTap(e) {
+ _handleAnchorClick(e) {
this.scrollToMessage(e.detail.id);
},
diff --git a/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting.js b/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting.js
index a0af7f4..0dcd7b8 100644
--- a/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting.js
+++ b/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting.js
@@ -41,14 +41,6 @@
DETECTED: 'Extension detected',
};
- // Page visibility related constants.
- const PAGE_VISIBILITY = {
- TYPE: 'lifecycle',
- CATEGORY: 'Page Visibility',
- // Reported events - alphabetize below.
- STARTED_HIDDEN: 'hidden',
- };
-
// Navigation reporting constants.
const NAVIGATION = {
TYPE: 'nav-report',
@@ -107,8 +99,10 @@
const pending = [];
+ // Variables that hold context info in global scope
const loadedPlugins = [];
const detectedExtensions = [];
+ let reportRepoName = undefined;
const onError = function(oldOnError, msg, url, line, column, error) {
if (oldOnError) {
@@ -189,7 +183,13 @@
reporter(...args) {
const report = (this._isMetricsPluginLoaded() && !pending.length) ?
this.defaultReporter : this.cachingReporter;
- args.splice(4, 0, loadedPlugins, detectedExtensions);
+ const contextInfo = {
+ loadedPlugins,
+ detectedExtensions,
+ repoName: reportRepoName,
+ isInBackgroundTab: document.visibilityState === 'hidden',
+ };
+ args.splice(4, 0, contextInfo);
report.apply(this, args);
},
@@ -199,22 +199,27 @@
* @param {string} category
* @param {string} eventName
* @param {string|number} eventValue
- * @param {Array} plugins
- * @param {Array} extensions
+ * @param {Object} contextInfo
* @param {boolean|undefined} opt_noLog If true, the event will not be
* logged to the JS console.
*/
- defaultReporter(type, category, eventName, eventValue,
- loadedPlugins, detectedExtensions, opt_noLog) {
+ defaultReporter(type, category, eventName, eventValue, contextInfo,
+ opt_noLog) {
const detail = {
type,
category,
name: eventName,
value: eventValue,
};
- if (category === TIMING.CATEGORY_UI_LATENCY) {
- detail.loadedPlugins = loadedPlugins;
- detail.detectedExtensions = detectedExtensions;
+ if (category === TIMING.CATEGORY_UI_LATENCY && contextInfo) {
+ detail.loadedPlugins = contextInfo.loadedPlugins;
+ detail.detectedExtensions = contextInfo.detectedExtensions;
+ }
+ if (contextInfo && contextInfo.repoName) {
+ detail.repoName = contextInfo.repoName;
+ }
+ if (contextInfo && contextInfo.isInBackgroundTab !== undefined) {
+ detail.inBackgroundTab = contextInfo.isInBackgroundTab;
}
document.dispatchEvent(new CustomEvent(type, {detail}));
if (opt_noLog) { return; }
@@ -236,39 +241,34 @@
* @param {string} category
* @param {string} eventName
* @param {string|number} eventValue
- * @param {Array} plugins
- * @param {Array} extensions
+ * @param {Object} contextInfo
* @param {boolean|undefined} opt_noLog If true, the event will not be
* logged to the JS console.
*/
- cachingReporter(type, category, eventName, eventValue,
- plugins, extensions, opt_noLog) {
+ cachingReporter(type, category, eventName, eventValue, contextInfo,
+ opt_noLog) {
if (type === ERROR.TYPE && category === ERROR.CATEGORY) {
console.error(eventValue && eventValue.error || eventName);
}
if (this._isMetricsPluginLoaded()) {
if (pending.length) {
for (const args of pending.splice(0)) {
- this.reporter(...args);
+ this.defaultReporter(...args);
}
}
- this.reporter(type, category, eventName, eventValue,
- plugins, extensions, opt_noLog);
+ this.defaultReporter(type, category, eventName, eventValue, contextInfo,
+ opt_noLog);
} else {
- pending.push([type, category, eventName, eventValue,
- plugins, extensions, opt_noLog]);
+ pending.push([type, category, eventName, eventValue, contextInfo,
+ opt_noLog]);
}
},
/**
* User-perceived app start time, should be reported when the app is ready.
*/
- appStarted(hidden) {
+ appStarted() {
this.timeEnd(TIMING.APP_STARTED);
- if (hidden) {
- this.reporter(PAGE_VISIBILITY.TYPE, PAGE_VISIBILITY.CATEGORY,
- PAGE_VISIBILITY.STARTED_HIDDEN);
- }
},
/**
@@ -297,6 +297,7 @@
this.time(TIMER.DIFF_VIEW_DISPLAYED);
this.time(TIMER.DIFF_VIEW_LOAD_FULL);
this.time(TIMER.FILE_LIST_DISPLAYED);
+ reportRepoName = undefined;
},
locationChanged(page) {
@@ -519,6 +520,10 @@
this.reporter(ERROR_DIALOG.TYPE, ERROR_DIALOG.CATEGORY,
'ErrorDialog: ' + message, {error: new Error(message)});
},
+
+ setRepoName(repoName) {
+ reportRepoName = repoName;
+ },
});
window.GrReporting = GrReporting;
diff --git a/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting_test.html b/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting_test.html
index ec24b19..04a3294 100644
--- a/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting_test.html
+++ b/polygerrit-ui/app/elements/core/gr-reporting/gr-reporting_test.html
@@ -64,15 +64,11 @@
test('appStarted', () => {
sandbox.stub(element, 'now').returns(42);
- element.appStarted(true);
+ element.appStarted();
assert.isTrue(
element.reporter.calledWithExactly(
'timing-report', 'UI Latency', 'App Started', 42
));
- assert.isTrue(
- element.reporter.calledWithExactly(
- 'lifecycle', 'Page Visibility', 'hidden'
- ));
});
test('WebComponentsReady', () => {
@@ -191,7 +187,6 @@
assert.isTrue(element.reporter.calledOnce);
assert.throws(() => {
timer.end();
- done();
}, 'Timer for "foo-bar" already ended.');
});
@@ -290,9 +285,9 @@
// element.pluginLoaded('foo');
element.time('timeAction');
element.timeEnd('timeAction');
- assert.isTrue(element.defaultReporter.getCall(1).calledWith(
+ assert.isTrue(element.defaultReporter.getCall(1).calledWithMatch(
'timing-report', 'UI Latency', 'timeAction', 0,
- ['metrics-xyz1']
+ {loadedPlugins: ['metrics-xyz1']}
));
});
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
index fc84ca8..b7a5238 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
@@ -1043,11 +1043,13 @@
},
_handleProjectDashboardRoute(data) {
+ const project = data.params[0];
this._setParams({
view: Gerrit.Nav.View.DASHBOARD,
- project: data.params[0],
+ project,
dashboard: decodeURIComponent(data.params[1]),
});
+ this.$.reporting.setRepoName(project);
},
_handleGroupInfoRoute(data) {
@@ -1122,27 +1124,33 @@
},
_handleRepoCommandsRoute(data) {
+ const repo = data.params[0];
this._setParams({
view: Gerrit.Nav.View.REPO,
detail: Gerrit.Nav.RepoDetailView.COMMANDS,
- repo: data.params[0],
+ repo,
});
+ this.$.reporting.setRepoName(repo);
},
_handleRepoAccessRoute(data) {
+ const repo = data.params[0];
this._setParams({
view: Gerrit.Nav.View.REPO,
detail: Gerrit.Nav.RepoDetailView.ACCESS,
- repo: data.params[0],
+ repo,
});
+ this.$.reporting.setRepoName(repo);
},
_handleRepoDashboardsRoute(data) {
+ const repo = data.params[0];
this._setParams({
view: Gerrit.Nav.View.REPO,
detail: Gerrit.Nav.RepoDetailView.DASHBOARDS,
- repo: data.params[0],
+ repo,
});
+ this.$.reporting.setRepoName(repo);
},
_handleBranchListOffsetRoute(data) {
@@ -1243,10 +1251,12 @@
},
_handleRepoRoute(data) {
+ const repo = data.params[0];
this._setParams({
view: Gerrit.Nav.View.REPO,
- repo: data.params[0],
+ repo,
});
+ this.$.reporting.setRepoName(repo);
},
_handlePluginListOffsetRoute(data) {
@@ -1308,6 +1318,7 @@
view: Gerrit.Nav.View.CHANGE,
};
+ this.$.reporting.setRepoName(params.project);
this._redirectOrNavigate(params);
},
@@ -1327,7 +1338,7 @@
params.leftSide = address.leftSide;
params.lineNum = address.lineNum;
}
-
+ this.$.reporting.setRepoName(params.project);
this._redirectOrNavigate(params);
},
@@ -1369,24 +1380,28 @@
_handleDiffEditRoute(ctx) {
// Parameter order is based on the regex group number matched.
+ const project = ctx.params[0];
this._redirectOrNavigate({
- project: ctx.params[0],
+ project,
changeNum: ctx.params[1],
patchNum: ctx.params[2],
path: ctx.params[3],
view: Gerrit.Nav.View.EDIT,
});
+ this.$.reporting.setRepoName(project);
},
_handleChangeEditRoute(ctx) {
// Parameter order is based on the regex group number matched.
+ const project = ctx.params[0];
this._redirectOrNavigate({
- project: ctx.params[0],
+ project,
changeNum: ctx.params[1],
patchNum: ctx.params[3],
view: Gerrit.Nav.View.CHANGE,
edit: true,
});
+ this.$.reporting.setRepoName(project);
},
/**
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.html b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.html
index 6469382..27821f1 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.html
@@ -17,6 +17,7 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="../../../behaviors/dom-util-behavior/dom-util-behavior.html">
<link rel="import" href="../../../styles/shared-styles.html">
+<script src="../../../scripts/util.js"></script>
<dom-module id="gr-diff-selection">
<template>
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.js b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.js
index 9cd0527..26104da 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection.js
@@ -161,11 +161,6 @@
},
_handleCopy(e) {
- // Let the browser handle the copy event for polymer 2
- // as selection across shadow DOM will be hard to process
- // If you remove the following line, please remove it from tests also.
- if (window.POLYMER2) return;
-
let commentSelected = false;
const target = this._getCopyEventTarget(e);
if (target.type === 'textarea') { return; }
@@ -186,7 +181,21 @@
},
/**
- * Get the text of the current window selection. If commentSelected is
+ * For Polymer 2, use shadowRoot.getSelection instead.
+ */
+ _getSelection() {
+ let selection;
+ if (window.POLYMER2) {
+ const diffHost = util.querySelector(document.body, 'gr-diff');
+ selection = diffHost &&
+ diffHost.shadowRoot &&
+ diffHost.shadowRoot.getSelection();
+ }
+ return selection ? selection: window.getSelection();
+ },
+
+ /**
+ * Get the text of the current selection. If commentSelected is
* true, it returns only the text of comments within the selection.
* Otherwise it returns the text of the selected diff region.
*
@@ -195,7 +204,7 @@
* @return {string} The selected text.
*/
_getSelectedText(side, commentSelected) {
- const sel = window.getSelection();
+ const sel = this._getSelection();
if (sel.rangeCount != 1) {
return ''; // No multi-select support yet.
}
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection_test.html b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection_test.html
index a2696c2..0f5c6dd 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-selection/gr-diff-selection_test.html
@@ -189,18 +189,12 @@
});
test('ignores copy for non-content Element', () => {
- // See _handleCopy for explanation
- if (window.POLYMER2) return;
-
sandbox.stub(element, '_getSelectedText');
emulateCopyOn(element.querySelector('.not-diff-row'));
assert.isFalse(element._getSelectedText.called);
});
test('asks for text for left side Elements', () => {
- // See _handleCopy for explanation
- if (window.POLYMER2) return;
-
element._cachedDiffBuilder.getSideByLineEl.returns('left');
sandbox.stub(element, '_getSelectedText');
emulateCopyOn(element.querySelector('div.contentText'));
@@ -208,18 +202,12 @@
});
test('reacts to copy for content Elements', () => {
- // See _handleCopy for explanation
- if (window.POLYMER2) return;
-
sandbox.stub(element, '_getSelectedText');
emulateCopyOn(element.querySelector('div.contentText'));
assert.isTrue(element._getSelectedText.called);
});
test('copy event is prevented for content Elements', () => {
- // See _handleCopy for explanation
- if (window.POLYMER2) return;
-
sandbox.stub(element, '_getSelectedText');
element._cachedDiffBuilder.getSideByLineEl.returns('left');
element._getSelectedText.returns('test');
@@ -228,9 +216,6 @@
});
test('inserts text into clipboard on copy', () => {
- // See _handleCopy for explanation
- if (window.POLYMER2) return;
-
sandbox.stub(element, '_getSelectedText').returns('the text');
const event = emulateCopyOn(element.querySelector('div.contentText'));
assert.deepEqual(
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
index 540d6e6..edb676e 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
@@ -400,7 +400,13 @@
const commentSide = threadEl.getAttribute('comment-side');
const lineNum = Number(threadEl.getAttribute('line-num')) ||
GrDiffLine.FILE;
+ const commentRange = threadEl.range || {};
keyLocations[commentSide][lineNum] = true;
+ // Add start_line as well if exists,
+ // the being and end of the range should not be collapsed.
+ if (commentRange.start_line) {
+ keyLocations[commentSide][commentRange.start_line] = true;
+ }
}
return keyLocations;
},
diff --git a/polygerrit-ui/app/elements/gr-app-element.js b/polygerrit-ui/app/elements/gr-app-element.js
index 5692969..385f8e5 100644
--- a/polygerrit-ui/app/elements/gr-app-element.js
+++ b/polygerrit-ui/app/elements/gr-app-element.js
@@ -119,7 +119,7 @@
},
ready() {
- this.$.reporting.appStarted(document.visibilityState === 'hidden');
+ this.$.reporting.appStarted();
this.$.router.start();
this.$.restAPI.getAccount().then(account => {
diff --git a/polygerrit-ui/app/elements/shared/gr-button/gr-button.js b/polygerrit-ui/app/elements/shared/gr-button/gr-button.js
index 5988cde..d88fdb5 100644
--- a/polygerrit-ui/app/elements/shared/gr-button/gr-button.js
+++ b/polygerrit-ui/app/elements/shared/gr-button/gr-button.js
@@ -53,7 +53,6 @@
},
listeners: {
- tap: '_handleAction',
click: '_handleAction',
keydown: '_handleKeydown',
},
diff --git a/polygerrit-ui/app/elements/shared/gr-button/gr-button_test.html b/polygerrit-ui/app/elements/shared/gr-button/gr-button_test.html
index 807d095..2593ed1 100644
--- a/polygerrit-ui/app/elements/shared/gr-button/gr-button_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-button/gr-button_test.html
@@ -41,7 +41,11 @@
const addSpyOn = function(eventName) {
const spy = sandbox.spy();
- element.addEventListener(eventName, spy);
+ if (eventName == 'tap') {
+ Polymer.Gestures.addListener(element, eventName, spy);
+ } else {
+ element.addEventListener(eventName, spy);
+ }
return spy;
};
@@ -64,6 +68,8 @@
assert.isTrue(element.$$('paper-button').disabled);
});
+ // 'tap' event is tested so we don't loose backward compatibility with older
+ // plugins who didn't move to on-click which is faster and well supported.
for (const eventName of ['tap', 'click']) {
test('dispatches ' + eventName + ' event', () => {
const spy = addSpyOn(eventName);
@@ -74,16 +80,16 @@
// Keycodes: 32 for Space, 13 for Enter.
for (const key of [32, 13]) {
- test('dispatches tap event on keycode ' + key, () => {
+ test('dispatches click event on keycode ' + key, () => {
const tapSpy = sandbox.spy();
- element.addEventListener('tap', tapSpy);
+ element.addEventListener('click', tapSpy);
MockInteractions.pressAndReleaseKeyOn(element, key);
assert.isTrue(tapSpy.calledOnce);
});
- test('dispatches no tap event with modifier on keycode ' + key, () => {
+ test('dispatches no click event with modifier on keycode ' + key, () => {
const tapSpy = sandbox.spy();
- element.addEventListener('tap', tapSpy);
+ element.addEventListener('click', tapSpy);
MockInteractions.pressAndReleaseKeyOn(element, key, 'shift');
MockInteractions.pressAndReleaseKeyOn(element, key, 'ctrl');
MockInteractions.pressAndReleaseKeyOn(element, key, 'meta');
@@ -107,9 +113,9 @@
// Keycodes: 32 for Space, 13 for Enter.
for (const key of [32, 13]) {
- test('stops tap event on keycode ' + key, () => {
+ test('stops click event on keycode ' + key, () => {
const tapSpy = sandbox.spy();
- element.addEventListener('tap', tapSpy);
+ element.addEventListener('click', tapSpy);
MockInteractions.pressAndReleaseKeyOn(element, key);
assert.isFalse(tapSpy.called);
});
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html
index 883798e..8b69d2e 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html
@@ -244,7 +244,7 @@
</style>
<div id="container" class="container">
- <div class="header" id="header" on-tap="_handleToggleCollapsed">
+ <div class="header" id="header" on-click="_handleToggleCollapsed">
<div class="headerLeft">
<span class="authorName">[[comment.author.name]]</span>
<span class="draftLabel">DRAFT</span>
@@ -265,7 +265,7 @@
on-click="_handleCommentDelete">
(Delete)
</gr-button>
- <span class="date" on-tap="_handleAnchorTap">
+ <span class="date" on-click="_handleAnchorClick">
<gr-date-formatter
has-tooltip
date-str="[[comment.updated]]"></gr-date-formatter>
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.js b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.js
index 50dfdce..ecfbf60 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.js
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.js
@@ -416,7 +416,7 @@
}, STORAGE_DEBOUNCE_INTERVAL);
},
- _handleAnchorTap(e) {
+ _handleAnchorClick(e) {
e.preventDefault();
if (!this.comment.line) {
return;
diff --git a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.js b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.js
index dec5b1d..59f7d74 100644
--- a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.js
+++ b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.js
@@ -1778,7 +1778,6 @@
method: 'POST',
url: `/projects/${encodeURIComponent(project)}/create.change`,
body: {
- project,
branch,
subject,
topic: opt_topic,
diff --git a/polygerrit-ui/app/styles/gr-change-view-integration-shared-styles.html b/polygerrit-ui/app/styles/gr-change-view-integration-shared-styles.html
new file mode 100644
index 0000000..bebb0bb
--- /dev/null
+++ b/polygerrit-ui/app/styles/gr-change-view-integration-shared-styles.html
@@ -0,0 +1,54 @@
+<!--
+@license
+Copyright (C) 2019 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+ This is shared styles for change-view-integration endpoints.
+ All plugins that registered that endpoint should include this in
+ the component to have a consistent UX:
+
+ <style include="gr-change-view-integration-shared-styles"></style>
+
+ And use those defined class to apply these styles.
+-->
+<dom-module id="gr-change-view-integration-shared-styles">
+ <template>
+ <style>
+ /* TODO(taoalpha): update spacings once change 241809 submitted */
+ .header {
+ color: var(--primary-text-color);
+ background-color: var(--table-header-background-color);
+ justify-content: space-between;
+ padding: .5em var(--default-horizontal-margin, 1rem);
+ border-bottom: 1px solid var(--border-color);
+ }
+ .header .label {
+ font-weight: var(--font-weight-bold);
+ font-size: 1.17em;
+ margin: 0 1em 0 0;
+ }
+ .header .note {
+ color: var(--deemphasized-text-color);
+ }
+ .content {
+ background-color: var(--view-background-color);
+ }
+ .header a,
+ .content a {
+ color: var(--link-color);
+ }
+ </style>
+ </template>
+</dom-module>