Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
What?!.. headless Internet Explorer.. are you for real?
Yep, TrifleJS is a wrapper over the .NET WebBrowser Control which uses the underlying Windows COM API to control a window-less instance of Internet Explorer.
To translate in plain english: TrifleJS is not a self-contained browser, but will be controlling whatever version of IE you have installed in your computer, a bit like WebDriver but without showing anything on screen other the command line.
Why the name?
There is a bit of a tradition in the PhantomJS ecosystem to use names derived from other-worldy entities, the pun here is that you are running a 'phantom' (non-corporeal) browser. This has given rise to names such as CasperJS, SlimerJS (after Ghostbusters), Wraith, GhostDriver etc etc.
TrifleJS breaks this tradition by using the name for a well-known english dessert. Why? When starting the project the main developer (@sdesalas) couldn't think of a name along those lines that wasn't taken already, and he used a variation of the IE rendering engine (Trident) to create a name. Thus
TrifleJS derives from
Isn't it a bit pointless now that IE is losing so much market share?
Perhaps. Certainly a good question. If Microsoft decides to ditch IE the whole project will become pointless. But Microsoft appears to be too deeply committed to ditch IE, and they have the resources to throw at it even in the face of such adversity.
While mobile sales are altering the personal browser market in favor of Webkit, the corporate desktop world is still dominated by Internet Explorer. Besides, TrifleJS has the potential to become extremely useful in combination with PhantomJS and SlimerJS (via CasperJS or similar testing framework), as one set of tests will serve for IE, Webkit and Gecko (Firefox) engines. There is also the fact that IE Emulation allows you to test all recent versions of IE with the one package. And to top the cake, while testers using PhantomJS and SlimerJS are stuck with one browser that loses currency over time, TrifleJS uses the version of IE already installed on the computer, which stays current thanks to windows updates.
Plus you are here reading this aren't you? Meaning that somebody cares.
Are you planning to suport Linux/OSX?
No. As mentioned above, TrifleJS is a wrapper for Internet Explorer. Since Internet Explorer is not available for Linux and OSX there is no way it will work on those systems.
mono project made it possible to run .NET projects in Linux/OSX?I thought the
Correct, however the mono project runs either Webkit or Gecko as its rendering engine for the WebBrowser Control in Linux and OSX systems. Besides there are quite a few calls made directly to windows APIs that will not exist in Linux.
If you are concerned about the cost of running your own windows infrastructure there are some good news in the horizon with virtual container technology (native Docker) coming to Windows Server. This is currently in beta and should be released very soon.
I think IE has just been open-sourced, does that change your plans to support Linux/OSX?
Internet Explorer has not been open-sourced, the .NET Framework has. And the answer is still no.
The fact the .NET framework has been open-sourced does provide a benefit to TrifleJS in that it makes it easier to understand how the WebBrowser class works under the hood. But its does not magically change things overnight.
Why is it taking so long?
The main developer had twin babies and family commitments have taken precedence over personal hobby projects.
How can I speed things up?
How do I know what features I can use?
Status for different features is shown triflejs.org using RAG (Red-Amber-Green) notation.
Will I be able to use CasperJS to run tests?
Yes, eventually. CasperJS support is scheduled for v0.8.
Will I be able to use TrifleJS inside Node.js?
Eventually (and with the proviso that node.js is hosted in a Windows environment) but not until somebody creates an npm package and ports it over.
Thats all great but I'm a total noob, how do I get started?
You are probably better off waiting until the
v0.9 release is out. At the moment the project is in beta and there will be too many bugs to be able to tell which ones are genuine and which ones are due to your lack of knowledge.
I would suggest that in the meantime you become familiar with PhantomJS or SlimerJS, those projects are far better documented and the lessons learnt will give you the background necessary to pick up TrifleJS without a steep learning curve.
I dont like downloading *.exe files, how do I build my own?
TrifleJS comes with a simple build system based on
MSBuild so you dont need Visual Studio installed unless you are planning to make changes.
To build your own binary you only require .NET 3.5 installed on your computer, this will generally come pre-installed in most Windows 7 machines.
The steps are as follows:
- Download the whole project from github.
- Open the command line
- Navigate to the
Buildfolder at the root of the project
Build.Trifle.batand press return.
- The output will appear as
Please be patient as the process takes a couple of minutes.
Which version of the V8 engine does TrifleJS use?
See following release notes. This version is dated 24 May 2012. There are no plans to update to a newer V8 engine at present.
Internet Explorer runs as a compartmentalised process.
This also means that TrifleJS supports Chakra and/or JScript, depending on the IE version you are currently running.