-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
feat: Add Air Traffic Control for automatic link routing to workspaces, b=no-bug, c=workspaces #9042
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
6a7066b
to
ff9e5de
Compare
…s, b=no-bug, c=workspaces
ff9e5de
to
b8ca114
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It all looks pretty awesome!
Only thing im requesting is; please move all the settings into dialogs on the top window as we are trying to move away from it.
So, for example, create a dialog to manage all the rules and once done just remove it from the DOM, that should be enough.
And please run npm run pretty
for format the project
Looks really cool, cant wait to use it myself!
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css) | ||
+ | ||
+ content/browser/preferences/zen-settings.js | ||
+ content/browser/preferences/zen-air-traffic-control.js |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we please have all these settings in the parent window as a dialog? Trying to avoid the preferences page as much as possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think a need a little bit more clarity. Where should I put the affordance that would open up the dialog? Do you have an example where you've already done this in Zen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@meenie unfortunately, I can't think of an example where we are currently doing this on zen.
But it would ideally just be the same XHTML contents but instead of being in the settings, it's opened via https://searchfox.org/mozilla-central/source/browser/base/content/browser.js#5250.
One example of this modal is when pressing CMD+Q on mac
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
153b5f8
to
4a1216d
Compare
BTW, @mauro-balades, there's a bug with the tests where I'm getting |
Should be just a warning, no? |
@meenie in that case, if you are going to make a PR for l10n packs, also add this one 🙏🏽 |
@meenie how is it going? Need help with anything? |
@mr-cheffy, sorry, work has been busy :). I'll try and finish this up to today. I see you pinged another person asking about adding the affordance to open up the ATC model in the context menu but haven't heard back yet. I'll go ahead and make the change as it's pretty easy to change again. |
Oh.. I misread the names 😅 Thanks a lot for such incredible amounts of patience and a great feature being introduced |
Just a quick question, are there any plans to implement synchronization (as with workspaces) in this PR? Or will it be done in another PR? |
In a separate pr imo would be better. Also, @meenie could we please call it 'Control Flow'? You know.. in order to not have the same names |
Nice, that this is coming as a native feature, I specifically developed an extension for this found here. Good work! |
@Propheticus, that is a very good question... I don't normally use Firefox so I wasn't aware of this. I will look into it! Sorry all for the delay. My regular work has been rather all-consuming. I plan on finishing this up this weekend! |
@meenie I just wanted to come check on this PR. How is it coming along locally? |
This page might be of interest to you. |
@Anoms12, if you asked me this question before all the realizations about this project I've had today, I would have said this evening I'd have it merged in lol. But now I need to go through and update some things and make sure I haven't broken anything. It's probably going to be a few more days. Also, once it's merged, I have no idea what the release process/schedule is for Zen. That's up to the maintainers. |
I was just reading that lol. |
@meenie okay sweet! Take your time though.might also wanna see what Mauro thinks. Plus, I use twilight so I'll get it the night of the day it gets merged. If I can provide any knowledge or resources please ping me. |
@meenie wanted to see how it's going :) |
@Anoms12, @meenie is doing this in he's spare time, please don't presume him |
@mr-cheffy oh I apologize. Thank you for being willing to tell me I am overstepping. |
Don't worry, I'm just saying it's better to get it right than to get it fast |
@mr-cheffy I get that. Do you know if we will be able to make changes to the UI to make it fit themes? As it is in a new window |
Not sure about that, sorry. But I think so yes |
This is an amazing feature, looking forward to be able to use it! Do you have plans to manage a default value? |
@sebazelonka They discussed this earlier- you can just create a catch-all rule |
Guys, is there anything missing from this PR that needs to be merged into the dev branch? Does anyone have any information on this? If I can help with anything, please let me know what's missing so it can be merged. By the way, @mr-cheffy , if you could put up a to-do list of the things that are still missing and have already been done, and what you think should be added to this specific feature because it might be different from what works in Arc since it's Chrome, I would be very grateful. This would greatly help people who want to contribute to see what's missing according to the to-do list and help develop this feature more quickly. |
Right now I'm full on folders, sorry. This pr is almost complete, last thing needed is the settings page to be converted into a settings popup |
@mr-cheffy I'll make a to do list for the PR in an hour or so. Just add it to the description when you have time |
Is there an estimated on when this will be merged? |
hey @meenie , whenever you get time, can you rebase/resolve conflicts so that this can be tested on Twilight? |
Anyone on this github can resolve the conflicts of this PR, it doesn't have to be meenie, he must be busy, it would just be a matter of taking and cloning the specific PR on the machine......if no one does it, I will do it when my new computer arrives, for now I can't. |
Signed-off-by: mr. m <[email protected]>
excited for this |
Is this still waiting on merge conflicts being resolved? I can see that after MiraiDevv's request, mr-cheffy resolved the conflicts. After that there wasn't an update on if there's anything else holding this from merge (apart from the more recent merge conflicts since dev has been updated)? |
Just need to finish the settings page, i've been focusing on getting firefox up to date and improving the omnibox actions lately, sorry. |
Air Traffic Control – Automatic External-Link Routing
I’ve been itching to move from Arc Browser to Zen for daily work, but I couldn’t live without Arc’s Air Traffic Control feature, so I decided to add it to Zen.
This is my very first contribution to the project, so please excuse any mistakes.
What’s inside ?
src/zen/modules/ZenAirTrafficControl.mjs
src/zen/modules/ZenAirTrafficControlIntegration.mjs
BrowserDOMWindow.openURI
, asks the engine, then opens/relocates the tab in the right workspace.browser/components/preferences/zen-air-traffic-control.{xhtml,js,css}
How it works
Users will create patterns (e.g.
*.github.com
,*/jira/*
) in the Preferences UI.ZenAirTrafficControl.routeURL()
returns{ workspaceId }
when a rule matches.The integration layer intercepts the external open, creates the tab, and moves it to the workspace – all in the same window, so no flash-of-new-window.
Screenshots
Main interface. I added it to the Tab Management section of Preferences

When importing, you can map routes from one workspace to another.

Missing Things
Localization (l10n)
Localized strings are not yet wired up; I'm actually not sure how that process works.
Documentation
I'll create a PR in https://github.com/zen-browser/docs if/when this PR is merged.