Add settings for controlling the Trojan Code confusables checks.

Review Request #12787 — Created Jan. 13, 2023 and submitted

Information

Review Board
release-5.0.x

Reviewers

This introduces new settings in the Diff Viewer Settings page to control
whether Trojan Code confusable checks should be enabled or which
languages should be considered safe.

This is shown in-between the "Limits" and "Advanced" section. The list
of languages is presented as a series of checkboxes. There aren't too
many there, and we don't really have a better widget for displaying this
list at this time (ideally we'd use the Related Object selector, but
it's not built for this, and I wanted to minimize the UI work for this
particular change).

These settings are stored in a general way, opening the door for future
code safety checker preferences. They're available to the diff machinery
through the new DiffSettings object, and used in the chunk generator
when performing a check.

Changing these settings will automatically invalidate any caches/ETags,
ensuring they take effect immediately.

Unit tests pass.

Tested with a Trojan Code sample set, tested with confusable checks on,
on with excluded languages, and off. Verified that the caches always
reflected the new settings, and that the results were what I expected.

Summary ID
Add settings for controlling the Trojan Code confusables checks.
This introduces new settings in the Diff Viewer Settings page to control whether Trojan Code confusable checks should be enabled or which languages should be considered safe. This is shown in-between the "Limits" and "Advanced" section. The list of languages is presented as a series of checkboxes. There aren't too many there, and we don't really have a better widget for displaying this list at this time (ideally we'd use the Related Object selector, but it's not built for this, and I wanted to minimize the UI work for this particular change). These settings are stored in a general way, opening the door for future code safety checker preferences. They're available to the diff machinery through the new `DiffSettings` object, and used in the chunk generator when performing a check. Changing these settings will automatically invalidate any caches/ETags, ensuring they take effect immediately.
7cb245f4d4cf274d8546196b4300661a90b3e3ec
maubin
  1. Ship It!
  2. 
      
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-5.0.x (7df5903)