Confusing wording / behavior for one of chrome's flags
Reported by
get...@gmail.com,
Feb 28 2018
|
|||||
Issue descriptionChrome Version : 64.0.3282.186 URLs (if applicable) : chrome://flags Other browsers tested: n/a What steps will reproduce the problem? (1) See attached screenshot (2) If you disable this feature, modern JS features (like async generators) are disabled (3) If you enable this feature, modern JS features are re-enabled. What is the expected result? The way I, and many others (see this tweet thread: https://twitter.com/ChromiumDev/status/967810019285721088), read this flag title, and its description, is the exact opposite of how it appears to behave. There's one of two options to explain this: 1. The wording is backwards 2. The flag is being used backwards in Chrome I'm not sure what the intent of the feature is, so I can't say which is true. The wording suggests that "newest bleeding-edge (aka non-stable) features" sometimes cause problems for websites, and so in those cases, those newest features need to be disabled, in favor of the most recent "latest stable features" that don't cause problems for those sites. Interpreting it that way, the "enabling" of this feature should be "disabling" those bleeding edge features and just leaving "latest stable features". However, the feature works backwards. Disabling this feature disables the latest bleeding edge features, while enabling this feature enables them. In other words, it seems to be interpreted by Chrome as "Enable" and "Disable" not applying to the feature described, but to its side-effect. So which is the correct interpretation? Can either the behavior be flipped, or the wording be flipped?
,
Mar 5 2018
,
Mar 6 2018
Able to reproduce this issue on reported version 64.0.3282.186 and latest canary 67.0.3362.0 using Mac 10.13.3, Ubuntu 14.04 and Windows 10. This issue is seen from M-60. Hence considering this issue as Non-Regression and marking as Untriaged. Could someone from Blink>Javascript team please have a look at this issue. Thanks!
,
Mar 8 2018
This is indeed confusing. Adam, could we reword the whole thing e.g. to Title: "Recently shipped JavaScript features" Link: #recently-shipped-javascript-features Description: Some web pages use legacy or non-standard JavaScript extensions that may conflict with the latest JavaScript features. This flag allows disabling support of those features for compatibility with such pages Values: Enabled/Disabled Default: Enabled
,
Mar 8 2018
hablich, I'm not sure that's any clearer than what we have now. IMHO the confusion here is due to the desire to avoid a double-negative. That is, I think getify's request is that we change it to say: "Disable latest JavaScript features" and have the default setting be "Disabled". Which I don't think is any clearer. The way I'd recommend reading this is: "Latest stable JavaScript features" are "Enabled"/"Disabled" [depending on the setting]. Which seems clear to me... If the problem is just the descriptive wording, maybe the thing to change is the word "disabling". So the second sentence could read, instead: "This flag controls support for those features, and can be disabled for compatibility with such pages." getify, what do you think?
,
Mar 8 2018
So I think the there's two problems... one is the double negative, and one is which features "those features" refers to. My initial confusion was at least in part because the question is whether this flag, when enabled, is disabling the COMPAT STABLE features or is it disabling the NEW LATEST CUTTING EDGE features? So when you say "those features, and can be disabled..." my first question is, which features specifically are being disabled? And my second question then is, how do I disable them (if I want to) -- do I enable this feature to disable them, or does disabling this feature disable them? Does that confusion make sense? Two possible options: 1. "Latest Cutting Edge Features" This flag enables the LATEST CUTTING EDGE features in JS. It should normally be left ENABLED. However, some pages are not compatible with those features, so this flag can be DISABLED to preserve compatibility for those pages. 2. "Latest Stable Features" This flag overrides the LATEST CUTTING EDGE features with older compatibility versions of those features. It should normally be left DISABLED. However, some pages need this flag to be ENABLED so that those STABLE features are preserved.
,
Mar 8 2018
"latest cutting edge" sounds pretty "sharp" to me. How do you feel about hablich's suggestion in comment 4?
,
Mar 8 2018
"RECENTLY SHIPPED" is a fine replacement for "LATEST CUTTING EDGE"... as long as we're clear if the features being affected (enabled or disabled) by the flag are "LATEST CUTTING EDGE" / "RECENTLY SHIPPED" or "LATEST THAT ARE STILL STABLE" / "RECENT STABLE", or whatever. But whatever the features are labeled, we still have the double-negative problem on the action/effect of this flag. Are we? * ENABLING the DISABLING of ___ * ENABLING ___ * DISABLING ___ * DISABLING the ENABLING of ___ ====== The question should be, what if this flag was removed entirely (not just disabled), what would be the status quo? If the status quo would be that all latest shipped/cutting-edge features are enabled, then this flag is overriding those features. As such, the semantic is that "DISABLED" should be the same as FLAG-DOESN'T-EXIST, and "ENABLED" is the exception state. Secondly, is "overriding" here meaning to DISABLE/REMOVE recent shipped features, or is it to define older stable versions of those features?
,
Mar 8 2018
As I said above, it's easy to read the current language without any double negatives: ENABLING Latest stable JavaScript features that's the default. I think what you may be missing is that each of these chrome://flags has a default value. For some, it's enabled, for some, it's disabled. So it's talking about the default that's important, not what would happen "if the flag didn't exist". As I re-review what we have, it seems there's no default value specified for this flag. That seems a reasonable bug to fix. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by krajshree@chromium.org
, Mar 1 2018