ASP.NET, MVC, and XAF Popup Control – Google Chrome v75 Render Issue

07 June 2019

Recently, we discovered an issue with Google's latest Chrome browser: our Popup Control will not render page content inside Chrome version v75 (specifically v75.0.3770.80).

The issue was caused by Chrome's inability to correctly render IFrame content when using the src attribute. If you'd like to learn more, please take a look at our bug report on chromium.org:

Issue 971641: Chrome 75 does not render IFRAME content if the content was specified using "src" attribute with some delay

What's affected?

The following components are affected by this issue:

  • WebForms ASPxPopupControl
  • PopupControl MVC Extension
  • XAF Pop-up Window

If you set a URL using either the client-side SetContentUrl method or the ContentUrl property, the popup window will appear empty.

Solution

We've addressed Google’s bug in the following versions (available early next week):

  • v18.1.13
  • v18.2.10
  • v19.1.4

If you need a workaround for current versions, register the following script at the bottom of your HTML page (before the body closure tag):

<body>
    <form id="form1" runat="server">
        ...........
    </form>
    <script>
        if (window.ASPx && ASPxClientUtils.webKitFamily && ASPxClientUtils.browserVersion >= 75) {
            ASPx.SSLSecureBlankUrl = "about:blank";
        }
    </script>
</body>

This workaround should be implemented on each web page that contains our Popup control. If you use a MasterPage (or LayoutView in MVC), register the same script in those pages instead of each content page/view.

If you run in to any issues then please contact our support team and they can help you.

1 comment(s)
Customer85082

This affected my PopupControl MVC Extension after updating my chrome version to 75.0.3770.80.

The code that i was used to show the popup is

c#

@Html.DevExpress().PopupControl(

                  settings =>

                  {

                      settings.Name = "inspectionedit";

                      settings.HeaderText = "Inspection Edit";

                      settings.AllowDragging = true;

                      settings.AllowResize = true;

                      settings.ShowPageScrollbarWhenModal = true;

                      settings.CloseAction = CloseAction.CloseButton;

                      settings.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;

                      settings.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;

                      settings.Styles.Footer.Paddings.Padding = 8;

                      settings.Styles.Footer.SizeGripSpacing = 0;

                      settings.Height = 430;

                      settings.Width = 630;

                      settings.Modal = true;

                      settings.ClientSideEvents.CloseUp = "function(s,e){s.RefreshContentUrl();}";

                  }).GetHtml();

And the button click Javascript function

        var contenturl = "@Url.Action("ScheduleOccupancyInspection", "Reports")";

         inspectionedit.SetHeaderText("Schedule Inspection");

         inspectionedit.SetContentUrl(contenturl);

         inspectionedit.Show();

In order to fix the issue of not rendering the page inside the popup i just changed the javascript button click code by set the content url after the popup was shown and no need to put a timeout as well

ie:

         var contenturl = "@Url.Action("ScheduleOccupancyInspection", "Reports")";

         inspectionedit.SetHeaderText("Schedule Inspection");

         inspectionedit.Show();

         inspectionedit.SetContentUrl(contenturl);

And it works fine in the latest chrome

14 June, 2019

Please login or register to post comments.