1. Home
  2. Knowledge Base
  3. Ghostlab: Configuration Reference
  4. Application Configuration (Preferences)

Application Preferences

Forms

Remote form filling

With Remote form filling, you can fill out forms on all clients from one single client. Simply navigate to a form field. Then, either triple-click it, or focus it and use the key shortcut (Ctrl-Space by default) to start remote form filling. A popup will open, providing you with a field for every connected client. The fields are labeled with the name of the device, and when you focus them, the respective client will visually identify. This feature is very useful whenever you want to quickly fill out distinct values across clients, e.g. for login purposes. In a way, it is the manual alternative to the QuickFill data, which also allows filling forms with client-distinct values, but in a more programmatic way.

Note: this feature is only available in Ghostlab 3.

Automatic Form Filling

That’s an easy one! Simply focus a form element, and then press the Automatic form fill shortcut (by default, Ctrl-Shift-F, but you can change that in the Preferences). This will fill out all the fields of the form with random values – and of course, these values are synchronized across clients. In the Preferences, you can define how these values are generated for every form field type. We’ve included a set of rules that makes sense to use, such as E-mail, phone numbers, dates, colors – but of course, you can extend them any way you like.

 

Quickfill and Round-robin data

QuickFills are a convenient way to fill out form fields. Basically, a QuickFill is a Shortcut code (e.g. $n) that triggers the execution of a JavaScript function when entered within a form field. The return value of the JavaScript function is then entered as the value of the form field. Consider the example below.

screen-shot-2016-12-09-at-13-22-58

A Quickfill function

When you enter the trigger string “$n” when inside a form field, it will cause the function shown below to execute – it returns a random number between 0 and 100’000. The function receives the form field element ($element) as the first argument, in case you would need that to compute the desired return value. Ghostlab comes with several default QuickFills for numbers, emails, dates and others.

Note that since we have only introduced this feature in 2.1.3, your existing QuickFill codes will not automatically include the element as a function argument – you need to manually replace the first line “function()” with “function($element)”.

In some contexts, you may want to fill in different values in different browsers for the same QuickFill. For example, you might want to test your site by loggin in with multiple browsers, each with a different username/password combination. 

That’s why in Ghostlab 2.0.10, we’ve introduced Round-robin data (formerly called Quickfill data). This allows you to define various sets of data which you can then use on your clients via special shortcuts. It can for example be used to define a set of login data for a site and then use that to log in different clients with different accounts.

 

Client behavior

In the client behavior section, you can configure how Ghostlab synchronizes scrolling between clients. The first option lets you enable or disable scrolling focused elements into view – when on any client, you give focus to a form field, Ghostlab will by default focus and scroll into view that field on all connected clients.

You can also specify at which point Ghostlab attempts to synchronize the page scrolling – top, bottom or center.

Finally, you can chose to override JavaScript popup boxes. Consider a page that is generating an alert. It will pop up on all clients – and when you click OK on one of them, this will not be synced, because it is not a page interaction, but rather a “native” interaction with your browser. If you choose to override popup boxes, Ghostlab will look for code that generates a blocking box (alert, prompt, confirm) an override it in a way that lets you “click it away” from one client.

Advanced Settings

Redirection Service

The redirection service allows you to set up permanent bookmarks that point to the computer that is currently running Ghostlab. This is helpful in case you are sharing test devices in a team and want to have a single bookmark on them that always points to the computer of the developer currently using the devices with Ghostlab.

Set up a redirection bookmark at me.vanamco.com and add it to Ghostlab via the provided link or by pasting the token into the service access token field. When redirection service is enabled, Ghostlab will update the bookmark whenever it starts the server and display the redirection URL (e.g. http://302.pm/ob6NZR) as the server URL and 2D barcode.

 

JavaScript Rewriting

Ghostlab rewrites JavaScript code to make sure that no navigation away from the Ghostlab server occurs in the code. Because rewriting is computationally heavy and make a page load slower, we exclude some scripts from being rewritten, such as jQuery. In the black- and whitelisting section of JavaScript rewriting, you can define which scripts are excluded from rewriting, and whitelist scripts that you want to always rewrite despite them matching a blacklist indicator.

JavaScript Remote Debugging

When you are remotely debugging JavaScript with the build-in inspector, Ghostlab rewrites all JavaScript so as to make it debuggable. This results in a performance penalty. You can blacklist scripts that will never be rewritten to make them debuggable to gain performance – by default, Ghostlab does not make popular JavaScript libraries debuggable to improve performance. Add any script you don’t want debuggable to gain performance.

The whitelisting field allows you to specify scripts that you must have debuggable, even if they would be excluded by the blacklist. E.g. if you want to exclude all jquery-Related scripts with the blacklist entry jquery, but want to have one specific jQuery plugin (e.g. jquery-myfancy.js) to be debuggable, add the entry jquery-myfancy.js to the whitelist.

Networking and Security

You can protect your Ghostlab server by requiring any client connecting to it a username and password. This option can be changed while the server is running.

When Ghostlab starts the server, it will bind to a specific network IP, and it will need to open three ports for communication (one for HTTP requests, one for websockets, and one for the inspector). You can either choose to let Ghostlab select IP address and ports automatically, or you can set whatever values you usually work with. Also, you can limit the number of outgoing HTTP connections Ghostlab performs on behalf of the clients it is serving. Note that you can’t change IP and port settings while the server is running.

Also, you can configure Ghostlab to only accept secure connections via HTTPS. In this case, you need to specify a server certificate and key.

Proxy Settings

If you are in a network that requires a proxy to connect to the Internet, Ghostlab can handle it. By default, Ghostlab checks your system proxy settings and uses them to connect to the Internet. If you don’t have system-wide proxy settings (e.g. they are only configured in a browser), you can also enter the Proxy configuration manually. Of course, you can also force Ghostlab not to use a proxy at all, even if one is configured in your system.

Client scrolling behavior

 

In case you feel the way clients scroll isn’t as you’d expect, you can customize the scrolling behavior in two variants: you can either tell Ghostlab to synchronize visible elements, or to propagate scrolling offsets.

If you synchronize visible elements, Ghostlab will try to scroll on all clients such that the same visible element is in view. You can finetune this setting by specifying in which area Ghostlab should search for visible elements. Note that this setting does not work well if your page loads its content elements very lazily, i.e. if elements are only loaded as you scroll down. If this is the case, elements already visible on the client where the scrolling is performed will not yet be present on the other clients, and can thus not be scrolled to.

Example: if you select Vertical center, the HTML element closest to the vertical center of your screen will be used as a reference. Clients then try to scroll in a manner such that the reference element is in the center of their respective screens. If you choose Bottom, the element of reference will be picked from the bottom part of your screen, and clients will try to scroll in a manner such that the element of reference is at the bottom of their respective screens.

If you propagate scrolling offsets, Ghostlab simply propagates directional scrolling events to all clients, regardless of the currently visible areas.

 

Miscellaneous

Ghostlab has the ability to check for updates on its own, and download updates if they are encountered. Make sure to automatically check for updates if you want to always have the latest bugfixes and new features.

Whenever a new site is added, its initial settings are based on the default site settings. By allowing modification of the default site, an additional tab will show that allows you to edit the default site settings that apply for new sites. At any time, you can reset the default site settings to the original values that are shipped with Ghostlab.

Was this article helpful?

Related Articles