hterm: Simplify handling of duplicate live output

This changes how duplicate live output is handled. Previously we would
wait for a delay, clear the live region, wait for a delay again and then
update it with the new text to output. This is necessary so that the
cleared live region registers as an attribute change with the screen
reader and then the duplicate text is also registered as an attribute
change.

Instead of doing this we can simply check if the previous text in the
live region matches the current text we're about to display. If so we
slightly change the new text so that an attribute change will be
registered.

This approach is also added for the assertive live region so that it
will properly handle duplicates properly. Tests are.

Bug: 822490, 646690
Change-Id: I1a75c55315abd14314960248ad0c695ccb9102c1
Reviewed-on: https://chromium-review.googlesource.com/1117726
Tested-by: Raymes Khoury <raymes@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2 files changed
tree: 40ebbaaf4208f08ea8586a94ad0e29682d880f0e
  1. .clang-format
  2. .eslintrc.js
  3. .gitignore
  4. HACK.md
  5. LICENSE
  6. README.md
  7. hterm/
  8. libdot/
  9. nassh/
  10. navbar.md
  11. package.json
  12. saltpig/
  13. ssh_client/
  14. wam/
  15. wash/
README.md

Hello

This repository contains the libdot JavaScript library and some web applications that make use of it.

The official copy of this repository is hosted at https://chromium.googlesource.com/apps/libapps.

There is also a mirror on github at https://github.com/libapps/libapps-mirror. A few subprojects are also extracted out into their own git repo and mirrored. Keep in mind that these mirrors may occasionally be behind the official repository.

All changes must go through the Gerrit code review server on https://chromium-review.googlesource.com. Github pull requests cannot be accepted. Please see the HACK.md document in this directory for the details.

Top level directories

  • libdot/ is a small set of JS libraries initially developed as part of hterm, now available as shared code.

  • hterm/ is a JS library that provides a terminal emulator. It is reasonably fast, reasonably correct, and reasonably portable across browsers.

  • nassh/ is the Secure Shell Chrome App (currently a “v1.5” app, soon to become a “v2” or platform app) that combines hterm with a NaCl build of OpenSSH to provide a PuTTY-like app for Chrome users.

  • ssh_client/ is the NaCl port of OpenSSH. It is used by nassh to create the Secure Shell App.

  • wash/ is a library for cross-origin virtual filesystems, similar to the Plan 9 filesystem. This directory also contains a simple bash-like shell environment for exploring these filesystems. The code in this directory is a work-in-progress.