Background permissions for Designer Perspective View editing

I'm trialling Ignition with a new customer. I'm required to use a PC issued by the IT department on their network. The computer is fairly locked down but I can install ignition and run the designer launcher in (local) administrator mode. I have to be logged into Windows with a standard domain account however I have a separate local admin account that I use to authorise actions requiring administrator credentials.
Where I am running into trouble is when I try to create or open a Perspective view in the designer, from what I have been able to determine this relies on a software component called JxBrowser to make sense of the view's saved structure. I have no issue creating or opening Vision windows, just Perpective views.
When I try to open or create a view I get an error dialog stating that Designer was "Unable to deserialize View", where View is the name of the view.
The detailed error message is appended below.
I suspect an executable or service related to JxBrowser is being blocked by an IT group policy. It would be great if someone could qualify what permissions may need to be granted and where, to enable the designer utilise JxBrowser and edited views accordingly. This would give me somethiong to present to the customer's IT department for consideration.

Thanks for your time,
Simon

Error message when attempting to open an existing perspective view ("Charts") in designer:

com.teamdev.jxbrowser.navigation.NavigationException: Failed to load resource: ABORTED
at com.teamdev.jxbrowser.navigation.internal.NavigationImpl.lambda$loadUrlAndWait$0(NavigationImpl.java:105)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at com.teamdev.jxbrowser.navigation.internal.NavigationImpl.loadUrlAndWait(NavigationImpl.java:104)
at com.teamdev.jxbrowser.navigation.internal.NavigationImpl.loadUrlAndWait(NavigationImpl.java:91)
at com.teamdev.jxbrowser.navigation.internal.NavigationImpl.loadUrlAndWait(NavigationImpl.java:83)
at com.teamdev.jxbrowser.profile.internal.ProfileImpl.newBrowser(ProfileImpl.java:151)
at com.teamdev.jxbrowser.engine.internal.EngineImpl.newBrowser(EngineImpl.java:483)
at com.inductiveautomation.perspective.designer.workspace.design.BrowserPanel.(BrowserPanel.java:139)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.init(ViewResourceEditor.java:368)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.init(ViewResourceEditor.java:68)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.loadResource(ResourceEditor.java:64)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.(ResourceEditor.java:39)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.(ViewResourceEditor.java:130)
at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.newResourceEditor(ViewWorkspace.java:363)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:258)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:244)
at com.inductiveautomation.perspective.designer.workspace.nav.ViewNode$2.actionPerformed(ViewNode.java:477)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

Ignition v8.1.28 (b2023060110)
Java: Azul Systems, Inc. 11.0.18

That log doesn't make it clear, but it is likely the Chromium subprocess that is being blocked.

Consider not running the designer on the same computer as the gateway. You might have looser restrictions when not on a server.

1 Like

Thanks for your reply. Because this is a pitch for Ignition with limited resources I am running the gateway on the desktop machine they have allocated to me for general automation service work. So the gateway is already running on the "most unrestricted" platform I have.
I have submit administrator priveledges to run designer launcher, could it be that when the launcher then "luanches" the designer (after gateway selection) that my designer does not inherit the admin priviledges of the launcher. Is their anyway to execute the designer directly, perhaps with a shortcut that stipulates the desired gateway?

Cheers,
Simon

Is there an Ignition log that would make note of a missing process such as Chromium?
I'm not going to get far with the IT crowd unless I give them something specific to permit.

Yes, the designer launcher has a log file, and the last thing it logs is the real java command line it runs after pulling the starting resources down from the gateway.

You can start an elevated teminal and paste that last command line in the terminal. Then you will have a log of the actual designer that will survive a designer crash.

Not in so many words, but yes, there will be multiple Chromium processes started as soon as you attempt to open a view in the Perspective workspace. You normally get a log entry showing a temporary URL you can use to access the Chromium diagnostic pages for the designer session. If you have no Chromium subprocess in your process viewer, that is a glaring error.

Your windows event log might have more information, too.