Convert "richlistbox" to Custom Element

RESOLVED FIXED in Firefox 66

Status

()

enhancement
P1
normal
RESOLVED FIXED
10 months ago
3 months ago

People

(Reporter: Paolo, Assigned: Paolo)

Tracking

(Depends on 1 bug, Blocks 1 bug)

Trunk
mozilla66
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox63 wontfix, firefox64 wontfix, firefox65 wontfix, firefox66 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

10 months ago
The following changes allow converting "richlistbox" to Custom Element easily:
- Removing the other "listbox" bindings in bug 1472555
- Removing the "scrollbox" anonymous element in bug 1472557
- Removing the implements="nsIDOMXULMultiSelectControlElement"
(Assignee)

Comment 1

10 months ago
Also, since there are a few inherited bindings, we probably have to convert the entire binding hierarchy at the same time.

Updated

6 months ago
See Also: → 1499708
See Also: → 1512432
(Assignee)

Updated

4 months ago
Depends on: 1516448
(Assignee)

Updated

4 months ago
Depends on: 1516876
(Assignee)

Updated

4 months ago
Assignee: nobody → paolo.mozmail
Status: NEW → ASSIGNED
Priority: P3 → P1
There are a handful of bindings that extend richlistbox for TB: https://searchfox.org/comm-central/search?q=%23richlistbox&case=false&regexp=false&path=.

When this changes to a Custom Element (currently waiting on a couple of other bugs to land, but this should happen fairly soon), you'll either need to:

1: extend `MozRichListBox` (which we could export onto MozElements if needed) to turn those instances into customized built-ins, then change callers to use [is="my-richlistbox-class"]. We do something similar with `customElements.define("printpreview-toolbar", class PrintPreviewToolbar extends MozXULElement { ... }, { extends: "toolbar" }` and then `document.createXULElement("toolbar", { is: "printpreview-toolbar" }`: https://searchfox.org/mozilla-central/rev/bcc0fe1081dc4f84fc5fdfebe0d2de8c075a4e2c/toolkit/components/printing/content/printPreviewToolbar.js#10.
2: "flatten" those bindings such that they only use the normal richlistbox and move their logic up into callers. This is what is being done in Bug 1516448 and Bug 1516876.
3: fork out the current richlistbox implementation and then do (1) or (2) later on.

The problem with (3) is that we will be registering the CE on the `richlistbox` tag name, so you'd also have to rewrite all richlistboxes using the forked XBL binding to use a new tag name instead.

(2) might be the easiest option for some of the simple ones like https://searchfox.org/comm-central/source/calendar/base/content/dialogs/calendar-invitations-list.xml#15 but others like https://searchfox.org/comm-central/source/calendar/base/content/dialogs/calendar-event-dialog-attendees.xml#15 look pretty complex - (1) might be a better option for those.
Flags: needinfo?(jorgk)
Flags: needinfo?(arshdkhn1)

Updated

4 months ago
Depends on: 1517040

Comment 5

4 months ago
Thanks, I filed bug 1517040. (Do you never rest? It's New Years Eve.)
Flags: needinfo?(jorgk)
Flags: needinfo?(arshdkhn1)

Comment 6

4 months ago
Any ETA for this? This week we're short-staffed.
(In reply to Jorg K (GMT+1) (urgent reviews and bustage fix only, Dec 22nd to Jan 1st) from comment #6)
> Any ETA for this? This week we're short-staffed.

We're waiting for the blockers to land, and I won't have a chance to review this patch until at least Wednesday. So earliest would likely be near the end of this week, else I'd expect sometime next week.

Comment 9

4 months ago
Pushed by paolo.mozmail@amadzone.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/ff84fa856102
Convert "richlistbox" to Custom Element. r=bgrins
(Assignee)

Comment 10

4 months ago
I'm a bit surprised by the notable tresize improvements...

Comment 11

4 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/ff84fa856102
Status: ASSIGNED → RESOLVED
Last Resolved: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Blocks: 1517981
You need to log in before you can comment on or make changes to this bug.