-
-
Notifications
You must be signed in to change notification settings - Fork 943
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-control.mjs (widgets/setting-control/setting-control.mjs) | ||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs) | ||
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! |
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.