Merge "Improve error dialog for 404 errors"
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
index 11e2217..5228578f 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html
@@ -637,6 +637,7 @@
             threads="[[_commentThreads]]"
             change="[[_change]]"
             change-num="[[_changeNum]]"
+            comment-tab="[[_currentView]]"
             logged-in="[[_loggedIn]]"
             only-show-robot-comments-with-human-reply
             on-thread-list-modified="_handleReloadDiffComments"></gr-thread-list>
@@ -654,6 +655,7 @@
             change="[[_change]]"
             change-num="[[_changeNum]]"
             logged-in="[[_loggedIn]]"
+            comment-tab="[[_currentView]]"
             hide-toggle-buttons
             on-thread-list-modified="_handleReloadDiffComments"></gr-thread-list>
       </template>
diff --git a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.html b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.html
index 29b83a3..8a8a9d5 100644
--- a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.html
+++ b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.html
@@ -23,7 +23,7 @@
 <dom-module id="gr-label-scores">
   <template>
     <style include="shared-styles">
-      :host {
+      .scoresTable {
         display: table;
         width: 100%;
       }
@@ -42,15 +42,17 @@
         display: var(--label-no-access-display, table-row);
       }
     </style>
-    <template is="dom-repeat" items="[[_labels]]" as="label">
-      <gr-label-score-row
-          class$="[[_computeLabelAccessClass(label.name, permittedLabels)]]"
-          label="[[label]]"
-          name="[[label.name]]"
-          labels="[[change.labels]]"
-          permitted-labels="[[permittedLabels]]"
-          label-values="[[_labelValues]]"></gr-label-score-row>
-    </template>
+    <div class="scoresTable">
+      <template is="dom-repeat" items="[[_labels]]" as="label">
+        <gr-label-score-row
+            class$="[[_computeLabelAccessClass(label.name, permittedLabels)]]"
+            label="[[label]]"
+            name="[[label.name]]"
+            labels="[[change.labels]]"
+            permitted-labels="[[permittedLabels]]"
+            label-values="[[_labelValues]]"></gr-label-score-row>
+      </template>
+    </div>
     <div class="mergedMessage"
         hidden$="[[!_changeIsMerged(change.status)]]">
       Because this change has been merged, votes may not be decreased.
diff --git a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.html b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.html
index a096aec..eacc0d0 100644
--- a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.html
+++ b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.html
@@ -76,7 +76,7 @@
     </template>
     <div id="threads">
       <template is="dom-if" if="[[!threads.length]]">
-        There are no inline comment threads on any diff for this change.
+        [[_computeNoThreadsMessage(commentTab)]]
       </template>
       <template
           is="dom-repeat"
diff --git a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.js b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.js
index e449fad..d8c7b61 100644
--- a/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.js
+++ b/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list.js
@@ -23,6 +23,17 @@
    * @event thread-list-modified
    * @extends Polymer.Element
    */
+  const NO_THREADS_MESSAGE = 'There are no inline comment threads on any diff '
+    + 'for this change.';
+  const NO_ROBOT_COMMENTS_THREADS_MESSAGE = 'There are no findings for this ' +
+    'patchset.';
+
+  const CommentTabs = {
+    CHANGE_LOG: 0,
+    COMMENT_THREADS: 1,
+    ROBOT_COMMENTS: 2,
+  };
+
   class GrThreadList extends Polymer.GestureEventListeners(
       Polymer.LegacyElementMixin(
           Polymer.Element)) {
@@ -62,6 +73,7 @@
           type: Boolean,
           value: false,
         },
+        commentTab: Number,
       };
     }
 
@@ -71,6 +83,13 @@
       return loggedIn ? 'show' : '';
     }
 
+    _computeNoThreadsMessage(commentTab) {
+      if (commentTab === CommentTabs.ROBOT_COMMENTS) {
+        return NO_ROBOT_COMMENTS_THREADS_MESSAGE;
+      }
+      return NO_THREADS_MESSAGE;
+    }
+
     /**
      * Order as follows:
      *  - Unresolved threads with drafts (reverse chronological)
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 333ca9d..1769014 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.html
@@ -98,9 +98,8 @@
       }
       .robotActions {
         display: flex;
-        justify-content: flex-start;
+        justify-content: flex-end;
         padding-top: var(--spacing-m);
-        border-top: 1px solid var(--border-color);
       }
       .robotActions .action {
         /* Keep button text lined up with output text */