Revolution: transparent iframe in Package Management

Created on 20 Jun 2018  Â·  30Comments  Â·  Source: modxcms/revolution

Summary

when I enter the Package Manager I can not click on "Download Extra" because a transparent iframe id="ux-lightbox-shim" covers the elements.

Step to reproduce

Install a new version of modx, and go to Package Management, try clicking on the "Download Extras" button.

Environment

MODX 2.6.4.

bug

Most helpful comment

It may be that the invisible window is thrown by the onAjaxException function, since the modal window contains the modx-js-parse-error class, see the comment above.
https://github.com/modxcms/revolution/blob/2.x/manager/assets/modext/core/modx.js#L112

All 30 comments

Thanks for taking time to report this issue. I can't reproduce the issue you are experiencing.

It would be of great help if you could provide us with additional details like:

  • What browser are you using?
  • Can you show us a screenshot?
  • Anything else that might help us reproduce the issue.

Chrome on linux.
I have no errors in the console.

image

  • Does it help if you clear the cache of your browser?
  • Can you run the setup process again and check if this solves the issue?

If you go to the system settings, what is the value for "Show Welcome Screen"?

@JoshuaLuckers thank you for your support.
I assume that the problem is only for me, I will do other tests, possibly I will reopen the issue if I do not solve.

Check your plugins and any CMPs you have installed.

@FerX we try to duplicate your environment to see if we can reproduce it. Others might have this issue as well. And even if it’s only an issue you have we love to fix it!

I am having this same issue, across all MODX 2.7.0+ builds. On a regular basis the top half of the screen is unusable do to the transparent covering iframe. A hard refresh clears it temporarily. A browser cache dump doesn't appear to solve it.

Edit: I'd also like to note that it happen throughout the admin, not just Package Management.

Chrome on macOS Mojave

That does seem to be part of an ExtJS utility Ext.ux.Lightbox but I've not seen that before in my life. It's initialized to listen to a.lightbox clicks in the package manager with Ext.ux.Lightbox.register('a.lightbox'), presumably to show larger screenshots or package information in the browser.

That's also the only place I can find it being used in the core.

I can find the ux-lightbox-shim in my DOM, but it's set to display none.

Screen Shot 2019-03-13 at 11 21 38 AM

Here is my screenshot, just happened again. I may have been mistaken before about other locations, that could have been something else...

Does it go away if you disable your custom manager theme? (or is there a way to change the logo in the top right without a custom theme)

Do you have the text <a … class="lightbox" … > somewhere in the (rendered) manager html code?

It could only happen in the workspaces custom manager page (thats the Package-Management), since the Ext.ux.Lightbox.register('a.lightbox') code is only executed there.

@Mark-H I've deactivated the custom css to see, It hasn't happened yet but my sample time is pretty short.

@Jako No, nothing with the class "lightbox" in the rendered dom.

Here is the custom CSS we use, anything that might stick out as the culprit?
custom.txt

Did you install a new package before, without reloading the manager?

@Jako No. It happens on page load randomly, even on sites I haven't interacted with for a few days.

The Extras list also lags before this happens.

This is my error log a the time of the incident, not sure if anything's related:

[2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace importx to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace redirector to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace googleanalytics to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace tagger to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace simpleupdater to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace collections to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace customurls to the routing based system. [2019-03-14 11:43:17] (ERROR in modMenu::getSubMenus @ /home/mobility/public_html/core/model/modx/modmenu.class.php : 145) modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace group_edit to the routing based system. [2019-03-14 11:43:17] (ERROR in modProcessor::run @ /home/mobility/public_html/core/model/modx/modprocessor.class.php : 177) Flat file processor support is deprecated since version 2.7.0. [2019-03-14 11:43:18] (ERROR in xPDO::getService @ /home/mobility/public_html/core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:18] (ERROR in modRestCurlClient::__construct @ /home/mobility/public_html/core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:18] (ERROR in xPDO::getService @ /home/mobility/public_html/core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:18] (ERROR in modRestCurlClient::__construct @ /home/mobility/public_html/core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:37] (ERROR in modProcessor::run @ /home/mobility/public_html/core/model/modx/modprocessor.class.php : 177) Flat file processor support is deprecated since version 2.7.0. [2019-03-14 11:43:38] (ERROR in xPDO::getService @ /home/mobility/public_html/core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:38] (ERROR in modRestCurlClient::__construct @ /home/mobility/public_html/core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:38] (ERROR in xPDO::getService @ /home/mobility/public_html/core/xpdo/xpdo.class.php : 1234) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead. [2019-03-14 11:43:38] (ERROR in modRestCurlClient::__construct @ /home/mobility/public_html/core/model/modx/rest/modrestcurlclient.class.php : 26) modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.

@robliberty Is this problem repeated in incognito mode of your browser?
Perhaps some browser extension activates lightbox.

I am experiencing the same problem in 2.6.5. I do have alot of plugins installed. For me its appearing in the Package Management page only.

I am experiencing the same problem in 2.6.5. I do have alot of plugins installed. For me its appearing in the Package Management page only.

Soorry for spamming this issue. I just resolved my own problem. Redactor was the culprit. Most likely this modal was meant to show me a warning that I need to renew my license. I haven't used Redactor in years now (went back to tiny mce) Do you think I should report this to the redactor team?

Interesting! I don’t have Redactor, but I am using ModMore Gallery by the same developer. I wonder if it’s related

There's nothing in any modmore addons specifically that runs on the package manager page. License checks in the package manager are executed in the upgrade request; which either returns a new version if you have a valid license, or no results. There are no popups about licenses involved at all.

@MarkOdey what happens if you reinstall Redactor? How many extra's are installed?

@robliberty how many extra's are installed?

Actually I am not sure anymore if Redactor was the problem. I did try to progressively remove what I was not using and suddently the transparent window didn't appear but it just came back. So I will investigate a bit more and comeback at you.

What I researched before about Ext.ux.Lightbox, which supposedly creates this "shim", is that it gets triggered when a link with class lightbox is found. That word does not occur anyone in the Redactor source code, so I honestly cannot begin to imagine how that could possibly be related.

Trawling through the MODX source code again, the only place I see it in use is the package manager, for the screenshots of packages. Perhaps to reproduce this, a certain set of actions (browsing certain providers/categories?) must be taken?

If we can't figure out the exact source, it does look fairly straightforward to remove the lightbox utility package manager. Screenshots could simply open in a new tab instead.

I’ve had it occur on builds with as few as 6 extras and as many as 24.

Possibly related, I get a similar invisible popup editing chunks if my /assets or /components folders are 775 (default install). I’m constantly having to change them to 755 to rid myself of the ghost blocking overlay.

Additional information on the bug (Scorp Satex reported in https://modx.pro/help/20679#comment-122379):

The window appears through a JavaScript Animate function, when window appears, a third-party JS error "breaks" JavaScript and prevents the window from being rendered normally with an error.
In my case, the problem was with the hosting settings, preventing the download of a large number of files.

The window appears in my case with css: "opacity: 0". After correcting third-party errors, the problem was resolved.

window_tr_2

window_tr_1

window_tr_3

It may be that the invisible window is thrown by the onAjaxException function, since the modal window contains the modx-js-parse-error class, see the comment above.
https://github.com/modxcms/revolution/blob/2.x/manager/assets/modext/core/modx.js#L112

Nice find, but what was 'a third-party JS error "breaks" JavaScript' and how was this solved?

In fact, we have 2 invisible windows. One might have id="ux-lightbox-shim" and the other might have class="modx-js-parse-error".

Additional Information. The window also appears if:

  • /connectors/index.php returns json with an access error:
    {"success":false,"message":"Access is denied.","total":0,"data":[],"object":{"code":401}};
  • errors appear in the browser console.

window_error

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sdrenth picture sdrenth  Â·  3Comments

freelancewebdev picture freelancewebdev  Â·  3Comments

travisbotello picture travisbotello  Â·  3Comments

dsuppiger picture dsuppiger  Â·  3Comments

sdrenth picture sdrenth  Â·  3Comments