New issue
Advanced search Search tips

Issue 888128 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Highcharts.js line labels disappear with Array#flat enabled

Reported by sanifmar...@gmail.com, Sep 21

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

Steps to reproduce the problem:
1. open web application.
2. Loads all the other charts.
3. Few component of highchart does not get loaded with new chrome update

Chrome versionVersion 69.0.3497.100 (Official Build) (64-bit)

What is the expected behavior?
It should plot label bars in highcharts. Check screenshot InternetExplorer.png

What went wrong?
It doe snot plot label bars in highcharts. Check screenshot Chrome.png
Error on chrome: https://www.highcharts.com/errors/15

Did this work before? N/A 

Chrome version: 69.0.3497.100   Channel: stable
OS Version: 10.0
Flash Version:
 
InternetExplorer.PNG
41.7 KB View Download
Chrome.PNG
42.6 KB View Download
Could not edit question Did this work before? Yes it worked before
Labels: Needs-Bisect Needs-Triage-M69
Cc: viswa.karala@chromium.org
 Issue 888126  has been merged into this issue.
 Issue 888127  has been merged into this issue.
Cc: vamshi.kommuri@chromium.org
Labels: Triaged-ET Needs-Feedback
Thanks for filing the issue!

Tried checking the issue on reported chrome version 69.0.3497.100 using Windows 10 with the below mentioned steps.
1. Launched Chrome
2. Navigated to https://moblize.com/
We couldn't find any option to view any charts, neither any option to login. Attaching the screen shot of the same.

@Reporter: Could you please help us in navigating to the charts in that web application, which helps us to triage the issue further in a better way. Any further inputs from your may be helpful.
888128.png
628 KB View Download
I did some debugging. Found out tag <tspan> is not supported by chrome.
css class: highchart-plot-line-label. Please find attached element inspected from internet explorer. Can you please help ?
inspectElement.PNG
7.3 KB View Download
Project Member

Comment 7 by sheriffbot@chromium.org, Sep 24

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
for more information, I created a ticket with highchart contains jsfiddle. 

https://forum.highcharts.com/post143040.html?sid=5d4c697430c1cdc1fb6d78ed0d0fd04e#p143040

Can you please check that, if something which can be done from browser end
Cc: tkent@chromium.org
Need bisect for https://jsfiddle.net/d76a98u1/1/ .


Components: -Blink Blink>JavaScript
Labels: -Type-Bug -Pri-2 -Needs-Bisect hasbisect-per-revision ReleaseBlock-Stable M-69 Target-70 Target-71 RegressedIn-69 FoundIn-71 FoundIn-70 Target-69 FoundIn-69 OS-Linux OS-Mac Pri-1 Type-Bug-Regression
Owner: jgruber@chromium.org
Status: Assigned (was: Unconfirmed)
Tried checking the issue using the test file provided in comment#9.
Able to reproduce the issue on reported chrome version 69.0.3497.100 and on the latest canary 71.0.3560.0 using Windows 10, Mac 10.13.1 and Ubuntu 14.04

Bisect Information:
-------------------
Good Build: 69.0.3444.0
Bad Build:  69.0.3445.0

You are probably looking for a change made after 562549 (known good), but no later than 562550 (first known bad).
CHANGELOG URL:  https://chromium.googlesource.com/chromium/src/+log/6637a1327eac794d559183cebc88607b83d5b351..e20de6df0d1ca85e4c5d20ab77d8f88b7882c41c
https://chromium.googlesource.com/v8/v8/+log/66c64a74..8030067c
Suspecting: https://chromium.googlesource.com/v8/v8/+/757631830d253269ffb90dd10ce9f75265a2cdbc
Review URL: https://chromium-review.googlesource.com/1075047

@jgruber: Please help in assigning it to the right owner, if this is not related to your change. Adding RB-Stable as this seems to be a recent regression.

Thanks!
Cc: -tkent@chromium.org
Cc: mathias@chromium.org gsat...@chromium.org
Owner: yangguo@chromium.org
Hmmm Not sure that this is related to Jakobs Change.

Assigning it to Yang for now to check if it is related to Jakobs Change.

In addition, maybe this is related to flatten, Satya and Mathias?
Cc: hablich@chromium.org
Labels: M-71 M-70
Per https://github.com/highcharts/highcharts/blob/a6141614d19bda0db8ef749c636596fc65319619/changelog/highcharts/6.1.1.md, Highcharts.js used to have a bug where plot line labels stopped working in browsers that support Array#flat:

> Fixed #8477, plot line labels didn't work in browsers that support Array.prototype.flat.

https://github.com/highcharts/highcharts/issues/8477
So yeah, this is very likely due to us shipping Array#flat. :(
Cc: rbyers@chromium.org
Cc: adamk@chromium.org foolip@chromium.org
+foolip, +adamk

Thanks for looking into this Mathias.  It'd be great to verify this locally as well.

Do you know how many versions of this library are now broken? I'm trying to understand if this is only in new/recent apps or if legacy apps (which might not get updated) are broken too.
Owner: mathias@chromium.org
I came to the same conclusion reading the suspect commit range in V8. Array.prototype.flat causes observable changes to JS behavior. Jakob's change should not.
Without Array#flat, the text on the green box renders:

    chrome --js-flags='--no-harmony-array-flat' https://jsfiddle.net/d76a98u1/1/

With Array#flat, it doesn’t.
Summary: Highcharts.js line labels disappear with Array#flat enabled (was: Highcharts doenot load certain bar charts on new chrome update)
will google compensate for introducing bugs with new release as that change broke many of my live analytic charts?. thanks for taking up the issue with priority
Looks like in the code, `path` is an array and `path.flat` is assigned to a boolean. That much is fine, because that will put a property on the instance that shadows Array.prototype.flat. Where it goes wrong is must be in "the plot band/line label" where `&& !path.flat` is part of a condition, and that presumably happens before path.flat is first assigned, causing the other branch to be taken if Array.prototype.flat exists.

This sort of breakage is always theoretically possible when adding any attribute/method to any interface on the web platform, and ultimately we don't have the tools to predict with perfect fidelity which names will work without trying to ship them.

Here, I think a reasonable next step would be to do a search in httparchive to estimate how widespread affected versions of this library are.

(See also https://developers.google.com/web/updates/2018/03/smooshgate for another way to break things, which led to the `flat` name.)
Thanks for the analysis. It seems there is already a fix in highline and AFAIK there is also a workaround snippet which an affected site can deploy locally. In addition Array#flat is also shipping in Firefox 62 already. In Opera too.

I think the name Array#flat was also chosen because it didn't conflict with a lot of existing code.

==>

I don't think this is a release blocker.
Thanks for the analysis, foolip. That is encouraging indeed, especially considering that the Highcharts bug only seems to affect line labels (which I imagine not all visualizations use).

hablich@, Adam, Sathya, and I had the same intuition. Let’s keep a close eye on what happens next though…
Note that users wishing to work around this from the client side can go to chrome://flags/#disable-javascript-harmony-shipping and select "Disabled".
Labels: -M-69
Based on offline chat yesterday, untagging the bug with M69 stable blocker and any fix should get merged to M70 and M71. 
[bulk edit] - This issue is marked as a stable blocker for M70. We are two weeks away from M70 Stable. Please take a look urgently!
Labels: -ReleaseBlock-Stable
removing RBS per #28/29

Sign in to add a comment