Ninja Browser has returned!
A long time ago…
There was a browser for Windows called Ghostzilla. It would embed itself in the active window and attempt to disguise the website to better match the application.
I loved Ghostzilla and used it a bunch in school. It was prefect but the original developers stopped updating Ghostzilla in 2002. This meant that due to the old rendering engine modern websites wouldn’t render properly.
So in 2007 I decided to clone it. I called my clone Instabrowser and it used the web view control built-in to Windows. Then I renamed the project to Ninja Browser in 2009, and shortly after that moved to a Mac so I stopped working on it. I honestly never thought an app like Ninja Browser would be possible on macOS because I thought it lacked the necessary APIs.
Present day
I recently came across a script to get the location of a button on a UI using AppleScript and it clicked! If that is possible with AppleScript, then I should be able to get the location of every element on a UI using Objective-C. So here we are! Using Mac’s accessibility APIs you have everything you need. It’s not as clean as the Windows API, but it works. And with Electron it’s easier than ever to make a “browser”.
I spent the weekend working on reaching feature parity with the old Windows version and it’s pretty close!
Fans of Ghostzilla or Ninja Browser please head over to the GitHub and let me know what features you’d like to see:
https://github.com/octalmage/Ninja-Browser
There are binaries for macOS under releases so give it a try and let me know what you think.
Additional Reading