Closed Bug 1397874 (war-on-xbl) Opened 3 years ago Closed 1 year ago

[meta] De-XBL

Categories

(Core :: XBL, task, P5)

task

Tracking

()

RESOLVED FIXED

People

(Reporter: bgrins, Unassigned)

References

(Blocks 3 open bugs, )

Details

(Keywords: meta)

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.
Depends on: 1397876
Component: General → XBL
Product: Firefox → Core
Depends on: 1376546
Depends on: 1403231
Depends on: 1404420
Depends on: 1410540
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.
Depends on: 1411640
Depends on: 1411707
Depends on: 1412361
Depends on: 1412369
Depends on: 1414020
Depends on: 1414244
Depends on: 1414406
Summary: [meta] De-XBL Investigations → [meta] De-XBL
Depends on: 1416363
Depends on: 1416368
Depends on: 1416372
Depends on: 930845
Depends on: 1416483
Depends on: 1416493
Depends on: 1416524
Depends on: 1417042
Depends on: 1417119
Depends on: 1387700
Depends on: 1417708
Depends on: 1418459
Depends on: 1418494
Depends on: 1419005
Depends on: 1419091
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!
Depends on: 1419170
Depends on: 1419198
Depends on: 1419596
Depends on: 1419600
Depends on: 1419932
Depends on: 1419935
Depends on: 1420990
Depends on: 1421070
Depends on: 1421837
Depends on: 1422369
Depends on: 1422374
Depends on: 1422386
Depends on: 1422465
See Also: → 1422747
Depends on: 1422934
Depends on: 1425874
Depends on: 1426492
Depends on: 1426509
Depends on: 1427350
Depends on: 1427363
Depends on: 1427366
Alias: war-on-xbl
Depends on: 449045
Depends on: 1428555
Blocks: 662335
Depends on: 1428849
Depends on: 1428869
Depends on: 1428930
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: 1429630
Depends on: 1430374
No longer depends on: 1430374
Depends on: 1431246
Depends on: 1431255
No longer depends on: 1429331
Depends on: 1431522
Depends on: 1409672
No longer depends on: 1429630
Depends on: 1432636
Depends on: 1432950
Depends on: 1434401
Depends on: 1434860
Depends on: 1437230
Depends on: 1437247
Depends on: 1437512
Depends on: 1437638
Depends on: 1437641
Depends on: 1437956
Depends on: 1421737
Depends on: 1439679
Depends on: 1440146
Depends on: 1441935
Depends on: 1442006
Depends on: 1439773
Depends on: 1440391
Depends on: 1440392
Depends on: 1437873
Depends on: 1439761
Depends on: 1440383
Depends on: 1430777
Depends on: 1439778
Depends on: 1440393
Depends on: 1442507
Depends on: 1442582
Depends on: 1442651
Depends on: 1442695
Depends on: 1442058
No longer blocks: 1442795
Depends on: 1442795
Depends on: 1442961
Depends on: 1442826
Depends on: 1442827
Depends on: 1442334
No longer blocks: 1442800
Depends on: 1442800
Depends on: 1443948
Depends on: 1444285
Depends on: 1444489
Keywords: meta
Depends on: 1444891
Depends on: 1446009
Depends on: 1446157
Depends on: 1446163
Depends on: 1446168
Depends on: 1445096
Depends on: 1445099
Depends on: 1445100
Depends on: 1444760
Depends on: 1446247
Depends on: 1446335
Depends on: 1446414
Depends on: 1446961
Depends on: 1446830
Depends on: 1448123
Depends on: 1448126
Depends on: 1448565
Depends on: 1448807
Depends on: 1449979
Depends on: 1450017
Depends on: 1446101
Depends on: 1450619
Depends on: 1450812
Depends on: 1450813
Depends on: 1450816
Depends on: 1450819
Depends on: 1450823
Depends on: 1450654
Depends on: 1451256
Depends on: 1451387
Depends on: 1450657
Depends on: 1450721
Depends on: 1450617
Depends on: 1450705
Depends on: 1451400
Depends on: 1451406
Depends on: 1451408
Depends on: 1451410
Depends on: 1451709
Depends on: 1451691
Depends on: 1452624
Depends on: 1452626
Depends on: 1453281
Depends on: 1445912
Depends on: 1453666
Depends on: 1453958
Depends on: 1454357
Depends on: 1454363
Depends on: 1455359
Depends on: 1455392
Depends on: 1455433
Depends on: 1455596
Depends on: 1456530
Depends on: 1456611
Depends on: 1456625
Depends on: 1456703
Depends on: 1456682
Depends on: 1456833
Depends on: 1457216
Depends on: 1457218
Depends on: 1457719
Depends on: 1456093
Depends on: 1457907
Depends on: 1458375
Depends on: 1458584
Depends on: 1459245
Depends on: 1459556
Depends on: 1459908
Depends on: 1460334
Depends on: 1460977
Depends on: 1460982
Depends on: 1461388
Depends on: 1461742
Depends on: 1461793
Depends on: 1461798
Depends on: 1462552
Depends on: 1462798
Depends on: 1462806
Depends on: 1463225
Depends on: 1463320
Depends on: 1463820
Depends on: 1465457
Depends on: 1465592
Depends on: 1468557
Depends on: 1469902
Depends on: 1470242
Depends on: 1470661
Depends on: 1470830
Depends on: 1470880
Depends on: 1470910
Depends on: 1471403
Depends on: 1471542
Depends on: 1471667
Depends on: 1472554
Depends on: 1472555
Depends on: 1472557
Depends on: 1472558
Depends on: 1473130
Depends on: 1473311
Depends on: 1474069
Depends on: 1474258
Depends on: 1474340
Depends on: 1476611
Depends on: 1476639
Depends on: 1476659
Depends on: 1476769
Depends on: 1477458
Depends on: 1477954
Depends on: 1478139
Depends on: 1478372
Depends on: 1480195
Depends on: 1480465
Depends on: 1481882
Depends on: 1481949
Depends on: 1482188
Depends on: 1483274
Depends on: 1483657
Depends on: 1484326
Depends on: 1480121
Depends on: 1486455
Depends on: 1486480
Depends on: 1486671
Depends on: 1486674
Depends on: 1487313, 1488116
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: 1487312
Depends on: 1492326
Depends on: 1492967
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: 1495252
Depends on: 1495357
Depends on: 1495621
Depends on: 1495622
Depends on: 1495861
Depends on: 1496242
Depends on: 1496827
Depends on: 1497601
Depends on: 1497940
Depends on: 1428869
Depends on: 1498674
Depends on: 1498740
Depends on: 1499236
Depends on: 1499421
Depends on: 1499423
Depends on: 1499428
Depends on: 1499476
Depends on: 1499832
Depends on: 1499947
Depends on: 1500268
Depends on: 1500424
Depends on: 1500626
Depends on: 1241885
Depends on: 1502947
Depends on: 1503019
Depends on: 1503824
Depends on: 1503826
Depends on: 1503827
Depends on: 1505489
Depends on: 1505814
Depends on: 1506342
Depends on: 1505734
Depends on: 1507045
Depends on: 1470840
Depends on: 1507704
Depends on: 1507863
Depends on: 1507875
Depends on: 1507894
Depends on: 1507895
Depends on: 1508141
Depends on: 1508142
Depends on: 1508143
Depends on: 1508146
Depends on: 1508151
Depends on: 1508165
Depends on: 1508169
Depends on: 1508446
No longer depends on: 1505814
Depends on: 1509388
Depends on: 1509393
Depends on: 1512048
Depends on: 1512432
Depends on: 1512696
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: 1454360
Depends on: 1516448
Depends on: 1516876
Depends on: 1519486
Depends on: 1519533
Depends on: 1519917
Depends on: 1487065
Depends on: 1520924
Depends on: 1521280
No longer depends on: 1453666
Depends on: 1521306
Depends on: 1522279
Depends on: 1522290
Depends on: 1522312
Depends on: 1523429
Depends on: 1523997
Depends on: deforestation
Blocks: 1524590
Depends on: 1524782
Depends on: 1525101
Depends on: 1526622
Depends on: 1526824
Depends on: 1526826
Depends on: 1527105
Depends on: 1527115
Depends on: 1527116
Depends on: 1527495
Depends on: 1527680
Depends on: 1528268
Depends on: 1528419

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: 1535182
Depends on: 1538983
Depends on: 1539651
Depends on: 1539665
Depends on: 1543379
Depends on: 1544826
Depends on: 1544916
Depends on: 1510785
Depends on: 1555060
Depends on: 1555361
Depends on: 1555497
No longer depends on: 1524782
Type: enhancement → task
Depends on: 1558982
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?

Depends on: 1575485
Depends on: 1576363
Depends on: 1581588
Depends on: 1581591
Depends on: 1582227
No longer depends on: 1445096
No longer depends on: 1430028
No longer depends on: quantumbar-input
Blocks: 1583314
No longer blocks: 1513285
Depends on: 1585819
Depends on: 1587142
No longer depends on: 1587142

can be considered fixed now since we have no XBL bindings left? there's a bunch of open dependents still though, they need to retriage perhaps?

No longer depends on: 1575485
No longer depends on: 1526622
No longer depends on: 1558982
No longer depends on: 1493439
No longer depends on: 1476639
No longer depends on: 1476659
No longer depends on: 1428555
No longer depends on: 1486455
No longer depends on: 1543379
No longer depends on: 1576363
No longer blocks: 1524590
No longer blocks: 1520821
No longer blocks: 662335
See Also: 1422747
No longer depends on: 1437247
No longer depends on: 1508146
No longer depends on: 1446335
No longer depends on: 1471667
No longer depends on: 1495252
No longer depends on: 1456093
No longer depends on: 1448807

(In reply to alexander :surkov (:asurkov) from comment #11)

can be considered fixed now since we have no XBL bindings left? there's a bunch of open dependents still though, they need to retriage perhaps?

Yes, this has served its purpose. Let's close this one and move any follow up work into other bugs (like Bug 1566221 and Bug 1563415).

Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.