The most common way to display a web page in Polywall is to use a "Web source" source in Polywall Designer interface. In this case a web page will be rendered with a built-in Chromium-based browser. Though the vast majority of web sites are compatible with Chromium, some of them are not. In this and some other cases it is beneficial to use an "Application" source in Polywall to launch a third party browser to display a specific web page. This option is available in Polywall Pro version only.


This article describes how to use some well-known web browsers as a video source for Polywall.


Internet Explorer


A typical recommended command to launch Internet Explorer as an "Application" source is:


"C:\Program Files\internet explorer\iexplore.exe" -noframemerging -k "<url>"


The command-line parameters are:


-noframemerging is used to prevent Internet Explorer from opportunistically merging to other running iexplore processes and run as a child of Polywall Visualizer process.

-k stands for 'kiosk mode' used to hide browser user interface.

"<url>" is a web page URL.


P.S. It should be \Program Files\, not \Program Files (x86)\


For example:



"C:\Program Files\internet explorer\iexplore.exe" -noframemerging -k "https://www.youtube.com/embed/XvB7hOY9m90?autoplay=1"





Google Chrome


Launching Chrome as an application source in Polywall is possible by 2 ways. 


Issues which we need to solve are:

  • Google Chrome does not launch separate processes for different web pages, therefore separate user data directories have to be created manually for each running instance of Chrome.
  • Google Chrome has an out of the box 'kiosk mode' as in Internet Explorer, it behaves in other manner and will always use all the awailable viewport space, rendering to be not quite compatible with a way Polywall controlls target application's window size. There is a workaround solution to launch Chrome in a windowed mode without window system borders.


--First solution--


You can use the link to the video that demonstrates creating Chrome browser as application souce below:


https://www.youtube.com/watch?v=uw8nCi6q11M&t=212s 



Configuring profile directories


1.1. Create a folder for custom Chrome settings e.g. C:\mychrome


1.2. Create subfolders for chrome profiles, one for every separate webpage to be displayed in a videowall, e.g.:


C:\mychrome\1

C:\mychrome\2

etc.


1.3. Download Polywall Chrome App. Unzip it to any temporary folder.


1.4. Copy an instance of an unzipped 'app' folder to every data directory created in step 1.2 as follows:


C:\mychrome\1\app\*

C:\mychrome\2\app\*

etc.


1.5. Open and edit every file background.js from every C:\mychrome\<data-dir>\app\ directory. Locate a string containing


wv.src="http://polywall.net";


and substitite http://polywall.net with any desired URL. For example.com it should look like:


wv.src="http://example.com";


Configuring Chrome settings


After the folder setup is ready Chrome has to be launched manually to register a Polywall Chrome App within it. It has to be done with every instance of Chrome setup (i.e. once for every web page)


2.1. Launch chrome from console as follows:


"<path to chrome.exe>\chrome.exe" --user-data-dir="c:\mychrome\1"


Where "c:\mychrome\1" are profile folders created in step 1.2.


2.2. Type chrome://extensions in the address bar to launch Chrome extension manager. Switch to developer mode by selecting corresponding checkbox in the upper-right corner.


2.3. Press "Load unpacked extension" button and choose a Polywall Chrome App instance frome corresponding folder (c:\mychrome\1\app, c:\mychrome\2\app, etc. respectively)


2.4. After the app is loaded write down it's ID (looks like 'hkagpmmfgmhjnmknkoeikccfljjpbbie' though the exact letters will be different).


2.5. Repeat the above steps for every created profile.


Configuring Polywall sources


For each web page a separate "Application" source has to be created as follows:


"<path to chrome.exe>\chrome.exe" --user-data-dir="<profile directory>" --app-id=<app id>


The command-line parameters are:


--user-data-dir="<profile directory>" tells Chrome to to use a profile directory, specified in <profile directory>, created in step 1.2. (e.g. c:\mychrome\1, c:\mychrome\2, etc.)

--app-id=<app id> tells Chrome to launch a Chrome App with a unique id, created in step 2.4.





--Second solution--



1. Press Win+R and open chrome with this comand - "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="*Path to profile*"


Set path to profile by yourself. Chrome will create a folder with a new profile automaticaly. 


You need as much profiles as you need chrome web pages on a videowall.


Example: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\Mychrome\1"


2.  Open web page which you want to show in created profile.


For example youtube embed video file - https://www.youtube.com/embed/lM02vNMRRB0 


3.  Open settings -> More tools -> Create shortcut


4. Set name of shortcut, tick option "Open as window" and press "Create" button.



5. On desktop will appear shortcut with given name. Right click on it and press properties


6. Copy all path from "Target" field 


7. Open Polywall Designer and create application source.


8. In "path" field enter copied info and change chrome_proxy.exe on chrome.exe


"C:\Program Files (x86)\Google\Chrome\Application\chrome_proxy.exe"  --user-data-dir="c:\mychrome\4" --profile-directory=Default --app-id=fkajkikcopfpbfnipjoapepgbdimnmpc


9. In the end you should have path like on example below.


"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --user-data-dir="c:\mychrome\4" --profile-directory=Default --app-id=fkajkikcopfpbfnipjoapepgbdimnmpc


P.S. --app-id is our web-page, which Polywall will open, but remember that it binds to specific profile in which it was created.



Google Chrome with tabs.


In case of necessity of several full functional Google Chrome apps this article will be useful.


1. Press Win+R open chrome with this comand - "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="*Path to profile*"


Set path to profile by yourself. Chrome will create a folder with a new profile automaticaly. You need as much profiles as you need chrome source on a videowall.


Example: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\Mychrome\1"


2. Setup each profile like you need (for example addons, credentials, etc.).


3. Close it in windows mode (If you will close window in full screen mode, the system will open it in full screen mode next time).


4. Open Polywall Designer and create application source with path you opened in step 1. 

For example "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\chrome data\Profile1"




P.S. When you reopen chrome browser error popup may appear and you will need to press restore button via management mode.






Mozilla Firefox (Updated 07.05.2019)


Since version 59 launching Firefox as an application source is possible only with management and tab bars. There are three issues to be solved while launching Firefox in Polywall:

  • Firefox has no out of the box command-line parameters to be executed as separate process and will always try to find an existing Firefox process to merge in.
  • Firefox has no out of the box way to run in full screen mode on startup and hide UI (similar to IE's 'kiosk mode') - no solution.
  • Firefox has a complicated inner process structure, especially if 'Multiprocess Firefox' aka 'E10s' is enabled and there has to be a way to prevent it from crashes when Polywall terminates a process.


Creating profiles


As Firefox will not create a separate process for a web page, each page that is going to be displayed in Polywall needs to be run in a separate Firefox profile.


To add a profile type in console:


"<path to firefox.exe>\firefox.exe" -no-remote -P


Create as much profiles as needed in an appeared window, a separate profile for every web page that is going to be displayed in Polywall. In this tutorial the profile names used are profile1, profile2, etc, though any names may be chosen.


Creating Polywall sources


For each web page a separate "Application" source has to be created as follows:


"<path to firefox.exe>\firefox.exe" -no-remote -p profile1 <url1>

"<path to firefox.exe>\firefox.exe" -no-remote -p profile2 <url2>


The command-line parameters are:


-no-remote prevents Firefox to communicate with other running firefox instances

-p <profile> launches Firefox instances with separate user profiles created above, as it is impossible to launch several instances of firefox with one profile

<url> is a web page URL


Configuring Firefox


As mentioned above Firefox has to be properly configured to run correctly without crashes in Polywall.


The Firefox settings are available under Firefox configuration editor, which can be accessed by typing about:config in the address bar. Please note, that all of the following settings have to be configured for each user profile separately in a Firefox session invoked with -no-remote -p <profile> parameters.


 The recommended settings are:


browser.tabs.remote.autostart      false


These two options disable 'Multiprocess Firefox' aka E10s.


browser.sessionstore.resume_from_crash   false

toolkit.startup.max_resumed_crashes      -1


These two options prevent Firefox crash recovery dialog, as Firefox considers the termination from outside as a crash.


Running in full screen mode.


Mozilla Firefox has no longer support of full screen mode.