(In reply to :Gijs (he/him) from comment #0) > [good times elided :-] > 2. in practice that code depends on ASRouter [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#11-13) and [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#550) and on Messaging System code [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#19) and [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#547-556). > 3. but ASRouter lives in `browser/` so is "obviously" not available on android I'm not sure what the intent of the apparently sarcastic "obviously" is in this sentence. Can you clarify? > [options include] > > 2. unship these bits of Nimbus on Android if we're relying solely on the rust component there (but somehow make sure they're in sync about what list of features/experiments/whatever are available, and that the jexl parser behaves the same etc.). The JEXL parsers do not behave the same, and in at least one relatively ugly way: [operator precedence is broken in a way that's different from most (all?) other C-style languages](https://github.com/TomFrost/Jexl/issues/91). Barret and I were just talking about this the other day. It's likely been true for the whole time we've been using two parsers. The simple fix is easy. Unfortunately, it'll take more work to guarantee that we're not breaking any of our existing targeting uses (messaging system in-tree and remote, in live experiments & rollouts, and in experimenter code that generates targeting, users of FilterExpressions, maybe some things I haven't thought of). As far as we're aware, we haven't yet been bitten by this, so Barret and I were speculating that it was likely more trouble to fix than it was worth, even though it is a footgun. > 3. move the `jexl/targetingcontext` bits out of `messaging-system` such that they are available everywhere `toolkit/components/nimbus` is. If we do this, maybe they want to go near FilterExpressions.sys.mjs (which currently lives in `toolkit/components/utils`).
Bug 1898012 Comment 3 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
(In reply to :Gijs (he/him) from comment #0) > [good times elided :-] > 2. in practice that code depends on ASRouter [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#11-13) and [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#550) and on Messaging System code [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#19) and [here](https://searchfox.org/mozilla-central/rev/c84d3db8d7d6503b1208a0378db640095e106355/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs#547-556). > 3. but ASRouter lives in `browser/` so is "obviously" not available on android I'm not sure what the intent of the apparently sarcastic "obviously" is in this sentence. Can you clarify? > [options include] > > 2. unship these bits of Nimbus on Android if we're relying solely on the rust component there (but somehow make sure they're in sync about what list of features/experiments/whatever are available, and that the jexl parser behaves the same etc.). The JEXL parsers do not behave the same, and in at least one relatively ugly way: [operator precedence is broken in a way that's different from most (all?) other C-style languages](https://github.com/TomFrost/Jexl/issues/91). Barret and I were just talking about this the other day. It's likely been true for the whole time we've been using two parsers. The simple fix is easy. Unfortunately, it'll take more work to guarantee that we're not breaking any of our existing targeting uses (messaging system in-tree and remote, in live experiments & rollouts, and in experimenter code that generates targeting, users of FilterExpressions, maybe some things I haven't thought of). As far as we're aware, we haven't yet been bitten by this, so Barret and I were speculating that it was perhaps more trouble to fix than it was worth, even though it is a footgun. > 3. move the `jexl/targetingcontext` bits out of `messaging-system` such that they are available everywhere `toolkit/components/nimbus` is. If we do this, maybe they want to go near FilterExpressions.sys.mjs (which currently lives in `toolkit/components/utils`).