Status

()

task
P5
normal
2 years ago
5 days ago

People

(Reporter: bgrins, Unassigned)

Tracking

(Depends on 29 bugs, Blocks 6 bugs, {meta})

Firefox Tracking Flags

(Not tracked)

Details

()

We have a few bugs in flight to investigate parts of XBL removal in the frontend. Some of this is incrementally landable, but others are meant only as a way to learn more about the work that'll need to be done.
Component: General → XBL
Product: Firefox → Core
Would it be worth looking into replacing XUL's tree code with a custom element class and shadow content?  I have a couple proof-of-concept pages with CSS grids, display: contents, and nested grids for the scrollable part of a tree where we could look into it at least...

On the one hand, being able to expose a common element for multi-column trees would probably be nice for HTML as well, and we could remove the C++ code - in addition to considering a redesign of the API.  

On the other hand, it could bloat memory usage considerably: XUL trees usually don't have a lot of descendant elements (we're not supposed to have recursive treechildren/treeitem elements in the XUL DOM), and my HTML5-based approach would.
FWIW, we do have some HTML based tree views (for devtools and such), so I'd assume we'd reuse one of those if possible.
Sure, absolutely.  I'm just asking if we can meet all the features of the XUL tree implementation in HTML/JS/CSS, at an acceptable cost.
Summary: [meta] De-XBL Investigations → [meta] De-XBL
Depends on: 1417042
Depends on: 1387700
Depends on: 1419005
I don't know what the timeline for de-xbl is, but with my Thunderbird hat on, I would very much appreciate if you could delay anything that fundamentally breaks XBL until Gecko 60. With this I mean anything that would stop Thunderbird from defining their own bindings, so basically the last bits of code before XBL is fully removed. Not asking to stop removing bindings or replacing things, just allow us to keep using our own throughout the 59 ESR cycle.
Removing the support for XBL is definitely post FF60. I don't know whether FF will remove some bindings before that.
(In reply to Olli Pettay [:smaug] from comment #5)
> Removing the support for XBL is definitely post FF60. I don't know whether
> FF will remove some bindings before that.

Agreed about the timeline. Some bindings, which are being tracked in this bug, are currently being removed. While we await Custom Element support these are mostly focused on bindings that aren't used in m-c or bindings that can be folded into their parent's implementation. In some cases those bindings will need to move to comm-central - as is the case with the xpfe autocomplete bindings, for example.
We're happy to move over some bindings to c-c to retain support, thanks for the quick answer! Looking forward to the changes you are making as well though, I'd love to get rid of XBL in Thunderbird/Lightning as well!
See Also: → 1422747
Depends on: 1427350
Depends on: 1427363
Alias: war-on-xbl
Depends on: 449045
Blocks: 662335
Depends on: 1428849
Depends on: 1428869
Depends on: 1428937
Depends on: 1428938
Depends on: 1429331
Depends on: 1429464
Depends on: 1429573
Depends on: 1429625
Depends on: 1429929
Depends on: 1429940
Depends on: 1430028
Depends on: 1430374
No longer depends on: 1430374
No longer depends on: 1429331
No longer depends on: 1429630
Depends on: 1434860
Depends on: 1437230
Depends on: 1437247
Depends on: 1437512
Depends on: 1437638
Depends on: 1437641
Depends on: 1439679
Depends on: 1442582
Depends on: 1442651
No longer blocks: 1442795
Depends on: 1442795
Depends on: 1442961
Keywords: meta
Depends on: 1444891
Depends on: 1446335
Depends on: 1446414
Depends on: 1448565
Depends on: 1448807
Depends on: 1450619
Depends on: 1450812
Depends on: 1450813
Depends on: 1450816
Depends on: 1450819
Depends on: 1450823
Depends on: 1451709
Depends on: 1452624
Depends on: 1452626
Depends on: 1453281
Depends on: 1445912
Depends on: 1453666
Depends on: 1454357
Depends on: 1454363
Depends on: 1455596
Depends on: 1456530
Depends on: 1456611
Depends on: 1457216
Depends on: 1457218
Depends on: 1457719
Depends on: 1456093
Depends on: 1457907
Depends on: 1459556
Depends on: 1459908
Depends on: 1462552
Depends on: 1463225
Depends on: 1465457
Depends on: 1470830
Depends on: 1470880
Depends on: 1471542
Depends on: 1472554
Depends on: 1472555
Depends on: 1472557
Depends on: 1472558
Depends on: 1473311
Depends on: 1474069
Depends on: 1474258
Depends on: 1476611
Depends on: 1476639
Depends on: 1476659
Depends on: 1477954
Depends on: 1478372
Depends on: 1480121
Depends on: 1486716
Depends on: 1488620
Depends on: 1489091
Depends on: 1491197
Depends on: 1491210
Depends on: quantumbar-view
Depends on: quantumbar-input
No longer depends on: 1428869
Depends on: 1492046
Depends on: 1493439
Depends on: 1493536
Depends on: 1492482
No longer depends on: 1492482
Depends on: 1493844
Depends on: 1473933
Depends on: 1494167
Depends on: 1494230
Depends on: 1494529
Depends on: 1494846
Depends on: 1491245
Depends on: 1495357
Depends on: 1495621
Depends on: 1495622
Depends on: 1428869
Depends on: 1499947
Depends on: 1241885
Depends on: 1503824
Depends on: 1503826
Depends on: 1503827
Depends on: 1506342
Depends on: 1470840
Depends on: 1507704
Depends on: 1507895
Depends on: 1508141
Depends on: 1508142
Depends on: 1508143
Depends on: 1508146
Depends on: 1508151
Depends on: 1508165
Depends on: 1508169
No longer depends on: 1505814
Depends on: 1509388
Depends on: 1509393
Blocks: 1513285
Depends on: 1513323
Depends on: 1513325
Depends on: 1513334
Depends on: 1513337
Depends on: 1513343
Depends on: 1514497
Depends on: 1514505
Depends on: 1515484
Depends on: 1515591
No longer depends on: 1480121
Depends on: 1515988
Depends on: 1516266
Depends on: 1520924
Depends on: 1521280
No longer depends on: 1453666
Depends on: 1521306
Depends on: 1522279
Depends on: 1522312
Depends on: 1523712
Blocks: 1524590
Depends on: 1524782
Depends on: 1525101
Depends on: 1527495

Hi, I'm working on de-xbl for Thunderbird. I'm converting some bindings that inherit from the popup/menupopup binding, but that requires converting menupopup to a custom element (in order to inherit from it). (See bug 1531296.)

I see some menu related de-xbl bugs are in the works, but didn't see menupopup specifically. Is the plan for menupopup to just do a 1-to-1 conversion? Or something else? (I've done a quick auto-conversion, just for testing purposes so far, and it seems pretty straightforward at first go.)

(In reply to Paul Morris [:pmorris] from comment #8)

Hi, I'm working on de-xbl for Thunderbird. I'm converting some bindings that inherit from the popup/menupopup binding, but that requires converting menupopup to a custom element (in order to inherit from it). (See bug 1531296.)

I see some menu related de-xbl bugs are in the works, but didn't see menupopup specifically. Is the plan for menupopup to just do a 1-to-1 conversion? Or something else? (I've done a quick auto-conversion, just for testing purposes so far, and it seems pretty straightforward at first go.)

There isn't a bug on file yet just for menupopup. Bug 1525101 is on file to do some inherited bindings (like https://bgrins.github.io/xbl-analysis/tree/#autocomplete-rich-result-popup), but it turns out that those don't actually need to extend the "popup" binding, so we aren't implementing the MozPopup class for that one.

I think it could make sense to have a separate bug that does just menupopup alone (https://github.com/bgrins/xbl-analysis/blob/gh-pages/elements/generated/Popup.js), although we may have to do the places popups at the same time (so they don't get both CE and XBL attached). Let's move the discussion to Bug 1531296 and figure out what makes sense.

Depends on: 1531870
Depends on: 1534331
Depends on: 1543379
Depends on: 1544916
Depends on: 1546046
Depends on: 1555060
Depends on: 1555497
No longer depends on: 1524782
Type: enhancement → task
No longer depends on: 1513334
No longer depends on: 1513323
No longer depends on: 1515988
No longer depends on: 1509393
Depends on: 1564969

Hello, i was browsing the code repo and noticed that there are a lot of tests that declare bindings https://dxr.mozilla.org/mozilla-central/search?q=%3Cbindings+-path%3A*.rs+-path%3A*.cpp&redirect=false
Is there a bug to deal with that, now that you are almost done with regular bindings?

Blocks: 1566221
You need to log in before you can comment on or make changes to this bug.