diff --git a/reviewboard/static/rb/js/common/views/pageView.ts b/reviewboard/static/rb/js/common/views/pageView.ts
index 8790a67360aeac6ccafd9b7fb28521e1f206d6eb..f5f524dd0b0a45a9379ea6088973b69a11898fd5 100644
--- a/reviewboard/static/rb/js/common/views/pageView.ts
+++ b/reviewboard/static/rb/js/common/views/pageView.ts
@@ -158,7 +158,7 @@ export class PageView<
      * Subclasses should not override this. Instead, they should override
      * :js:func:`RB.PageView.renderPage``.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const options = this.options;
         const $body = options.$body || $(document.body);
 
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/reviewReplyDraftBannerView.ts b/reviewboard/static/rb/js/reviewRequestPage/views/reviewReplyDraftBannerView.ts
index 49aa0c0efcb10acf09aa272a09fba6d17a631fb8..01fa1c0168f11ced773a19f6bdf57e7a34b35f78 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/reviewReplyDraftBannerView.ts
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/reviewReplyDraftBannerView.ts
@@ -90,7 +90,7 @@ export class ReviewReplyDraftBannerView extends FloatingBannerView<
      *     RB.ReviewRequestPage.ReviewReplyDraftBannerView:
      *     This object, for chaining.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
 
         this.$el.html(ReviewReplyDraftBannerView.template({
@@ -174,7 +174,7 @@ export class ReviewReplyDraftStaticBannerView extends BaseView {
     /**
      * Render the banner.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(ReviewReplyDraftStaticBannerView.template({
             draftText: _`This reply is a draft.`,
             reminderText: _`Be sure to publish when finished.`,
diff --git a/reviewboard/static/rb/js/reviews/views/abstractReviewableView.ts b/reviewboard/static/rb/js/reviews/views/abstractReviewableView.ts
index d4b5fd06cc82a1375cca9eaad89b45b27c89aead..7c4579f64fbf9369f76241f5f02fc9f6ba566876 100644
--- a/reviewboard/static/rb/js/reviews/views/abstractReviewableView.ts
+++ b/reviewboard/static/rb/js/reviews/views/abstractReviewableView.ts
@@ -86,7 +86,7 @@ export class AbstractReviewableView<
      * This will call the subclass's renderContent(), and then handle
      * rendering each comment block on the reviewable.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.renderContent();
 
         this.model.commentBlocks.each(this._addCommentBlockView, this);
diff --git a/reviewboard/static/rb/js/reviews/views/commentDialogView.ts b/reviewboard/static/rb/js/reviews/views/commentDialogView.ts
index 1a286c94ebc7ff813050f3a63273807c61f0c94d..a472864a478fed8eb1cb79eb5c6be4dc4d3406d5 100644
--- a/reviewboard/static/rb/js/reviews/views/commentDialogView.ts
+++ b/reviewboard/static/rb/js/reviews/views/commentDialogView.ts
@@ -510,7 +510,7 @@ export class CommentDialogView extends BaseView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const model = this.model;
         const userSession = UserSession.instance;
         const reviewRequest = model.get('reviewRequest');
diff --git a/reviewboard/static/rb/js/reviews/views/diffCommentsHintView.ts b/reviewboard/static/rb/js/reviews/views/diffCommentsHintView.ts
index b79f90048c687e15a7152bb58546bd3236abec21..1867a763e615657c305c6f13bb9a3cdf5cf6075a 100644
--- a/reviewboard/static/rb/js/reviews/views/diffCommentsHintView.ts
+++ b/reviewboard/static/rb/js/reviews/views/diffCommentsHintView.ts
@@ -24,7 +24,7 @@ export class DiffCommentsHintView extends BaseView<DiffCommentsHint> {
     /**
      * Render the view.
      */
-    onRender() {
+    protected onRender() {
         const model = this.model;
 
         if (!model.get('hasOtherComments')) {
diff --git a/reviewboard/static/rb/js/reviews/views/diffFileIndexView.ts b/reviewboard/static/rb/js/reviews/views/diffFileIndexView.ts
index ca2232a97d1a8fdfddee30804ae1e891a4306002..4aa86818cf11b014739e9cef053a8447f10970b5 100644
--- a/reviewboard/static/rb/js/reviews/views/diffFileIndexView.ts
+++ b/reviewboard/static/rb/js/reviews/views/diffFileIndexView.ts
@@ -219,7 +219,7 @@ export class DiffFileIndexView extends BaseView<
     /**
      * Render the view to the page.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         // Remove the spinner.
         this.$el.empty();
 
diff --git a/reviewboard/static/rb/js/reviews/views/diffReviewableView.ts b/reviewboard/static/rb/js/reviews/views/diffReviewableView.ts
index eaa06f7e5719e791c30e30ce0b8f73bcbe79e9ac..7887e06a5fe2ff295380efc253da38d063f38b3f 100644
--- a/reviewboard/static/rb/js/reviews/views/diffReviewableView.ts
+++ b/reviewboard/static/rb/js/reviews/views/diffReviewableView.ts
@@ -134,7 +134,7 @@ export class DiffReviewableView extends AbstractReviewableView<
     /**
      * Render the reviewable.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
 
         this._centered = new CenteredElementManager();
diff --git a/reviewboard/static/rb/js/reviews/views/fileAttachmentThumbnailView.ts b/reviewboard/static/rb/js/reviews/views/fileAttachmentThumbnailView.ts
index f11fab3f334f5912eb24f73ddf92effd296e7190..4f8cc03a12b5a6b0cbf36962ad65f6d0dc9a32d7 100644
--- a/reviewboard/static/rb/js/reviews/views/fileAttachmentThumbnailView.ts
+++ b/reviewboard/static/rb/js/reviews/views/fileAttachmentThumbnailView.ts
@@ -294,7 +294,7 @@ export class FileAttachmentThumbnailView extends BaseView<
      * In either case, this will set up the caption editor and other signals
      * to control the lifetime of the thumbnail.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         /*
          * Until FileAttachmentThumbnailView is the only thing rendering
          * thumbnails, we'll be in a situation where we may either be working
diff --git a/reviewboard/static/rb/js/reviews/views/imageReviewableView.ts b/reviewboard/static/rb/js/reviews/views/imageReviewableView.ts
index ab7f2d66c40e1bfa138d3f8b2943f17d2e49face..263306c4b49177237795f6c25c64af6307b60a5b 100644
--- a/reviewboard/static/rb/js/reviews/views/imageReviewableView.ts
+++ b/reviewboard/static/rb/js/reviews/views/imageReviewableView.ts
@@ -291,7 +291,7 @@ class ImageAttachmentView extends BaseImageView {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.attr({
             src: this.model.get('imageURL'),
             title: this.model.get('caption'),
@@ -369,7 +369,7 @@ class ImageDifferenceDiffView extends BaseImageView {
      * created and loaded. After loading, _onImagesLoaded will handle
      * populating the canvas with the difference view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(ImageDifferenceDiffView.template(this.model.attributes));
 
         this.$commentRegion = this.$('canvas');
@@ -522,7 +522,7 @@ class ImageOnionDiffView extends BaseImageView {
      *     ImageOnionDiffView:
      *     This object, for chaining.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(ImageOnionDiffView.template(this.model.attributes));
 
         this.$commentRegion = this.$('.image-containers');
@@ -676,7 +676,7 @@ class ImageSplitDiffView extends BaseImageView {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(ImageSplitDiffView.template(this.model.attributes));
 
         this.$commentRegion = this.$('.image-containers');
@@ -832,7 +832,7 @@ class ImageTwoUpDiffView extends BaseImageView {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(ImageTwoUpDiffView.template(this.model.attributes));
         this.$commentRegion = this.$('.modified-image img');
 
diff --git a/reviewboard/static/rb/js/reviews/views/reviewDialogView.ts b/reviewboard/static/rb/js/reviews/views/reviewDialogView.ts
index 102af6641db099a08dd98af732c5eb9a6bfd1099..188c395187bdabd3ee336a314f1652f15d582193 100644
--- a/reviewboard/static/rb/js/reviews/views/reviewDialogView.ts
+++ b/reviewboard/static/rb/js/reviews/views/reviewDialogView.ts
@@ -176,7 +176,7 @@ class BaseCommentView<
     /**
      * Render the comment view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el
             .addClass('draft')
             .append(this.renderThumbnail())
@@ -1076,11 +1076,14 @@ export class ReviewDialogView extends BaseView<
         <div class="edit-field body-top"></div>
         <ol id="review-dialog-body-top-comments" class="review-comments"></ol>
         <ol id="review-dialog-general-comments" class="review-comments"></ol>
-        <ol id="review-dialog-screenshot-comments" class="review-comments"></ol>
-        <ol id="review-dialog-file-attachment-comments" class="review-comments"></ol>
+        <ol id="review-dialog-screenshot-comments"
+            class="review-comments"></ol>
+        <ol id="review-dialog-file-attachment-comments"
+            class="review-comments"></ol>
         <ol id="review-dialog-diff-comments" class="review-comments"></ol>
-        <ol id="review-dialog-body-bottom-comments" class="review-comments"></ol>
-        <div class="spinner"><span class="djblets-o-spinner"></span></div>
+        <ol id="review-dialog-body-bottom-comments"
+            class="review-comments"></ol>
+        <div class="spinner"><span class="ink-c-spinner"></span></div>
         <div class="edit-field body-bottom"></div>
     `);
 
@@ -1339,7 +1342,7 @@ export class ReviewDialogView extends BaseView<
      * The dialog will be shown on the screen, and the comments from
      * the server will begin loading and rendering.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.html(this.template({
             addFooterText: _`Add footer`,
             addHeaderText: _`Add header`,
diff --git a/reviewboard/static/rb/js/reviews/views/reviewRequestActions.ts b/reviewboard/static/rb/js/reviews/views/reviewRequestActions.ts
index c6eff8d4ee49b2f8647242d23b1460bc4d5d57e8..f8f9316a7b1ffad291681652d5ab28786a608c46 100644
--- a/reviewboard/static/rb/js/reviews/views/reviewRequestActions.ts
+++ b/reviewboard/static/rb/js/reviews/views/reviewRequestActions.ts
@@ -61,7 +61,7 @@ export class ArchiveMenuActionView extends Actions.MenuActionView {
     /**
      * Render the view.
      */
-    onRender() {
+    protected onRender() {
         super.onRender();
 
         const visibility = this.#reviewRequest.get('visibility');
@@ -367,7 +367,7 @@ export class CreateReviewActionView extends Actions.MenuItemActionView {
      *     CreateReviewActionView:
      *     This object, for chaining.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.listenTo(this.#pendingReview, 'saved destroy sync', this.#update);
         this.#update();
     }
@@ -429,7 +429,7 @@ export class EditReviewActionView extends Actions.MenuItemActionView {
     /**
      * Render the action.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.listenTo(this.#pendingReview, 'saved destroy sync', this.#update);
         this.#update();
     }
diff --git a/reviewboard/static/rb/js/reviews/views/reviewRequestEditorView.ts b/reviewboard/static/rb/js/reviews/views/reviewRequestEditorView.ts
index 7236bacacd077e4650d29d1e5f5a33e27dfd28e6..2ed0ab97a02253c488399341a126bdfa97db6693 100644
--- a/reviewboard/static/rb/js/reviews/views/reviewRequestEditorView.ts
+++ b/reviewboard/static/rb/js/reviews/views/reviewRequestEditorView.ts
@@ -141,7 +141,7 @@ class BannerView extends BaseView<
      * template, then this will make use of that template. Otherwise,
      * it will construct a new one.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const readOnly = UserSession.instance.get('readOnly');
 
         if (this.$el.children().length === 0) {
@@ -208,7 +208,7 @@ class ClosedBannerView extends BannerView {
     /**
      * Render the banner.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const descriptionFieldClasses = [];
 
         if (this.reviewRequestEditor.get('statusMutableByUser')) {
@@ -401,7 +401,7 @@ class DraftBannerView extends BannerView {
     /**
      * Render the banner.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const descriptionFieldClasses = [];
 
         if (this.reviewRequestEditor.get('mutableByUser')) {
@@ -541,7 +541,7 @@ export class ReviewRequestEditorView extends BaseView<ReviewRequestEditor> {
      * This will import all pre-rendered file attachment and screenshot
      * thumbnails, turning them into FileAttachment and Screenshot objects.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const reviewRequest = this.model.get('reviewRequest');
         const fileAttachments = this.model.get('fileAttachments');
         const draft = reviewRequest.draft;
diff --git a/reviewboard/static/rb/js/reviews/views/reviewRequestFieldViews.ts b/reviewboard/static/rb/js/reviews/views/reviewRequestFieldViews.ts
index 1257c3913d4dc6cddc07db3e0b739c24f731fa4f..a4a7380b98f4c782b9cb1fbfdec15973df1ab85a 100644
--- a/reviewboard/static/rb/js/reviews/views/reviewRequestFieldViews.ts
+++ b/reviewboard/static/rb/js/reviews/views/reviewRequestFieldViews.ts
@@ -309,7 +309,7 @@ export class TextFieldView extends BaseFieldView {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         if (!this.$el.hasClass('editable')) {
             return;
         }
@@ -731,7 +731,7 @@ export class MultilineTextFieldView extends TextFieldView {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
         this.formatText();
     }
@@ -829,7 +829,7 @@ export class CheckboxFieldView extends BaseFieldView {
     /**
      * Render the field.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.change(() => {
             this._saveValue(this.$el.is(':checked'))
                 .then(() => this.trigger('fieldSaved'))
@@ -847,7 +847,7 @@ export class DropdownFieldView extends BaseFieldView {
     /**
      * Render the field.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
 
         this.$el.change(() => {
@@ -867,7 +867,7 @@ export class DateFieldView extends TextFieldView {
     /**
      * Render the field.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
 
         this.inlineEditorView.$field
@@ -992,7 +992,7 @@ export class CommitListFieldView extends BaseFieldView {
     /**
      * Render the field.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         super.onInitialRender();
 
         /*
diff --git a/reviewboard/static/rb/js/reviews/views/textCommentRowSelectorView.ts b/reviewboard/static/rb/js/reviews/views/textCommentRowSelectorView.ts
index 89e69b9d87888310a122dba3a9fa36a765e27def..aabe461cc036781c10e39fde11d55c80adf99c47 100644
--- a/reviewboard/static/rb/js/reviews/views/textCommentRowSelectorView.ts
+++ b/reviewboard/static/rb/js/reviews/views/textCommentRowSelectorView.ts
@@ -162,7 +162,7 @@ export class TextCommentRowSelector extends BaseView<
     /**
      * Render the selector.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this._$ghostCommentFlag =
             $(TextCommentRowSelector.ghostCommentFlagTemplate)
             .on({
diff --git a/reviewboard/static/rb/js/reviews/views/unifiedBannerView.ts b/reviewboard/static/rb/js/reviews/views/unifiedBannerView.ts
index 822d6b6c2652a677d30df8a5144c9be4c2b00e0f..b616b093b79a3e734de3d60784d779b8a6f908d1 100644
--- a/reviewboard/static/rb/js/reviews/views/unifiedBannerView.ts
+++ b/reviewboard/static/rb/js/reviews/views/unifiedBannerView.ts
@@ -71,7 +71,7 @@ class DraftModeMenu extends BaseView<UnifiedBanner> {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const labelID = 'unified-banner-mode-label';
 
         const menuView = craft<MenuView>`
@@ -454,7 +454,7 @@ export class UnifiedBannerView extends FloatingBannerView<
     /**
      * Render the banner.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         if (!UserSession.instance.get('authenticated')) {
             return;
         }
@@ -520,7 +520,7 @@ export class UnifiedBannerView extends FloatingBannerView<
     /**
      * Handle re-renders.
      */
-    onRender() {
+    protected onRender() {
         this._update(true);
     }
 
diff --git a/reviewboard/static/rb/js/ui/views/dndUploaderView.ts b/reviewboard/static/rb/js/ui/views/dndUploaderView.ts
index fc4c8612c7a394599b4f787e1459736f9120c7f0..d801dec87900403838358208ec37cfe1db73590f 100644
--- a/reviewboard/static/rb/js/ui/views/dndUploaderView.ts
+++ b/reviewboard/static/rb/js/ui/views/dndUploaderView.ts
@@ -70,7 +70,7 @@ class DnDDropOverlayView extends BaseView<DnDDropTarget> {
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.text(this.model.get('dropText'));
     }
 
diff --git a/reviewboard/static/rb/js/ui/views/fieldStateLabelView.ts b/reviewboard/static/rb/js/ui/views/fieldStateLabelView.ts
index be55b3238bda5d1437871f818d39718eb650bca3..31aa8a941cbd8d5b4946de760f627cc409005c2d 100644
--- a/reviewboard/static/rb/js/ui/views/fieldStateLabelView.ts
+++ b/reviewboard/static/rb/js/ui/views/fieldStateLabelView.ts
@@ -97,7 +97,7 @@ export class FieldStateLabelView extends BaseView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el
             .addClass(this.className)
             .addClass(`-is-${this.#theme}`)
@@ -107,4 +107,4 @@ export class FieldStateLabelView extends BaseView<
             this.$el.addClass('-is-inline');
         }
     }
-}
\ No newline at end of file
+}
diff --git a/reviewboard/static/rb/js/ui/views/floatingBannerView.ts b/reviewboard/static/rb/js/ui/views/floatingBannerView.ts
index edd89f56a43257d88a184ca2d17be9dfc59ba39b..c153825c4393006ef3e1a2f319c738cba8e03d4c 100644
--- a/reviewboard/static/rb/js/ui/views/floatingBannerView.ts
+++ b/reviewboard/static/rb/js/ui/views/floatingBannerView.ts
@@ -64,7 +64,7 @@ export class FloatingBannerView<
     /**
      * Render the banner and listens for scroll and resize updates.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         $(window)
             .scroll(() => this.#updateFloatPosition())
             .resize(() => this.#updateSize());
diff --git a/reviewboard/static/rb/js/ui/views/inlineEditorView.ts b/reviewboard/static/rb/js/ui/views/inlineEditorView.ts
index ee246775bec121aa02e02a8955d98099f2b69806..a1c08f0e9e5c9f505beba0c0584cf14a459dfdee 100644
--- a/reviewboard/static/rb/js/ui/views/inlineEditorView.ts
+++ b/reviewboard/static/rb/js/ui/views/inlineEditorView.ts
@@ -294,7 +294,7 @@ export class InlineEditorView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const options = this.options;
         const multiline = options.multiline;
         const fieldLabel = options.fieldLabel;
diff --git a/reviewboard/static/rb/js/ui/views/menuButtonView.ts b/reviewboard/static/rb/js/ui/views/menuButtonView.ts
index 6d3d44436a63b79b7b4a8bcee88ecc6118ef9976..a4ffd935ab55d62722711e02d4b1364fdf266678 100644
--- a/reviewboard/static/rb/js/ui/views/menuButtonView.ts
+++ b/reviewboard/static/rb/js/ui/views/menuButtonView.ts
@@ -190,7 +190,7 @@ export class MenuButtonView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const labelID = _.uniqueId('__rb-menubuttonview__label');
 
         this.$el
diff --git a/reviewboard/static/rb/js/ui/views/menuView.ts b/reviewboard/static/rb/js/ui/views/menuView.ts
index 85e9e578367e3ee93cfeb2490c2839ef88639773..d1d8302a9562f4158177ae53784b273773dddb56 100644
--- a/reviewboard/static/rb/js/ui/views/menuView.ts
+++ b/reviewboard/static/rb/js/ui/views/menuView.ts
@@ -244,7 +244,7 @@ export class MenuView extends BaseView<
      * This will set up the elements for the menu and associate it with the
      * controller.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el
             .attr({
                 id: this.id,
diff --git a/reviewboard/static/rb/js/ui/views/slideshowView.ts b/reviewboard/static/rb/js/ui/views/slideshowView.ts
index 7f0223954c42cd69f6740f5f7d5495b87b54e93c..2e0ddbf4b466591ee9d8f557552cf0154b3b3183 100644
--- a/reviewboard/static/rb/js/ui/views/slideshowView.ts
+++ b/reviewboard/static/rb/js/ui/views/slideshowView.ts
@@ -131,7 +131,7 @@ export class SlideshowView extends BaseView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         const $nav = this.$('.rb-c-slideshow__nav');
         this.#$navItems = $nav.children('.rb-c-slideshow__nav-item') as
             JQuery<HTMLAnchorElement>;
diff --git a/reviewboard/static/rb/js/ui/views/textEditorView.ts b/reviewboard/static/rb/js/ui/views/textEditorView.ts
index b579ce27ddb820c484e68f57157c2d2e5783a70b..770c9f154fb629668b814d56222cbe860903a708 100644
--- a/reviewboard/static/rb/js/ui/views/textEditorView.ts
+++ b/reviewboard/static/rb/js/ui/views/textEditorView.ts
@@ -807,7 +807,7 @@ class FormattingToolbarView extends BaseView<
     /**
      * Render the view.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.attr({
             'aria-controls': this.#editorID,
             'aria-label': _`Text formatting toolbar`,
@@ -1524,7 +1524,7 @@ export class TextEditorView extends BaseView<
      * standard set of styles, even if this editor is bound to an existing
      * element.
      */
-    onInitialRender() {
+    protected onInitialRender() {
         this.$el.addClass(this.className);
     }
 
