Open Bug 1322442 Opened 5 years ago Updated 4 months ago

Convert ChatZilla to a WebExtension

Categories

(Other Applications :: ChatZilla, defect)

defect
Not set
normal

Tracking

(Not tracked)

People

(Reporter: botond, Assigned: rginda)

References

(Depends on 3 open bugs)

Details

Attachments

(4 files, 3 obsolete files)

In order to continue working in Firefox 57 and beyond [1], ChatZilla would need to be converted to a WebExtension.

Is it possible to do this?

[1] https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/
It will need a few APIs that aren't implemented yet. In particular, sockets, and we'll need to think about our UI story. WebExtensions don't allow showing arbitrary XUL UI as a new window (and I think it's unlikely that functionality would be added, because it would break the security sandbox). We could show HTML UI in a tab, I expect, though that wouldn't be privileged in and of itself, so we would need to make it communicate with the privileged socket code, etc. It's a significant project.
Attached file chatzillaframe.html (obsolete) —
A simplified framestuff for chatzilla in html. (not complete, just a draft)

Here I'm using css-grid which one requires firefox 52+ or enable the grid in the about:config.

The spltters are grabbable, css-grid works pretty well, you can't oversize the elements :)

For the future usage I would suggest using channel-tree instead of tabbing, because tabs looks ugly in small screens, but using tabs is easily possible with css-flex.

The channel-tree on mobile can be a modal popup and always visible on big screens.

What is the concept with the right clicking methods? Convert them to simple click method?
Attached file chatzillaframe.html (obsolete) —
I just added a switch panel option, and a sort bugfix based on Bug 1316029
Attachment #8844397 - Attachment is obsolete: true
Attached file chatzillaframe.html (obsolete) —
Just added grippy in to the splitter
Attachment #8844680 - Attachment is obsolete: true
Attached file chatzillaframe.html
I just figured, we don't need DOM manipulation for reordering the op-s in the userlist, we can do that easy via css only with order levels. So I deleted some javascript.

And I added <details><summary> objects to the channel tree.

Now looks pretty inside the new possibilities :)

The stuff is ready to thing ahead :)
Attachment #8845456 - Attachment is obsolete: true
The RESPONSIVE chatzilla :)

Some basic responsiveness added for the frame and I attached a content also to the views-iframe(s)
Depends on: libdweb-udp
Version: unspecified → Trunk
Attached file cZ.woff
A basic menu symbols: a triangle, a cicrcle and a check-mark.

We just noticed using these unicode symbols with different fonts and on different platforms everything is different, so this variability was annoyed, so sorted that out with an own font named cZ.woff :) Now everywhere same as same :)

We can improve this font-collection in the future :)
Attached file chatzillamenu.html
This is a basic implementation of a new possible menu-system. I just noticed <menuitem> is useless, thats too "experimental technology" because does nothing :(

So I sorted out this problem with this study.

This is basically a <ul><li><a> based menu tree. I used the current menumanager for ideas, how to make it similar than the xul stuff does now.

I implemented 1 recursive function for the menu blocks.

Also implemented checkbox, radio and command type menuitems, and of course a popup menu and mainmenu type. these are using cZ.woff font for the symbols.

I optimised out some stuffs from the menumanager-label system. Perhaps we can't define in the label the type of the menuitem, that got an own object-property named type.

so the formal syntax changed from:

menuSpecs[">popup:my-name"] = {}

to:

menuSpecs["my-name"] = {type: "popup"}

I was thinking of responsiveness as well, whilst there is no "hover" event on touchscreens and not enough space as well for showing the submenus next to each.

Some thing is missing: the context menus, coz there is no right-click method on touchscreens. We need think this behavior as well.

This stuff is now ready for discuss and think ahead.
Depends on: 785723
FWIW, I just switched from Nightly to Release because ChatZilla was broken by the latest Nightly update.
Depends on: 1246236
For bug 1246236 comment 87, I think they are all replaceable with IndexedDB. Write a built-in manager for managing and modifying them.
No longer depends on: 785723, 1246236
Depends on: 785723, 1246236
However I sugested to use css-grid instead of table at the messages because of responviveness, but now

display: contents;

introduced in the spec and mozilla. This one should disable the table like behavior on table, tbody and tr, so we currently make responsive "lines" without grid on small screens e.g. mobilephone.

Sample:

table, td {
  display: block;
}
tbody, tr {
  display: contents;
}

this rule sets the messages as "vertical" on mobilephones.

worths to think forward.

the new webextension - of course - still should work with grid, as I did set up a in the testcase.
I use Chatzilla nearly weekly and would very much appreciate this.

You might be interested to know that InspIRCd 3+ and UnrealIRCd 4.0.10+ have support for WebSockets. This would probably be useful for you if you can't do normal sockets as a WebExtension.

Is there any progress being made on this? Can someone give me any insite? (E.g. "if we had $30,000, it would be done in four months")

Is anyone working on this? Or any other IRC alternative? It looks like the asignee is a disabled account.

Flags: needinfo?(botond)

I'm not aware of anyone working on this. It's worth noting that some of the APIs it would need, such as bug 1247628, remain to be implemented.

I myself have moved on to use Konversation as my IRC client since filing this bug. (And more recently, the Mozilla project has switched from IRC to Matrix as the messaging platform for its developers and community.)

Flags: needinfo?(botond)

Thanks for the quick turnaround. Sorry if requesting info was inappropriate.

Anyone that wants to implement ChatZilla as a web extension is welcome of course, but https://github.com/Ascrod/ambassador exists as a maintained fork of ChatZilla that works outside of the browser.

I assume this is now surpassed by bug 1707459, right?

See Also: → 1707459

I assume this is now surpassed by bug 1707459, right?

Only for SeaMonkey. ChatZilla can not be used in Firefox right now and I doubt it will be integrated there so would need to become a WebExtension.

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