blob: 2e853ae0e30983183e34c1940339660678406ff8 [file] [log] [blame], 2012-10-2, Text selection fix.
* Fix mouse-based text selection when the selection involves styled text., 2012-09-26, Insert lines fix.
* Fix hterm.Terminal.insertLines to move the correct rows. This fixes the
Reverse Index (RI) sequence (and probably others) that depended on it., 2012-09-25, Styled holes
* Backfill holes created by Erase Characters (ECH) and Delete Characters (DCH)
with spaces in the current text style.
* Fix minor issue with Character Attributes (SGR) with colors 100-107. These
were setting the foreground color instead of the background.
BUG=chromium-os:30258, Text attributes not rendered for whitespace at the end
of a line, 2012-09-24, Fix regressions, disable pnacl
* Recompile nacl plugin without pnacl to avoid crashes on Mac and extreme
slowness elsewhere.
* Fix keyboard regression that prevented multi-accelerator sequences (ctrl-alt-foo,
etc) from working.
* Stop bolding colors >= 16.
BUG=chromium-os:34306, hterm shows wrong colors for bold colors 16 through 249, 2012-09-20, Some keyboard fixes and pnacl
* Recompile nacl plugin with --pnacl enabled.
* Changed hterm_keyboard.js to only add modifier munging to strings that
came from the "default" action. Other actions are assumed to already
be appropriate for the in use modifier.
* Make Alt-F1...F12 send F11-F22. This similar to xterm with the "VT220
Keyboard" option is enabled, except xterm uses Ctrl as the modifier. We use
Alt because Ctrl-F1...F12 are not capturable on Chrome OS devices.
BUG=chromium-os:30857, Shift+F6 doesn't work
BUG=chromium-os:32608, Add extended function key (F13-24) support., 2012-09-13, Handle synthetic keystrokes on OS X.
* Added a "textInput" event handler to hterm_keyboard.js. We're not actually
supposed to get these, but we do on the Mac in the case where a third party
app sends synthetic keystrokes to Chrome.
Internal bugs:
6111077 Bluetooth OTP not working with hterm
6838548 Bluetooth OTP is not able to make past SSHinaTab, 2012-09-11, Increase max-string-sequence, add enable-clipboard-notice
* Increased the size of the max-string-sequence pref from 1,024 to 100,000, in
order to support larger clipboard transfers via OSC 52.
* Add an enable-clipboard-notice preference, defaulted to true. Change this
to false to turn off the "Selection Copied" message.
* Added etc/osc52.el, a reference implementation of emacs-to-hterm clipboard
sync. The script should also work for xterm and other OSC 52 compliant
terminals., 2012-09-07, Fix triple-click selection.
* Another selection bug. Triple clicks result in the selection of exactly one
full row. This means that the selection ends at the 0 offset of the following
x-row. hterm.Terminal.getSelectionText assumed that an x-row couldn't be
selected, only elements within the row could be. You could also get into
this state if you manually selected exactly to the end of a row., 2012-09-06, Fix selection bug.
* The code that tried to determine which node came first in a single-line
selection was busted. It didn't work if the selection involved styled
* Clear location.hash when "(C)hoose another connection" is selected.
* Allow Ctrl-W to close window at the reconnect prompt.
* Show product name and version in the title by default.
BUG=chromium-os:34149, 2012-09-05, Fix another OSC 4 regression.
* We were mishandling hex X11 rgb values. They weren't being translated into
decimal, and would result in invalid CSS rgba(...) values., 2012-09-04, Reject invalid resizes.
* Reject attempts to resize or realize a row or column count <= 0. This fixed
a bug where new windows opened with ctrl-shift-n would usually hang if
performed from an active connection.
BUG=chromium-os:34123, 2012-08-28, Fix OSC-4 regression.
* Fixes a regression that broke OSC-4, color palette read/write, and adds a
testcase to catch future regressions., 2012-08-24, Fix another missing-rows bug.
* Fix a bug where we'd shift the rowNodes element up to offset hidden nodes
before the top fold, but never compensated by making the rowNodes element
taller., 2012-08-22, Don't clear selection for copy-on-select.
* Remove the delay and selection clearing from copy-on-select. The copy now
happens immediately, and the selection is not cleared.
BUG=chromium-os:33786, hterm: double paste on right-click, 2012-08-21, backout dialog resize CL.
* Remove the dialog size CL, since it requires M21., 2012-08-21, writelnUTF16 fix.
* Actually append '\r\n' in, 2012-08-21, UTF8 fix, copy fix, dialog cleanup
* Fix display of utf-8 data from translated messages.
* connect dialog: Select the previous connection by default.
* connect dialog: Fix dis/enable issues with the buttons.
* connect dialog: Double click to connect.
* Re-add copy-on-select delay.
* Add 'close-on-exit' preference to control whether or not the window closes
on exit. Defaults to on.
* Properly handle overflow lines during clipboard copy.
* Offer to reconnect on disconnect.
* Session id parsing in connection arguments.
BUG=chromium-os:27974, Exit command does not close the hterm window
BUG=chromium-os:27020, newlines added during clipboard copy
BUG=chromium-os:29217, offer to reconnect after disconnect, 2012-08-15, Misc cleanup.
* Add 'enable-clipboard-write' preference to enable/disable the OSC 52
(host write to system clipboard) sequence, on by default.
* Change default Windows font to "Terminal".
* Fix the delete profile/delete identity behavior in the connect dialog.
* Fix the placeholder text of the "Terminal Profile" field in the connect
* Remeasure the character size on resize, to catch browser zoom changes.
* Don't show the size overlay for alt/primary screen swaps.
BUG=30604, font face 'Lucida Console' Bold characters disabled, 2012-08-13, Add missing dep to crosh.html.
* Fix missing lib_utf8.js in crosh.html., 2012-08-13, NaCl plugin fixes.
* Various termios fixes for input and output transformation. Fixes
drawing issue with some ncurses applications., 2012-08-10, Add Ctrl-Shift-N to open new instance.
* Make Ctrl-Shift-N/Meta-Shift-N keyboard combinations open a new window., 2012-08-10, VT mouse, copy/paste work, and bug fixes.
* Moved common libraries under the "lib" object.
* Add "hterm_" prefix to the hterm source files.
* Add 'use strict' everywhere, fix some fallout.
* Split hterm.js filesystem functions into lib.fs.
* Split hterm.js utility functions into lib.f.
* Remove unused dialogs.js,css code.
* Implement character set selection (SCS)
* Pass Alt-*-Tab to the browser.
* Fix bug which may abort connections with "Unknown error 4294967292".
* Encode pasted text as UTF-8.
* Properly encode and decode UTF-8, handling surrogate pairs and
retaining state between terminal writes.
* Add mouse support via DECSET modes 1000, 1002, 1003.
* Add mouse button paste. Preference 'mouse-paste-button' defaults to off
on typical X11, on everywhere else (including Aura on X11).
* Add ability to automatically copy the mouse selection to the keyboard.
Preference 'copy-on-select' defaults to on.
* Add ability to let Shift-Insert cause a clipboard paste. Preference
'shift-insert-paste' defaults to on.
* Add partial OSC 52 support to allow the host to write to the system clipboard.
* Fix extra-long line wrapping.
* Add basic line editing for local ssh prompts (password, fingerprint prompt,
and the "~C" command line).
* Add websockets to the google proxy and make it the default connection type.
* Fix ssh "target command" parsing.
* Make the JavaScript side of things more robust against a NaCl plugin crash.
BUG=chromium-os:30296, UTF-8 decoder is not a function of input stream; will
break when UTF-8 sequence split across reads
BUG=chromium-os:30297, UTF-8 decoder does not conform to Unicode standard
re: invalid sequences
BUG=chromium-os:29490, Middle click should paste in the terminal
BUG=chromium-os:26288, hterm: Add mouse support via DECSET 1000, 1002, 1003, 2012-06-14, Localization and Accessibility for the connect dialog
* Add message_manager.js to manage string bundles.
* Add a bunch of new strings for the dialog.
* Make nassh_connect_dialog.html/js use the new strings.
* Fix minor issue with argument parsing., 2012-06-12, New connection dialog, flow control
* New nassh binary:
- Support for flow control (try aafire!)
- Use Pepper host resolver when possible.
- Smaller TCP window in ssh (try ^C in aafire!)
* Add preferences for background-size and background-position
* Move hterm.NaSSH out to NaSSH. This is in preparation for upcoming changes
to further isolate the terminal from commands that run within it.
* Fix handling of the cursor overflow flag for the ICH, ED, EL, DL,
DCH, and ECH commands.
* nassh_box.css: Add box layout css library.
* nassh_connect_dialog.css: New file, connect dialog styles.
* google_relay.js: Moved to nassh_google_relay.js
* nassh.html: Update script tags.
* nassh_connect_dialog.html:
- New file, connect dialog UI, making liberal use of nassh_box.css.
- TODO: i18n, a11y.
* nassh_google_relay.html: Moved from google_relay.html
* colors.js:
- Added Ned Stark reference.
- Added rgba color support.
- Added setAlpha(), mix(), and crackRGB().
* frame.js:
- First draft of the interface between the terminal and a third party dialog.
- This will change substantially as the interface is fleshed out.
* google_relay_html.js: moved to nassh_google_relay_html.js.
* hterm.js:
- Add getURL().
- Rename old ferr() to fthrow(), make ferr() be like flog() except using
- Add removeFile() and readDirectory() utility functions.
* nassh.js:
- Moved most code out into nassh_command_instance.js, some into nassh_main.js.
- Only static utility functions (and the namespace delcaration) remaing here,
since this file is now shared by nassh_command_instance.js and
* nassh_column_list.js: "Resuable" multicolumn list control.
* nassh_command_instance.js:
- Sorry, rename and modifications in the same CL.
- Update to work with Dmitry's outputWindow changes.
- Add another session variable so we can distinguish between a
reload-for-relay-auth, and a user initiated reload. Now we can re-display
the connect dialog ONLY for user initiated reloads, even when using a relay.
- Integrate with nassh_connect_dialog.js.
* nassh_connect_dialog.js:
- New file containing most of the code backing the new connect dialog.
- TODO: i18n.
* nassh_css_variables.js:
- OMG. CSS variables hack until they land for real.
- This allows the connect dialog to adapt to the user's color scheme.
* nassh_google_relay.js:
- s/NaSSH./nassh./g
- Refactor "destination" into "resumePath", since it was really only being
used as an opaque place to resume to.
- Integrate with Dmitry's writeWindow changes.
* nassh_google_relay_html.js: Move from google_relay_html.js.
* nassh_main.js: Split out of nassh.js.
* nassh_preferences.js:
- New file containing nassh specific preferences.
- Contains "global" nassh preferences, as well as a collection of remembered
connection "profiles".
* nassh_streams.js: s/NaSSH./nassh./g
* preference_manager.js:
- Promote out of the hterm namespace.
- Allow for multiple preference observers.
- Allow for after-the-fact registration of preference observers.
- Throw an error when set() called for unknown pref.
- Add setLater to set a pref after a timeout and coalesce multiple calls.
- Fix error when notified about changes to prefs that are no longer declared.
* screen.js:
- Cache textContent in deleteChars for a decent speedup.
* scrollport.js:
- Remove focus outline now that the cursor changes style for focus.
* terminal.js:
- Cache foreground and background colors for major speedup.
- Add focus/unfocused cursor styles.
- Remove default background gradient.
* terminal_io.js:
- Add createFrame().
- Add setTerminalProfile().
* vt.js: s/cssToX11/rgbToX11/.
BUG=chromium-os:25417, Split screen scrolling in hterm about 5x slower than in
BUG=chromium-os:25563, Support specifying imported keys files in hterm
BUG=chromium-os:30103, Add a UI for port forwarding.
BUG=chromium-os:30302, CSI K (erase in line) does not clear wrap-around flag, 2012-05-14,
* Add hterm.NaSSH..removeDirectory()., 2012-05-11,
* Fix double invocation of initialization code. This also fixed the reload
loop when connecting via a relay.
* Minor faq and jsdoc cleanup., 2012-05-11,
* Add hterm.NaSSH..removeFile()., 2012-05-10,
* Fix "parseState_" typo in 'ESC %' handler., 2012-05-10,
* Remove trailing comma from messages.json.
* Ensure that /.ssh directory exists before starting.
* Update FAQ to point out that keys don't work on 0.7.9.
* Change manifest-dev.json and script to move dev version from
internal home directory to public web store., 2012-05-10,
* Add 'enable-8-bit-control' preference to enable eight bit control sequences.
This is off by default (which matches xterm) in order to avoid accidental
usage of some sequences that require termination. If you encounter one of
these on accident (while cat'ing binary data, for example) the terminal
will appear to lock up while waiting for the terminator byte.
* Add 'max-unterminated-sequence' preference to prevent sequences that require
a terminator from running away forever.
* Squelch warning that used to appear when clearing an empty screen.
* Refactor the parser logic a bit to make it easier to back up when
we fail to find the end of a string sequence.
* Fix to DECSTBM to resepect origin mode when resetting the cursor position
after setting the VT scroll region.
* Make soft-reset more like xterm.
* Resize the terminal after the character measurements change rather than
re-measure the character during a resize. The latter causes the terminal
to get the row, column count wrong based on event ordering.
* Fix text wrapping to not wrap text pushed to the right in insert mode. Only
wrap newly-printed text.
* Fix default tab-stop handling to not restore on resize after TBC. Also fix
some cases where tab-stops would be dropped.
* Fix ED to erase to the start and end of the screen, independent of scroll
* Fix a number of issues in color handling. In particular, treat toggling bold
and inverse independently from setting color indices.
* Fix to ECH to not shift text to the right of the cursor.
* Fix to argument parsing to always treat zero as a default value.
* Remove extra '/' from google_relay.js proxy request.
* Fix alt-sends-what/alt-is-meta pref change handlers.
* Don't re-display connection dialog after a relay redirect.
* Add showFileImporter hack. This makes it possible to import files from the
device filesystem into the Secure Shell filesystem. This makes it "easy"
to get keypairs and ssh configs into Secure Shell.
* Stop assuming an unspecified port means port 22, since the config file may
have a different default set.
Internal bug:
6375936 hterm hangs when \x90, \x9D, or \x9E is printed
BUG=chromium-os:30105,chromium-os:29955,chromium-os:25563, 2012-04-20,
* Show app name and version number at startup.
* Add cursor blink preference.
* Add doc/faq.txt., 2012-04-19,
* More sanitary handling of color names in the palette set/get sequence.
* Added colors.js file to contain color utilities and palettes.
* Remove old vt100.js file., 2012-04-18,
* Allow Ctrl +/-/0 to control browser zoom when the browser zoom isn't already
set to 100%. This makes it possible to dismiss the new "zoom warning" using
keyboard shortcuts., 2012-04-18,
* Modify nassh plugin to accept a hash of environment variables.
* Add 'environment' preference, set by default to { TERM: 'xterm-256color' }.
* Implement Operating System Command (OSC) 4. This allows the host to set
or read the terminal color palette.
* Reset color palette on soft terminal reset.
* Add JSDoc to text_attributes.js.
* Merge COLORS_16 and COLORS_256 objects into a single
TextAttributes.prototype.defaultColorPalette object.
* Fix bold-implies-bright logic for extended colors.
* Add a stern warning message when the browser zoom is not 100%.
* Change the naming convention for sessionStorage keys (added a dot, as in
* Add logic to re-display the connect-to dialog on reload, only if nassh was not
started from a bookmark.
* Fetch the HTML5 persistent filesystem at nassh startup.
* Add NaSSH..removeAllKnownHosts() and NaSSH..removeKnownHostByIndex(i). These
can be accessed from the JS console as 'term_.command.remove...()'.
* Fix Terminal.isPrimaryScreen() assign-instead-of-test typo.
* Fix G0/G2/G3 character set control "ESC (", etc. to properly handle a
mid-sequence ESC character. (Thanks to nethack for turning this up :)
BUG=chromium-os:28050,chromium-os:25122, 2012-04-11,
* Fix 'home-keys-scroll' preference., 2012-04-11,
* Fix google_relay.html CSP issues., 2012-04-10,
* Fix update_url in manifest., 2012-04-10,
* Replace 'alt-sends-escape' preference with 'alt-sends-what'. The new pref
can be set to 'escape', '8-bit', or 'browser-key'. If set to 'escape' (the
default), hterm will send ESC (as if alt-sends-escape were true, the previous
default). If set to '8-bit', hterm sends the unshifted character + 128 (as
if alt-sends-escape were false). If set to 'browser-key', hterm waits for
the keypress event, and sends whatever character code the browser thinks best.
On Mac, this will depend on your keyboard locale. Composed characters
(requiring multiple keystrokes) aren't yet implemented. 'browser-key'
shoudn't be used in cases where Chrome uses Alt sequences for the browser., 2012-04-10,
* Fix crosh.html/js to work with CSP.
TEST=Install on ChromeOS, press Ctrl-Alt-T., 2012-04-08,
* Fix version number. We should have gone to rather than :/
* Renamed to "Secure Shell".
* Updated stable manifest to include CSP and new icons.
BUG=chromium-os:29148, 2012-04-06,
* Update to the latest nassh binaries., 2012-04-06,
* Fix Ctrl-\.
* Added keyboard related preferences, 'home-keys-scroll', 'page-keys-scroll',
'meta-sends-escape', 'backspace-sends-backspace'.
* Added altSendsEscape option to keyboard (and 'alt-sends-escape' pref). The
default for alt-is-meta is now false, while alt-sends-escape is true. This
lets Alt and Meta be distinct keys when possible (like on a Mac), while making
Alt work "almost" like meta by default.
* Added a little platform detection logic so we don't burn BOTH Alt-1..9 and
Meta-1..9 on every platform.
* Fixed broken backspaceSendsBackspace behavior.
* Fix Meta-Space to send ESC \x20 rather than ESC [.
* Fix character sizing issues, which solves the missing underscores in some
fonts, and should solve partial/completely missing terminal row issues.
* Add background-image pref, defaults to a mostly transparent gradient.
* Change a few one-byte colors to work better with both light and dark
Internal bugs:
6100845 Significant color differences with hterm compared to shellinabox
6183497 Backspace sends delete to emacs
6270109 option-space sends ESC [
6270158 hterm (OS X): option-v and option-1 thru option-9 have no effect
6063659 First line of the console appears off the top of the screen
BUG=chromium-os:28771,chromium-os:28611, 2012-04-04,
* Add 'manifest_version': 2 to manifest file, specify default
Content Security Policy (CSP) policy.
* Kick off nassh initialization from nassh.js rather than
nassh.html to make CSP happy.
* Move dialog code from terminal.* into nassh.*, makes CSP happier
and it's the right thing to do.
BUG=chromium-os:28561, 2012-03-19,
* Fix regression that caused hterm to fail to load if the chosen font was not
"safe" for bold charcters.
BUG=chromium-os:28020, 2012-03-16,
* Fix regression in terminal reset.
BUG=chromium-os:27950, 2012-03-15,
* Make the relay code more resiliant to intermittent failures., 2012-03-14,
* Refactor and clean up of the relay server code.
* Add backoff logic to relay server code.
* Promote Terminal.showOverlay to Terminal.IO.showOverlay.
* PASS on handling Meta-~, since on Mac Meta is Cmd and Cmd-~ is the 'switch
between windows of this app' sequence., 2102-03-07,
* Re-add default tab width, add a testcase to catch future regressions., 2102-03-07,
* Cached scroll-on-output and scroll-on-keystroke preferences to avoid the
performance hit of reading a preference for each bit of output and keystroke., 2102-03-07,
* Add preferences. Preferences are persisted to localStorage. Active hterm
instances will respond to preference changes by listening to the 'storage'
* Preferences can be grouped into "profiles" so that it's possible
to maintain multiple terminal configurations and easily switch
between them.
* The preference profile can be selected at load-time by adding
'profile=NAME' to the url used to load nassh.html or crosh.html., 2012-02-28,
* Add ability to detect fonts with mismatched bold/normal sizes, and disable
bold characters when that happens., 2012-02-28,
* Switch out "Andale Mono" in favor of "Menlo" in the default font family list,
since bold characters in Andale Mono are a different width than normal
weight characters., 2012-02-28,
* Fix CONNECTING message to take a single DESTINATION parameter rather
than distinct USER and HOST parameters. This avoids an issue in the
chrome i18n code that chokes on the translated messages., 2012-02-28,
* Fix remaining issues with ESC 0x20 handler., 2012-02-28,
* Fix permission issue in script.
* Remove spash screen.
* Fix syntax error in ESC 0x20 handler.
* Warn before closing an active crosh tab., 2012-02-17,
* Manifest files split into -dev and -stable versions.
* Add an altIsMeta flag, on by default.
* Treat Meta-C/Meta-Shift-V the same as Ctrl-C/Ctrl-Shift-V to
make mac users happy.
* Pass (Ctrl|Meta)-Shift-B bookmark bar key to browser.
* Pass (Ctrl|Alt|Meta)-1/9 to the browser so as not to block
tab switching.
* Skip pro-tip if nassh started with a known location.
* Fix TextAttributes.prototype.reset().
TEST=test_harness.html, 55/55 tests passed.