Merge "Record and expose cache definitions"
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
index 95d552b..0e77bbb 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.ts
@@ -1572,6 +1572,7 @@
     // on how much the change view was scrolled.
     // Hence, reset the scroll position here.
     document.documentElement.scrollTop = 0;
+    this.initCursor();
     this.reInitCursor();
     this.diffHost?.initLayers();
     this.classList.remove('hideComments');
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
index f26faae..7aaf3bb 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view_test.ts
@@ -982,6 +982,31 @@
       assert.isFalse(reloadStub.called);
     });
 
+    test('initializePositions re-initializes cursor with focusLineNum', async () => {
+      element.focusLineNum = 10;
+      element.leftSide = false;
+      element.path = 'glados.txt';
+      element.patchNum = 1 as RevisionPatchSetNum;
+      element.basePatchNum = PARENT;
+      await element.updateComplete;
+
+      assertIsDefined(element.cursor);
+      assert.equal(element.cursor.initialLineNumber, 10);
+
+      // Simulate render consuming initialLineNumber
+      element.cursor.reInitCursor();
+      assert.isNull(element.cursor.initialLineNumber);
+
+      const moveToLineNumberSpy = sinon.spy(element.cursor, 'moveToLineNumber');
+
+      // Simulate view becoming active
+      element.isActiveChildView = true;
+      element.initializePositions();
+
+      // Should have re-initialized with proper line number
+      assert.isTrue(moveToLineNumberSpy.calledWith(10, Side.RIGHT));
+    });
+
     test('edit should redirect to edit page', async () => {
       element.loggedIn = true;
       element.path = 't.txt';