Merge "Show the latest commit message always in the overview"
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 8df807e..cad4298 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
@@ -234,9 +234,9 @@
             <div class="commitMessage">
               <gr-editable-content id="commitMessageEditor"
                   editing="[[_editingCommitMessage]]"
-                  content="{{_commitInfo.message}}">
+                  content="{{_latestCommitMessage}}">
                 <gr-linked-text pre
-                    content="[[_commitInfo.message]]"
+                    content="[[_latestCommitMessage]]"
                     config="[[_projectConfig.commentlinks]]"></gr-linked-text>
               </gr-editable-content>
               <gr-button link
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index c7cb978..726e7e5 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -66,7 +66,11 @@
       _hideEditCommitMessage: {
         type: Boolean,
         computed: '_computeHideEditCommitMessage(_loggedIn, ' +
-            '_editingCommitMessage, _change.*, _patchRange.patchNum)',
+            '_editingCommitMessage)',
+      },
+      _latestCommitMessage: {
+        type: String,
+        value: '',
       },
       _patchRange: Object,
       _allPatchSets: {
@@ -123,7 +127,7 @@
         this.$.commitMessageEditor.disabled = false;
         if (!resp.ok) { return; }
 
-        this.set('_commitInfo.message', message);
+        this._latestCommitMessage = message;
         this._editingCommitMessage = false;
         this._reloadWindow();
       }.bind(this)).catch(function(err) {
@@ -148,18 +152,8 @@
           }.bind(this));
     },
 
-    _computeHideEditCommitMessage: function(loggedIn, editing, changeRecord,
-        patchNum) {
-      if (!changeRecord || !loggedIn || editing) { return true; }
-
-      patchNum = parseInt(patchNum, 10);
-      if (isNaN(patchNum)) { return true; }
-
-      var change = changeRecord.base;
-      if (!change.current_revision) { return true; }
-      if (change.revisions[change.current_revision]._number !== patchNum) {
-        return true;
-      }
+    _computeHideEditCommitMessage: function(loggedIn, editing) {
+      if (!loggedIn || editing) { return true; }
 
       return false;
     },
@@ -551,6 +545,14 @@
           }.bind(this));
     },
 
+    _getLatestCommitMessage: function() {
+      return this.$.restAPI.getChangeCommitInfo(this._changeNum,
+          this._computeLatestPatchNum(this._allPatchSets)).then(
+              function(commitInfo) {
+                this._latestCommitMessage = commitInfo.message;
+              }.bind(this));
+    },
+
     _getCommitInfo: function() {
       return this.$.restAPI.getChangeCommitInfo(
           this._changeNum, this._patchRange.patchNum).then(
@@ -593,6 +595,7 @@
         if (!this._change) { return Promise.resolve(); }
 
         return Promise.all([
+          this._getLatestCommitMessage(),
           this.$.relatedChanges.reload(),
           this._getProjectConfig(),
         ]);
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
index 42f3e29..7f9fb02 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
@@ -332,23 +332,10 @@
     });
 
     test('show commit message edit button', function() {
-      var changeRecord = {
-        base: {
-          revisions: {
-            rev1: {_number: 1},
-            rev2: {_number: 2},
-          },
-          current_revision: 'rev2',
-        },
-      };
-      assert.isTrue(element._computeHideEditCommitMessage(
-          false, false, changeRecord, '2'));
-      assert.isTrue(element._computeHideEditCommitMessage(
-          true, true, changeRecord, '2'));
-      assert.isTrue(element._computeHideEditCommitMessage(
-          true, false, changeRecord, '1'));
-      assert.isFalse(element._computeHideEditCommitMessage(
-          true, false, changeRecord, '2'));
+      assert.isTrue(element._computeHideEditCommitMessage(false, false));
+      assert.isTrue(element._computeHideEditCommitMessage(true, true));
+      assert.isTrue(element._computeHideEditCommitMessage(false, true));
+      assert.isFalse(element._computeHideEditCommitMessage(true, false));
     });
 
     test('topic is coalesced to null', function(done) {