The website I'd like to use in Royal TSX doesn't work with Safari/WebKit

Most website today work properly with WebKit. If you still encounter a page that doesn't seem to behave properly, there's one easy trick that might help: Fake the "User Agent String".
The user agent string is used by some website to identify the browser that you're using. Since Royal TSX is not Safari, we don't pretend to be Safari and our user agent string differs from that of Safari. You can however overwrite the user agent string in the "Advanced" section of your web connection's properties. Enable "Use Custom User Agent String" and specify the string to use in the textbox below. If, for instance, you want to use the same user agent string as Safari, open a new Safari window and navigate to whatsmyuseragent.org, then copy the string it outputs and paste it in Royal TSX. Of course, the same procedure can be used to fake Chrome's user agent string.

If that doesn't help with the specific issue you're having, read on for more advanced troubleshooting steps.


Issues with the modern WebKit engine

Since Version 2.2 of the WebKit plugin we support both, the modern (WKWebView) and legacy (WebView) WebKit engines. While the modern engine has several advantages it also has some shortcomings in its current iteration.
One of those is its inability to ignore untrusted (self-signed) certificate errors when "Ignore invalid certificates" is enabled in the "Advanced" properties of your web connection and the website makes use of WebSockets. In this case, WebKit will silently ignore the request and there's no indication whatsoever that something failed. Most of the time, this issue results in the main page working properly but some parts of it which load data asynchronously fail.

For instance, we've seen this issue happen with the HP iLO and VMware vCenter web consoles.

Thankfully, there's an easy workaround for making affected sites work:

  1. Close the affected connection if it's currently open.
  2. Uncheck (disable) "Ignore invalid certificates" in the "Advanced" properties of your web connection.
  3. Apply the changes.
  4. Open the connection.
  5. When the "Verify Certificate" popup appears, select "Show Certificate".
  6. Check (enable) "Always trust "CERTIFICATE NAME" when connecting to "HOST NAME"".
  7. Click "Continue".
  8. Enter your Mac's username and password and save the changes.
  9. This will create an entry in your Mac's Keychain for this certificate and adjust the trust settings to always allow connections using this certificate.
  10. After saving the trust settings for the certificate you might see an error like "An SSL error has occurred and a secure connection to the server cannot be made.".
  11. In that case, simply close the connection and re-open it. The next time you visit the page in Royal TSX it shouldn't prompt for certificate validation anymore and the WebSocket related issues should be gone.


Advanced troubleshooting with the Safari Developer console

If the page you're trying to use in Royal TSX still doesn't work properly, you can use the Safari developer console for troubleshooting.

Here's how to enable it and start troubleshooting:

  1. Close the affected connection if it's currently open.
  2. Open Royal TSX' preferences (⌘,).
  3. Navigate to "Connection Types - Web Page - Plugin Settings".
  4. Check (enable) "Enable Developer Extras".
  5. Apply the changes.
  6. Open the connection.
  7. Right-click (control-click) anywhere on the webpage and select "Inspect Element".
  8. Switch to the "Console" tab.
  9. Monitor the console for any warnings or errors while reproducing the issue.
  10. Depending on the type of the issue, you might have to reload the page for anything to show up in the console.
  11. If you're still unable to identify the issue, please either contact the publisher of the affected page or open a support ticket with us.


Issues related to old versions of Royal TSX (pre 4.0) and macOS


Modern WebKit Engine and Certificate issues on macOS 10.10 Yosemite

Another issue of the modern WebKit engine is the inability to handle untrusted (self-signed) certificates on macOS 10.10 Yosemite. Apple already fixed this in macOS 10.11 El Capitan and later version but there's a workaround available for Yosemite too:
  • Open the site with the invalid certificate in Safari
  • Wait for the certificate prompt to appear
  • Click "Show Certificate"
  • Click "Always trust..." to store the trust in the Keychain
  • Click "Continue"
As soon as the trust is stored in the Keychain you should be able to connect with Royal TSX too.
Like mentioned above, this workaround is only required on Yosemite. The WebKit engine shipped with El Capitan properly supports certificate validation so this workaround is not required.

WebKit and flipped Web Plugins after switching tabs

Update: A new version of the WebKit plugin is now available that offers the choice of using the legacy or modern WebKit engine. Among other improvements, the modern engine has the advantage of properly supporting web plugins.

There's unfortunately a bug in Apple’s WebKit framework when using web plugins in 64 bit applications that causes web plugins embedded in a page to flip once the underlying window or view becomes invisible. Since Royal TSX uses tabs to separate connection sessions from each other, it is affected by this bug. 

Since Royal TSX V1 was a 32 bit application it wasn’t affected by the bug.

We have an open ticket with Apple about this. They acknowledged it’s a bug but haven’t provided a workaround nor a time frame for a fix.

Here are some references about the issue:

http://openradar.appspot.com/19701304

http://stackoverflow.com/questions/28305904/webview-in-nstabview-and-sethostwindowyes-causing-flipped-plugins

https://devforums.apple.com/message/1098924#1098924

We'll update this article when new information becomes available.


WebKit Plugin and Java

This section applies to Royal TSX 2.X:

Update: A new version of the WebKit plugin is now available that offers the choice of using the legacy or modern WebKit engine. Among other improvements, the modern engine has the advantage of properly supporting Java.

Unfortunately, the current state of support for Java in Apple's WebKit Framework is unknown. In Yosemite, it doesn't appear to work even using the most basic setup.

We have an  open ticket  with Apple about this and will update this article once new information becomes available.

This section applies to Royal TSX 1.X:

Like Google Chrome, Royal TSX is a 32 bit application and requires the 32 bit version of Java which is only available until version 6.

So if you already have Java 7 installed you have to downgrade to version 6.

To downgrade to Java 6, you can follow this guide:  http://support.apple.com/kb/HT5559


Blocked Plug-in with WebKit

Apple introduced a  new feature in Safari for macOS 10.9 Mavericks that by default blocks plugins to save energy.

Because Royal TSX' WebKit plugin is based on Safari it inherits Safari's settings to a certain degree, including the power saver whitelist.

So if you stumble upon a website that greets you with a "Blocked Plug-in" message, make sure that website is on the whitelist for websites that may start plug-ins automatically.

For more info on the subject and steps to resolve the issue please head over to  this TekRevue post .