Commit graph

228 commits

Author SHA1 Message Date
Thomas Buckley-Houston f624ea00f1 Forgot to bump the version in manifest.json 2018-02-08 20:28:12 +08:00
Thomas Buckley-Houston 2e37da37c4 Add gcloud_logger to Dockerfile
This is used on the Browsh as a Service platform for anonymous logins,
it does not get used by default unless explicitly called. It is an
external third-party binary and not at all integrated with the browsh
binary itself.

The situation is that browsh logs to a file *inside docker* so for now
the easier way to get at those logs is to include this tool inside the
docker container as well. I'm sure there are ways to completely separate
the concerns here and I hope to do that soon once I settle on the final
infrastructure for BaaS.
2018-02-08 18:39:07 +08:00
Thomas Buckley-Houston d2f74cefb8 FreeBSD builds. For @RainbowHackerHorse 2018-02-05 16:57:49 +08:00
Thomas Buckley-Houston cf6cde86f7 Added -startup-url and -time-limit args 2018-02-04 18:26:01 +08:00
Thomas Buckley-Houston fc5e72b191 Do FF's first run during docker *build*
This gets around a few problems caused by the fact that Firefox's first
ever run on a new profile is quiet different from a normal startup. Note
that this only effects Browsh in Docker.
2018-02-04 18:02:39 +08:00
Thomas Buckley-Houston c0e51e6413 Use Browsh-specific FF profile.
Also adds `-debug` flag.
2018-02-03 15:21:58 +08:00
Thomas Buckley-Houston 3b7ee79808 Just a version bump to retry a goreleaser bug 2018-02-02 17:35:18 +08:00
Thomas Buckley-Houston cdab6bde93 Bugfixes to Dockerfile 2018-02-02 17:20:37 +08:00
Thomas Buckley-Houston afca0dd468 Auto-reload a tab if it doesn't connect to webext 2018-02-01 23:15:34 +08:00
Thomas Buckley-Houston 7117eb9965 Added screenshot feature: press ALT+P
In the endless struggle to squash a Travis-specific bug, we now have
screenshots. Currently the screenshots are of the custom block font
state, so you can't read the text. But I'm planning on changing the
default state of the page to use a normal font - such that the
frame builder needs to toggle the block font on to build a frame. This
will make it more likely that screenshots will contain actual text.
2018-02-01 17:34:25 +08:00
Thomas Buckley-Houston 74538fed0e Fix for zero-width chars in page titles
Also removes the Mozilla Cliqz disclaimer tab on first startup.
Interestingly it has a carriage return in its HTML page title, which is
of course zero-width. But also the fact that this tab can sometimes load
before the requested tab at startup is a showstopper for automated
tests.
2018-01-31 15:40:43 +08:00
Thomas Buckley-Houston 0b3ff030cd Release v0.2.3 2018-01-30 17:50:55 +08:00
Thomas Buckley-Houston 2985774859 Automate releases 2018-01-28 16:08:19 +08:00
Thomas Buckley-Houston 6f0a732145 Adds Go built binaries to .gitignore 2018-01-24 16:50:09 +08:00
Thomas Buckley-Houston 221aa56869 Log Firefox's core debugging console to stdout
Includes the addition of a function to set Firefox preferences at
startup.
2018-01-24 16:32:52 +08:00
Thomas Buckley-Houston 9a82182a9a Don't use --new-instance, -P when launching FF 2018-01-24 10:59:57 +08:00
Thomas Buckley-Houston 318f5c3c34 First draft of integration tests 2018-01-23 20:04:23 +08:00
Thomas Buckley-Houston b387f66c69 Launch and install webextension from client
This means that Browsh can now be entirely run just by running the CLI
binary. The client launches Firefox as a subprocess, then connects to it
via the Marionette protocol, installs the webextension and finally
triggers a new tab with, currently, the Google homepage in it.

I was trying to set this up for automated testing as well by installing
the built webextension as a temporary addon, because otherwise you need
to sign the extension everytime with a unique semantic version. However
for some reason I can't quite recreate the environment that MDN's
`web-ext` creates. The extension installs fine but fails to load the
`content.js` script, I can't find a backtrace or any other details about
the failure. So for now, we're just going to have to use `web-ext` as
seperate process and have the client connect to that. Which is what one
should do during development anyway, so it's not a huge loss.
2018-01-21 11:56:05 +08:00
Thomas Buckley-Houston ef5c683591 Back and stop button 2018-01-17 15:52:52 +08:00
Thomas Buckley-Houston 4177bff127 First draft of mouse down/up/click support 2018-01-17 11:00:37 +08:00
Thomas Buckley-Houston 3fc70e6718 Basic z-layer detection for clobbered characters 2018-01-15 12:06:05 +08:00
Thomas Buckley-Houston 64431be7c3 First pass at supporting wide UTF8 chars like 中文 2018-01-14 22:29:08 +08:00
Thomas Buckley-Houston 97a36b68b4 First drafy of UI: tabs and URL bar 2018-01-12 21:58:32 +08:00
Thomas Buckley-Houston ad59dc3ce4 Basic up/down scrolling 2018-01-11 12:22:27 +08:00
Thomas Buckley-Houston d2aaa33963 Refactored webext background script 2018-01-10 22:54:51 +08:00
rahimnathwani 421b0dfd55 Update README.md to specify ssh port as per mosh man page 2018-01-08 16:48:39 +08:00
rahimnathwani 37a48ae70f Update README.md to cd to the folder with run.sh 2018-01-08 16:48:39 +08:00
Thomas Buckley-Houston 27e0b2ddc6 First working draft of Golang interfacer
After weighing up the options it seems that Golang's termbox-go TTY
library has better support for terminals, and it's cross-platform out of
the box. So this commit is the first working version where the
interfacer launches a websocket server, makes a connection to the
webextension and listens to STDIN from the CLI, sending all input to the
webextenstion.
2018-01-07 11:21:29 +08:00
Thomas Buckley-Houston c1eac09681 Referenced note from @jfdhuiz about elinks 2018-01-07 10:04:38 +08:00
Semen Zhydenko 57931eb014 seperate -> separate 2018-01-07 09:56:57 +08:00
Semen Zhydenko 18db9acdec begining -> beginning 2018-01-07 09:56:57 +08:00
Thomas Buckley-Houston cdae16672d Fixed link to function example in README 2018-01-05 18:05:19 +08:00
Thomas Buckley-Houston 60423b50db Emergency note about rewrite. Hello HN! 2018-01-05 17:33:18 +08:00
Thomas Buckley-Houston be2b961cfe Sample text colour using monochar block font trick
Using JS's `getComputedStyle()` for every character is too CPU
intensive, so instead I'm experimenting with using a custom font
to take the canvas snapshot. The font is made up of only the unicode
block character, which basically fills the entire space given to a
monospace glyph. This also means that we can fairly reliably work out
the visibility (whether it's obscured or hidden with CSS) of text.
2018-01-01 22:10:10 +08:00
Thomas Buckley-Houston d00361f87d First draft of rewrite to Webextension and Rust
This proves that frames can be generated on Firefox using the canvas and
a Tree Walker to examine text nodes. Already with little optimisation
frames don't ever take longer than 200ms to render.

Chrome has a MediaStream of the viewport, hopefully that will prove
performant as well.

This doesn't have functioning text colour detection or text occlusion
support. But early research suggests this will possible by comparing 2
screenshots: one with and the other without rendered text.
2018-01-01 21:50:30 +08:00
Timothy Cyrus 6524500745 Update README.md
Fixed Headings in README
2017-05-25 18:16:52 +07:00
Thomas Buckley-Houston 73604f1044 Don't print 'KB OFF' on every render. Prevents glitches in non-KB mode 2016-08-02 19:08:26 +05:30
Thomas Buckley-Houston 8fe026ee4e Remove dependency on hacky glibc support.
It was only needed by a UTF8 conversion call in hiptext. Thanks to
another hack where I patch hiptext to just use the actual
Upper Half block character pasted into the file, then glibc
support isn't needed.
2016-07-23 13:18:50 +05:30
Thomas Buckley-Houston 1453c01621 Keyboard mode. For terminals with no/bad mouse support.
Closes #5
2016-06-25 22:30:50 +09:00
Thomas Buckley-Houston 01a551c87f Print the stages of starting up 2016-06-12 11:30:29 +09:00
Thomas Buckley-Houston bb497ae0b0 Ensure hiptext's O(1) rendering with -fast=true 2016-06-03 16:46:46 +09:00
Thomas Buckley-Houston de82679b8f Use hiptext's -fast option for O(1) rendering 2016-06-03 13:36:14 +09:00
Thomas Buckley-Houston 576821fa37 Provide CTRL+ALT+Q to cleanly exit 2016-06-03 13:31:00 +09:00
Thomas Buckley-Houston 287d21916d Mount .ssh volume read-only. Example of mounting system folder. 2016-06-02 11:23:17 +09:00
Thomas Buckley-Houston c4ed739038 README tidying 2016-05-23 16:23:34 +09:00
Thomas Buckley-Houston 0ee394d469 Start noting good/bad terminals. Add instructions for running other apps 2016-05-23 15:57:46 +09:00
Thomas Buckley-Houston 1d03a3a237 Added link to Youtube video 2016-05-23 00:13:31 +09:00
Thomas Buckley-Houston e46884ade5 Updated README with new unicode demo gif 2016-05-23 00:10:23 +09:00
Thomas Buckley-Houston 65e0d7c87f Hiptext UTF8 block element rendering!
Provides almost double the resolution by using the unicode upper
block character, "▀", and setting its colour as with the fg colour
and the missing space below it with the bg colour. Clever stuff.
2016-05-22 21:14:02 +09:00
Thomas Buckley-Houston e9f5124a45 'docker run' command for remote install was wrong. 2016-05-22 18:29:58 +09:00