Page MenuHomePhabricator

Make "renderer", "engine", and "encoding" sticky across reloads in Differential and Diffusion
ClosedPublic

Authored by epriestley on Apr 17 2020, 11:18 PM.
Tags
None
Referenced Files
F19020453: D21138.id.diff
Sun, Nov 23, 5:45 PM
F18872642: D21138.id50349.diff
Nov 5 2025, 5:30 AM
F18842430: D21138.diff
Oct 28 2025, 3:42 PM
F18814406: D21138.id.diff
Oct 20 2025, 11:08 PM
F18808143: D21138.diff
Oct 19 2025, 4:56 AM
F18780558: D21138.id50335.diff
Oct 12 2025, 5:21 PM
F18767158: D21138.diff
Oct 7 2025, 8:55 PM
F18101011: D21138.id.diff
Aug 9 2025, 12:15 PM
Subscribers
None

Details

Summary

Ref T13455. Update the other "view state" properties to work like "highlight" now works.

Some complexity here arises from these concerns:

  • In "View Standalone", we render the changeset inline. This is useful for debugging/development, and desirable to retain.
  • In all other cases, we render the changeset with AJAX.

So the client needs to be able to learn about the "state" properties of the changeset on two different flows. Prior to this change, each pathway had a fair amount of unique code.

Then, some bookkeeping issues:

  • At inital rendering time, we may not know which renderer will be selected: it may be based on the client viewport dimensions.
  • Prior to this change, the client didn't separate "value of the property for the changeset as rendered" and "desired value of the property".
Test Plan
  • Viewed changes in Differential, Diffusion, and in standalone mode.
  • Toggled renderer, character sets, and document engine (this one isn't terribly useful). Reloaded, saw them stick.
  • Started typing a comment, cancelled it, hit the undo UI.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable