-1

UPDATE IN ANSWER BELOW


Is anyone else experiencing the newest couple versions of chrome causing issues with legacy Java applications? Just yesterday I needed to get the company's policy manager to allow downloading files from an internal unsecured server by adding our URLs to a whitelist - you can see the details of the process on the chromium blog here. That issue was present in v90 as well.

What I'm currently experiencing due to the v91 update is as follows: My boss was trying to use a page in one of our Java 6 legacy applications and he noticed that the page wouldn't return the data in any format - we checked and he was already v91. I was on v90 and the page worked fine. After updating Chrome to v91, I'm getting the same broken page as my boss.

I was thinking it might be something related to the CSS but I don't have time to poke at it and redeploy the legacy app every time to test the changes. Though, I have taken a peek at this chromium blog post for version 91. Though I don't see much relating to what may have caused the removal of all non-label fields and the formatting of the label fields are all wonky and out of place.

I'm going to look into investigating the struts tile that holds the code JSP code; if I find something I'll post it here for reference.

The first image below is what one row should look like with the header above it. As you see in the second picture, all there is the header with improper formatting and the grid is gone.

working page

broken page

Roman C
  • 49,761
  • 33
  • 66
  • 176
Darrel Holt
  • 870
  • 1
  • 15
  • 39
  • It could be literally *anything*; there's no way to help with the information provided. – Dave Newton Jun 03 '21 at 22:10
  • @DaveNewton Really... *Literally* anything? We must be having a solar storm then or maybe the tiny mouse in my computer stopped running on his wheel? There hasn't been a code change to the app in months; so it isn't a problem with the code. It's a *single* struts tile that has shown the issue so far. the only thing that changed on my machine in the 30 seconds between it working and not working was the google chrome update. Based on the sequence of events, I'm nearly certain it's the cause, and I am absolutely certain that it's related to the Chrome update. Thanks for your input though. – Darrel Holt Jun 03 '21 at 23:02
  • 1
    "It isn't a problem with the code" is incongruent with it possibly being related to a browser upgrade: just because wrong code used to work doesn't mean it's not a code problem. Still no way to help :shrug: If you decide to provide actionable intel, please include the version of Struts you're using, the CSS, JSP, rendered HTML, and any JS libraries/code used on the page. – Dave Newton Jun 03 '21 at 23:20
  • You're right, I shouldn't have said it isn't a problem with the code. I should have said the code hasn't been changed since 2008, and because of that, there are likely deprecated procedures used that have gone out of date but nothing is apparent on the dev console or as warnings/errors in my IDE. I really expected the blog to state as much as they did in the first link I posted with a workaround. Anyway, If I don't find the solution and post it soon, I'll post the specs you requested tomorrow when I get back to the office. – Darrel Holt Jun 03 '21 at 23:27
  • 1
    If it's strictly a CSS issue (which I still doubt) it's unlikely there'd be much in the way of warnings. I'd double-check the network request tab to make sure all requests are completing successfully, though, just to make sure. The network reqs and rendered HTML will help understand if the data is there-but-hidden or completely gone. If it's explicitly a browser version issue it can really only be related to the HTML, CSS, or JS, but within that realm--literally anything, including mice. – Dave Newton Jun 03 '21 at 23:32
  • Thanks, I looked at the network tab earlier today and didn't see any failures on either of our machines. Looking at the rendered HTML on the page and the source in the console is a pain. No more original render to compare it to, but In the console's source tab, I only see the table holding the labels shown above. Unfortunately, the guys that wrote the code back then weren't exactly neat so trying to compare the tile(s) being used to what's in the console hasn't gotten me much but I'll touch it again tomorrow morning because if this chrome update hits our users I'll be working the weekend – Darrel Holt Jun 03 '21 at 23:42
  • 1
    Use the "Elements" tab, e.g., inspect the page, not the page source, particularly if anything is coming in via XHR. If there's chunks of completely missing rendered HTML it's a JS/network-y issue. – Dave Newton Jun 03 '21 at 23:44
  • Nothing coming in via XHR at all... I wish my VM was working so I could test with a locked-down chrome v87 to compare. I mistakenly said the source tab. I use the elements tab to identify the code contained within the tile but I also put breakpoints in the source to step through the page being populated to identify the point in which the issue occurs and to break on the embedded JS. It sounds like a JS problem though as you said, which makes the most sense. about a year ago a chrome update deprecated a good deal of methods and I had to rewrite the validation for all textboxes within the app. – Darrel Holt Jun 03 '21 at 23:56
  • 1
    Well that's a lot more recent than 2008 :p Missing *rendered* HTML could be a lot of different things still--good luck! – Dave Newton Jun 03 '21 at 23:59
  • The app was written in 2006 with a bunch of modules added since then. The app was treated like "well, we need this functionality and we don't want to build a standalone app for that, so stick it in the old one." Most of the code I'm looking at was modified in 2008 but there are changes by people as recent as 2017. Beautiful, uncommented, hundreds of thousands of lines code. many classes with 30k+ lines. I love my life! thanks for the good luck Dave! – Darrel Holt Jun 04 '21 at 00:03
  • @DaveNewton I updated the OP with a solution. The issue was Chrome's update changing the way tables are handled. – Darrel Holt Jun 09 '21 at 15:51
  • Please use the "answer" section for answers rather than the question itself; you can then mark your own answer as accepted. Glad you found the root cause; seems like fixing the HTML markup and/or CSS is the way to go--seems like almost everything is more conformant than before, which is a good thing. – Dave Newton Jun 09 '21 at 16:00

1 Answers1

0

I have determined the problem to be the <table> tag. In the newest version (v91) of Chrome, the table rendering engine has been rewritten. the notes are here and if you want the in-depth documentation, here is the link to the Google Doc that the developers wrote. Basically, the old way of rendering tables has become obsolete and the <table> tag is now defunct.

Workaround: Disable the chrome flag named Enable TableNG and restart your browser.

Addition: I found chromestatus, a website that shows new features being added, deprecations, etc.

Darrel Holt
  • 870
  • 1
  • 15
  • 39