Merge "Fix minor whitespace issue in comment email"
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/oauth/OAuthRealm.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/oauth/OAuthRealm.java
index 69a1460..6b92289 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/auth/oauth/OAuthRealm.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/oauth/OAuthRealm.java
@@ -66,9 +66,8 @@
    *
    * {@link AccountManager} calls this method without password
    * if authenticity of the user has already been established.
-   * In that case the {@link AuthRequest} is supposed to contain
-   * a resolved email address and we can skip the authentication
-   * request to the {@code OAuthLoginService}.
+   * In that case we can skip the authentication request to the
+   * {@code OAuthLoginService}.
    *
    * @param who the authentication request.
    *
@@ -82,8 +81,7 @@
    */
   @Override
   public AuthRequest authenticate(AuthRequest who) throws AccountException {
-    if (Strings.isNullOrEmpty(who.getPassword()) &&
-        !Strings.isNullOrEmpty(who.getEmailAddress())) {
+    if (Strings.isNullOrEmpty(who.getPassword())) {
       return who;
     }
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
index 337edbe..c7a0e5c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
@@ -160,9 +160,9 @@
 
   private static final String PLUGIN = "plugin";
 
-  private static final SubmitType defaultSubmitAction =
+  private static final SubmitType DEFAULT_SUBMIT_ACTION =
       SubmitType.MERGE_IF_NECESSARY;
-  private static final ProjectState defaultStateValue =
+  private static final ProjectState DEFAULT_STATE_VALUE =
       ProjectState.ACTIVE;
 
   private Project.NameKey projectName;
@@ -499,9 +499,10 @@
     p.setRejectImplicitMerges(getEnum(rc, RECEIVE, null,
         KEY_REJECT_IMPLICIT_MERGES, InheritableBoolean.INHERIT));
 
-    p.setSubmitType(getEnum(rc, SUBMIT, null, KEY_ACTION, defaultSubmitAction));
+    p.setSubmitType(getEnum(rc, SUBMIT, null, KEY_ACTION,
+        DEFAULT_SUBMIT_ACTION));
     p.setUseContentMerge(getEnum(rc, SUBMIT, null, KEY_MERGE_CONTENT, InheritableBoolean.INHERIT));
-    p.setState(getEnum(rc, PROJECT, null, KEY_STATE, defaultStateValue));
+    p.setState(getEnum(rc, PROJECT, null, KEY_STATE, DEFAULT_STATE_VALUE));
 
     p.setDefaultDashboard(rc.getString(DASHBOARD, null, KEY_DEFAULT));
     p.setLocalDefaultDashboard(rc.getString(DASHBOARD, null, KEY_LOCAL_DEFAULT));
@@ -953,10 +954,10 @@
     set(rc, RECEIVE, null, KEY_REJECT_IMPLICIT_MERGES,
         p.getRejectImplicitMerges(), InheritableBoolean.INHERIT);
 
-    set(rc, SUBMIT, null, KEY_ACTION, p.getSubmitType(), defaultSubmitAction);
+    set(rc, SUBMIT, null, KEY_ACTION, p.getSubmitType(), DEFAULT_SUBMIT_ACTION);
     set(rc, SUBMIT, null, KEY_MERGE_CONTENT, p.getUseContentMerge(), InheritableBoolean.INHERIT);
 
-    set(rc, PROJECT, null, KEY_STATE, p.getState(), defaultStateValue);
+    set(rc, PROJECT, null, KEY_STATE, p.getState(), DEFAULT_STATE_VALUE);
 
     set(rc, DASHBOARD, null, KEY_DEFAULT, p.getDefaultDashboard());
     set(rc, DASHBOARD, null, KEY_LOCAL_DEFAULT, p.getLocalDefaultDashboard());
diff --git a/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list.js b/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list.js
index 87d7116..4e0ff94 100644
--- a/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list.js
+++ b/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list.js
@@ -105,7 +105,6 @@
     },
 
     additions: function() {
-      var result = [];
       return this.accounts.filter(function(account) {
         return account._pendingAdd;
       }).map(function(account) {
@@ -115,7 +114,6 @@
           return {account: account};
         }
       });
-      return result;
     },
   });
 })();
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
index e35d3cb..9fdc2a9 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
@@ -484,7 +484,7 @@
         switch (action.__key) {
           case ChangeActions.REVERT:
             this._setLabelValuesOnRevert(obj.change_id);
-            // Fall through.
+            /* falls through */
           case RevisionActions.CHERRYPICK:
             page.show(this.changePath(obj._number));
             break;
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
index 5fe41ec..c180f46 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
@@ -334,15 +334,6 @@
       test('branch name cleared when re-open cherrypick', function() {
         var cherryPickButton =
             element.$$('gr-button[data-action-key="cherrypick"]');
-        var action = {
-          __key: 'cherrypick',
-          __type: 'revision',
-          __primary: false,
-          enabled: true,
-          label: 'Cherry Pick',
-          method: 'POST',
-          title: 'Cherry pick change to a different branch',
-        };
         var emptyBranchName = '';
         element.$.confirmCherrypick.branch = 'master';
 
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 80d73a4..d8d57244 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
@@ -515,14 +515,14 @@
         patchNum: 2,
       };
       element._change = {
-          change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
-          revisions: {
-            rev1: {_number: 1},
-          },
-          current_revision: 'rev1',
-          status: element.ChangeStatus.MERGED,
-          labels: {},
-          actions: {},
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        revisions: {
+          rev1: {_number: 1},
+        },
+        current_revision: 'rev1',
+        status: element.ChangeStatus.MERGED,
+        labels: {},
+        actions: {},
       };
 
       var urlParamStub = sandbox.stub(element, '_getUrlParameter',
@@ -540,6 +540,7 @@
     suite('scroll related tests', function() {
       test('document scrolling calls function to set scroll height',
           function(done) {
+            var originalHeight = document.body.scrollHeight;
             var scrollStub = sandbox.stub(element, '_handleScroll',
                 function() {
                   assert.isTrue(scrollStub.called);
@@ -547,7 +548,6 @@
                       originalHeight + 'px';
                   done();
                 });
-            var originalHeight = document.body.scrollHeight;
             document.body.style.height = '10000px';
             document.body.scrollTop = TEST_SCROLL_TOP_PX;
             element._handleScroll();
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html
index 007c0fc..be6d1c6 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list.html
@@ -138,6 +138,7 @@
         box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
         display: block;
         margin: .25em 0 1em;
+        overflow: auto;
       }
       @media screen and (max-width: 50em) {
         .row[selected] {
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
index 91c6b5e..0caa6be 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
@@ -150,9 +150,11 @@
         var toggleLeftDiffStub = sandbox.stub();
         // Property getter cannot be stubbed w/ sandbox due to a bug in Sinon.
         // https://github.com/sinonjs/sinon/issues/781
-        var diffsStub = sinon.stub(element, 'diffs', {get: function() {
-          return [{toggleLeftDiff: toggleLeftDiffStub}];
-        }});
+        var diffsStub = sinon.stub(element, 'diffs', {
+          get: function() {
+            return [{toggleLeftDiff: toggleLeftDiffStub}];
+          },
+        });
         MockInteractions.pressAndReleaseKeyOn(element, 65, 'shift');  // 'A'
         assert.isTrue(toggleLeftDiffStub.calledOnce);
         diffsStub.restore();
@@ -401,7 +403,6 @@
       };
       element.selectedIndex = 0;
       flushAsynchronousOperations();
-      var select = element.$.modeSelect;
       var diffDisplay = element.diffs[0];
       element._userPrefs = {diff_view: 'SIDE_BY_SIDE'};
       assert.equal(element._getDiffViewMode(), 'SIDE_BY_SIDE');
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
index 01f734b..2398287 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
@@ -116,11 +116,6 @@
     });
 
     test('messages', function() {
-      var dates = [
-        '2016-01-12 20:28:33.038000',
-        '2016-01-12 21:28:33.038000',
-        '2016-01-12 22:28:33.038000'
-      ];
       var author = {
         _account_id: 42,
         name: 'Marvin the Paranoid Android',
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 082f81b..85b1119 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
@@ -74,7 +74,7 @@
     });
 
     test('time and timeEnd', function() {
-      var nowStub = sinon.stub(element, 'now').returns(0);
+      var nowStub = sandbox.stub(element, 'now').returns(0);
       element.time('foo');
       nowStub.returns(1);
       element.time('bar');
@@ -99,7 +99,7 @@
 
       test('pluginsLoaded reports time', function() {
         Gerrit._arePluginsLoaded.returns(true);
-        var nowStub = sinon.stub(element, 'now').returns(42);
+        sandbox.stub(element, 'now').returns(42);
         element.pluginsLoaded();
         assert.isTrue(element.defaultReporter.calledWithExactly(
             'timing-report', 'UI Latency', 'PluginsLoaded', 42
diff --git a/polygerrit-ui/app/elements/core/gr-search-bar/gr-search-bar.js b/polygerrit-ui/app/elements/core/gr-search-bar/gr-search-bar.js
index 4fd1e19..9caed8c 100644
--- a/polygerrit-ui/app/elements/core/gr-search-bar/gr-search-bar.js
+++ b/polygerrit-ui/app/elements/core/gr-search-bar/gr-search-bar.js
@@ -164,7 +164,7 @@
             return accounts.map(function(acct) {
               return predicate + ':"' + acct.name + ' <' + acct.email + '>"';
             });
-      });
+          });
     },
 
     /**
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-side-by-side.js b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-side-by-side.js
index 1cb8cc7..126882c 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-side-by-side.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-side-by-side.js
@@ -69,7 +69,6 @@
   GrDiffBuilderSideBySide.prototype._getNextContentOnSide = function(
       content, side) {
     var tr = content.parentElement.parentElement;
-    var content;
     while (tr = tr.nextSibling) {
       content = tr.querySelector(
           'td.content .contentText[data-side="' + side + '"]');
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-unified.js b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-unified.js
index 960bf46..e1f3ed1 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-unified.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder-unified.js
@@ -62,7 +62,6 @@
   GrDiffBuilderUnified.prototype._getNextContentOnSide = function(
       content, side) {
     var tr = content.parentElement.parentElement;
-    var content;
     while (tr = tr.nextSibling) {
       if (tr.classList.contains('both') || (
           (side === 'left' && tr.classList.contains('remove')) ||
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html
index 0a591ae..11de0ba 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html
@@ -234,10 +234,6 @@
     });
 
     test('collapsible drafts', function() {
-      element.addEventListener('reply', function(e) {
-        assert.ok(e.detail.comment);
-        done();
-      });
       assert.isTrue(element.collapsed);
       assert.isFalse(isVisible(element.$$('gr-linked-text')),
           'gr-linked-text is not visible');
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
index 7ae5c34..f995b22 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
@@ -31,17 +31,26 @@
     <style>
       :host {
         background-color: var(--view-background-color);
-        display: block;
+        display: flex;
+        flex-direction: column;
+        height: 100%;
       }
-      header,
-      .subHeader {
+      .titleHeader,
+      .patchRangeHeader {
         align-items: center;
         display: flex;
         justify-content: space-between;
       }
-      header {
+      .titleHeader {
         padding: .75em var(--default-horizontal-margin);
       }
+      .patchRangeHeader {
+        margin: 0 var(--default-horizontal-margin) .75em;
+      }
+      #diff {
+        flex: 1;
+        overflow: auto;
+      }
       .navLink:not([href]) {
         color: #999;
       }
@@ -106,9 +115,6 @@
         padding: 0 var(--default-horizontal-margin) 1em;
         color: #666;
       }
-      .subHeader {
-        margin: 0 var(--default-horizontal-margin) .75em;
-      }
       .prefsButton {
         text-align: right;
       }
@@ -135,59 +141,61 @@
       }
     </style>
     <header>
-      <h3>
-        <a href$="[[_computeChangePath(_changeNum, _patchRange.*, _change.revisions)]]">
-          [[_changeNum]]</a><span>:</span>
-        <span>[[_change.subject]]</span>
-        <span class="dash">—</span>
-        <input id="reviewed"
-            class="reviewed"
-            type="checkbox"
-            on-change="_handleReviewedChange"
-            hidden$="[[!_loggedIn]]" hidden>
-        <div class="jumpToFileContainer">
-          <gr-button link class="dropdown-trigger" id="trigger" on-tap="_showDropdownTapHandler">
-            <span>[[_computeFileDisplayName(_path)]]</span>
-            <span class="downArrow">&#9660;</span>
-          </gr-button>
-          <iron-dropdown id="dropdown" vertical-align="top" vertical-offset="25">
-            <div class="dropdown-content">
-              <template
-                  is="dom-repeat"
-                  items="[[_fileList]]"
-                  as="path"
-                  initial-count="75">
-                <a href$="[[_computeDiffURL(_changeNum, _patchRange.*, path)]]"
-                   selected$="[[_computeFileSelected(path, _path)]]"
-                   data-key-nav$="[[_computeKeyNav(path, _path, _fileList)]]"
-                   on-tap="_handleFileTap">[[_computeFileDisplayName(path)]]</a>
+      <div class="titleHeader">
+        <h3>
+          <a href$="[[_computeChangePath(_changeNum, _patchRange.*, _change.revisions)]]">
+            [[_changeNum]]</a><span>:</span>
+          <span>[[_change.subject]]</span>
+          <span class="dash">—</span>
+          <input
+              id="reviewed"
+              class="reviewed"
+              type="checkbox"
+              on-change="_handleReviewedChange"
+              hidden$="[[!_loggedIn]]"
+              hidden>
+          <div class="jumpToFileContainer">
+            <gr-button link class="dropdown-trigger" id="trigger" on-tap="_showDropdownTapHandler">
+              <span>[[_computeFileDisplayName(_path)]]</span>
+              <span class="downArrow">&#9660;</span>
+            </gr-button>
+            <iron-dropdown id="dropdown" vertical-align="top" vertical-offset="25">
+              <div class="dropdown-content">
+                <template
+                    is="dom-repeat"
+                    items="[[_fileList]]"
+                    as="path"
+                    initial-count="75">
+                  <a href$="[[_computeDiffURL(_changeNum, _patchRange.*, path)]]"
+                     selected$="[[_computeFileSelected(path, _path)]]"
+                     data-key-nav$="[[_computeKeyNav(path, _path, _fileList)]]"
+                     on-tap="_handleFileTap">[[_computeFileDisplayName(path)]]</a>
+                </template>
+              </div>
+            </iron-dropdown>
+          </div>
+          <div class="mobileJumpToFileContainer">
+            <select on-change="_handleMobileSelectChange">
+              <template is="dom-repeat" items="[[_fileList]]" as="path">
+                <option
+                    value$="[[path]]"
+                    selected$="[[_computeFileSelected(path, _path)]]">
+                  [[_computeTruncatedFileDisplayName(path)]]
+                </option>
               </template>
-            </div>
-          </iron-dropdown>
+            </select>
+          </div>
+        </h3>
+        <div>
+          <a class="navLink"
+             href$="[[_computeNavLinkURL(_path, _fileList, -1, 1)]]">Prev</a>
+          /
+          <a class="navLink"
+             href$="[[_computeNavLinkURL(_path, _fileList, 1, 1)]]">Next</a>
         </div>
-        <div class="mobileJumpToFileContainer">
-          <select on-change="_handleMobileSelectChange">
-            <template is="dom-repeat" items="[[_fileList]]" as="path">
-              <option
-                  value$="[[path]]"
-                  selected$="[[_computeFileSelected(path, _path)]]">
-                [[_computeTruncatedFileDisplayName(path)]]
-              </option>
-            </template>
-          </select>
-        </div>
-      </h3>
-      <div>
-        <a class="navLink"
-            href$="[[_computeNavLinkURL(_path, _fileList, -1, 1)]]">Prev</a>
-        /
-        <a class="navLink"
-            href$="[[_computeNavLinkURL(_path, _fileList, 1, 1)]]">Next</a>
       </div>
-    </header>
-    <div class="loading" hidden$="[[!_loading]]">Loading...</div>
-    <div hidden$="[[_loading]]" hidden>
-      <div class="subHeader">
+      <div class="loading" hidden$="[[!_loading]]">Loading...</div>
+      <div class="patchRangeHeader" hidden hidden$="[[_loading]]">
         <gr-patch-range-select
             path="[[_path]]"
             change-num="[[_changeNum]]"
@@ -208,35 +216,38 @@
           <span hidden$="[[_computePrefsButtonHidden(_prefs, _loggedIn)]]">
             <span
                 hidden$="[[_computeModeSelectHidden(_isImageDiff)]]">/</span>
-            <gr-button link
+            <gr-button
+                link
                 class="prefsButton"
                 on-tap="_handlePrefsTap">Preferences</gr-button>
           </span>
         </div>
+        <gr-overlay id="prefsOverlay" with-backdrop>
+          <gr-diff-preferences
+              id="diffPreferences"
+              prefs="{{_prefs}}"
+              local-prefs="{{_localPrefs}}"
+              on-save="_handlePrefsSave"
+              on-cancel="_handlePrefsCancel"></gr-diff-preferences>
+        </gr-overlay>
       </div>
-      <gr-overlay id="prefsOverlay" with-backdrop>
-        <gr-diff-preferences
-            id="diffPreferences"
-            prefs="{{_prefs}}"
-            local-prefs="{{_localPrefs}}"
-            on-save="_handlePrefsSave"
-            on-cancel="_handlePrefsCancel"></gr-diff-preferences>
-      </gr-overlay>
-      <gr-diff
-          id="diff"
-          project="[[_change.project]]"
-          commit="[[_change.current_revision]]"
-          is-image-diff="{{_isImageDiff}}"
-          files-weblinks="{{_filesWeblinks}}"
-          change-num="[[_changeNum]]"
-          patch-range="[[_patchRange]]"
-          path="[[_path]]"
-          prefs="[[_prefs]]"
-          project-config="[[_projectConfig]]"
-          view-mode="[[_diffMode]]"
-          on-line-selected="_onLineSelected">
-      </gr-diff>
-    </div>
+    </header>
+    <gr-diff
+        id="diff"
+        hidden
+        hidden$="[[_loading]]"
+        project="[[_change.project]]"
+        commit="[[_change.current_revision]]"
+        is-image-diff="{{_isImageDiff}}"
+        files-weblinks="{{_filesWeblinks}}"
+        change-num="[[_changeNum]]"
+        patch-range="[[_patchRange]]"
+        path="[[_path]]"
+        prefs="[[_prefs]]"
+        project-config="[[_projectConfig]]"
+        view-mode="[[_diffMode]]"
+        on-line-selected="_onLineSelected">
+    </gr-diff>
     <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
     <gr-storage id="storage"></gr-storage>
     <gr-diff-cursor id="cursor"></gr-diff-cursor>
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
index c35c739..e913659 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.html
@@ -489,6 +489,7 @@
       resolvePrefs({diff_view: 'UNIFIED'});
       flushAsynchronousOperations();
       assert.equal(select.value, 'SIDE_BY_SIDE');
+      getPreferencesStub.restore();
     });
 
     test('unified view is always default on small screens', function() {
@@ -522,6 +523,7 @@
 
       // On small screens, unified should override user perferences
       assert.equal(select.value, 'UNIFIED_DIFF');
+      getPreferencesStub.restore();
     });
 
     test('_loadHash', function() {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html
index 565bfab..ca2de57 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.html
@@ -44,7 +44,6 @@
         border-top: 1px solid #eee;
         display: flex;
         font: 12px var(--monospace-font-family);
-        overflow-x: auto;
         will-change: transform;
       }
       table {
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 e3492a8..d3d78c4 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff.js
@@ -396,12 +396,12 @@
           this.patchRange.patchNum,
           this.path,
           this._handleGetDiffError.bind(this)).then(function(diff) {
-               this.filesWeblinks = {
-                 meta_a: diff && diff.meta_a && diff.meta_a.web_links,
-                 meta_b: diff && diff.meta_b && diff.meta_b.web_links,
-               };
-               return diff;
-             }.bind(this));
+            this.filesWeblinks = {
+              meta_a: diff && diff.meta_a && diff.meta_a.web_links,
+              meta_b: diff && diff.meta_b && diff.meta_b.web_links,
+            };
+            return diff;
+          }.bind(this));
     },
 
     _getDiffComments: function() {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
index 77dce25d..7e20a5b 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
@@ -493,6 +493,7 @@
           });
           var spy = sinon.spy(element, '_handleShowDiff');
           element.set('expanded', true);
+          assert.isTrue(spy.called);
         });
       });
     });
diff --git a/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.html b/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.html
index 68b7528..eae77ef 100644
--- a/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.html
@@ -173,9 +173,6 @@
         line.beforeNumber = 36;
         el.setAttribute('data-side', 'right');
 
-        var expectedStart = 6;
-        var expectedLength = line.text.length - expectedStart;
-
         element.annotate(el, line);
 
         assert.isFalse(annotateElementStub.called);
diff --git a/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js b/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
index 84e97bd..1103c03 100644
--- a/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
+++ b/polygerrit-ui/app/elements/diff/gr-syntax-layer/gr-syntax-layer.js
@@ -47,7 +47,6 @@
     'text/x-yaml': 'yaml',
   };
   var ASYNC_DELAY = 10;
-  var HLJS_PATH = 'bower_components/highlightjs/highlight.min.js';
 
   var CLASS_WHITELIST = {
     'gr-diff gr-syntax gr-syntax-literal': true,
@@ -278,8 +277,8 @@
      * @param {!Object} state The processing state for the layer.
      */
     _processNextLine: function(state) {
-      var baseLine = undefined;
-      var revisionLine = undefined;
+      var baseLine;
+      var revisionLine;
 
       var section = this.diff.content[state.sectionIndex];
       if (section.ab) {
diff --git a/polygerrit-ui/app/elements/gr-app.html b/polygerrit-ui/app/elements/gr-app.html
index a403e6c..acee383 100644
--- a/polygerrit-ui/app/elements/gr-app.html
+++ b/polygerrit-ui/app/elements/gr-app.html
@@ -41,8 +41,8 @@
     <style>
       :host {
         display: flex;
-        min-height: 100vh;
         flex-direction: column;
+        height: 100vh;
       }
       gr-main-header,
       footer {
@@ -58,6 +58,7 @@
       main {
         flex: 1;
         position: relative;
+        overflow: scroll;
       }
       .errorView {
         align-items: center;
diff --git a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface_test.html b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface_test.html
index ecd1a07..392c320 100644
--- a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface_test.html
@@ -311,7 +311,7 @@
           text: function() { return Promise.resolve(')]}\'{}'); }
         },
       ];
-      var fetchStub = sandbox.stub(window, 'fetch', function(url) {
+      sandbox.stub(window, 'fetch', function(url) {
         if (url === '/accounts/self/detail') {
           return Promise.resolve(responses.shift());
         }