zombieFox / nightTab

A neutral new tab page accented with a chosen colour. Customise the layout, style, background and bookmarks with nightTab.
https://zombiefox.github.io/nightTab/
GNU General Public License v3.0
1.78k stars 254 forks source link

Adding Tabs Made Faster and Easier #305

Open Winrus-web opened 3 years ago

Winrus-web commented 3 years ago

What kind of feature request is this?

This is Totally new feature

Is your feature request related to a problem? Please describe.

Not a big problem but makes adding bookmarks hard job.

A clear and concise description of what the problem is.

I'm always frustrated when I want to add new bookmark, its very slow. Adding new bookmark is very complicated. I would like new bookmarks to have exact same style as all others. And only things that would change are 1.Title 2.Address 3.Group 4..Background. If 4 of them would be in one window, or maybe new window with name fast adding. It would be better. And This Feature will solve the 500 bookmark problem. Being able to add opened bookmarks, this will solve that issue.

Describe the solution you'd like

It appears when you click on the extension. It allows to add bookmarks faster, without opening new tab and typing address, title... And titles are taken from bookmark name, but you can edit them. 1JtGhGtGqK

A clear and concise description of what you want to happen.

Adding bookmarks from extension icon from extensions bar. Or if not maybe considering alternative.

Describe alternatives you've considered

I think its harder to do but it will do the work as alternative chrome_ZH3IWC6DE0

Additional context

Add any other context, links or screenshots about the feature request?

Sorry for constantly asking things, I think these will make everyone's life easier😜. So I hope to see this in nightTab)

metruzanca commented 3 years ago

This was quite confusing to read thru as you're calling bookmarks "tabs". But I think I understand, now.

Correct me if I'm wrong, you're basically asking:

I'd like to be able to visit example.com and do the following:

  1. right-click and have a menu option that allows me to add a bookmark to nighttab.
  2. click on the nighttab extension icon and have a menu to add a bookmark to nighttab

Generally, nighttab follows a strict "no special permissions required" policy. And these 2 features would require the contextMenus and activeTab permissions.

I do believe these could be added but would require the user to manually enable them. Assuming we can prompt the user from the nighttab's settings page and not some context menu. All this because we'd like to keep nighttab with no permissions at base as a start page should not have arbitrary access to activeTab (activeTab grants access to intercepting network requests and so in theory can intercept passwords & login tokens).

Just for this, generally feature requests like this are out of scope.

It would come down to @zombieFox if he likes the idea of an additional permissions prompt and if adding these prompts the user for accepting new permissions after the extension auto updates, that would immediately disqualify this feature request unfortunately.

That being said, a bookmarklet to add bookmarks to nighttab, might be possible as a compromise.

Winrus-web commented 3 years ago

Ah, sorry for that. I have edited it a bit to make it more understandable.

Before using NightTab I have used bunch of extensions. Best of them had this kind of option counting...

1.Speed Dial [FVD] 9ThLeCkucl https://chrome.google.com/webstore/detail/speed-dial-fvd-new-tab-pa/llaficoajjainaijghjlofdfmbjpebpa/related?hl=en

2.Workona Tab Manager https://chrome.google.com/webstore/detail/workona-tab-manager/ailcmbgekjpnablpdkmaaccecekgdhlh?hl=en chrome_LCJNWY5TTv

"no special permissions required" policy is a good thing truly, but that being the reason for denying this kind of features is kind of tough. This feature will make NightTab more user friendly. And even after that it will open many possibilities...

metruzanca commented 3 years ago

"no special permissions required" policy is a good thing truly, but that being the reason for denying this kind of features is kind of tough. This feature will make NightTab more user friendly. And even after that it will open many possibilities...

I agree, this is a great feature to have. But nighttab is meant to be a more minimalist extension and having a popup like this: image is quite off-putting for many as this gives almost complete control of your browser to an extension.

ZombieFox, has mentioned that when he's changed permissions in the past he's seem a sharp uptick in people uninstalling.

This is definitely something I would like to see in nighttab, but currently is out of scope. Theres some other things that have higher priority atm however, I will keep this on my radar to see if we can do anything about it in the future.

Winrus-web commented 3 years ago

Oh ok. Having privacy higher than anything is also good thing. Then I hope to see it in some way if possible in the future. Yeah and thanks for fast replies.👋🏻

zombieFox commented 3 years ago

Thanks @Winrus-web for providing more details. Thanks @metruzanca for providing feedback which sums how this project does not currently ask users for any permissions.

A lot of Chrome and Firefox users resonate with nightTab because it does not ask for any permissions. I have strong reasons to believe changing and introducing a request for new permissions would result in a strong backlash.

This could be investigated in the future but for now I would suggest a fork be made of the project with additional permissions for use in this case.

zombieFox commented 3 years ago

For context, Chrome does have an API (chrome.contextMenus) which would allow this, assuming the permissions are requested by the extension.

However, I'm not sure how to handle data after the context menu item is clicked. 🤷🏽

metruzanca commented 3 years ago

For context, Chrome does have an API (chrome.contextMenus) which would allow this, assuming the permissions are requested by the extension.

Heres the equivalent for firefox https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items

However, I'm not sure how to handle data after the context menu item is clicked. 🤷🏽

The first part is easy.

contextMenus.create((data) => {
  openAddBookmark(data.pageUrl)
})

function openAddBookmark(url) {
  const addWindow = window.open(`nighttab extension blob url goes here`)
  const addWindow.url = url
}

After creating the window we have window.url and from here its the complex/long part where we'd need nighttab's add bookmark menu to be able to run in a more simplified environment.

Or we could also add 'tabs' to the permissions and open a new tab and pass the url via omnibar and intercept it via nighttab. Might be easier, but is a different UX (Imo, maybe... a bit better?)

Unless we use permissions.request() to dynamically request permissions and include optional_permissions: [ 'contextMenus', /* and optionally:*/ 'tabs' ] in the manifest we'll run into the other popup when installing/updating and I've got no clue if this will add anything to the "are you sure you wanna install" popup. It may very well say something like "may include optional permission requests" 🤷

zombieFox commented 3 years ago

Unless we use permissions.request() to dynamically request permissions

Optional permissions might indeed be the answer. Both Chrome and Firefox seem to support it.

More to read up on! 📖

metruzanca commented 3 years ago

Optional permissions might indeed be the answer. Both Chrome and Firefox seem to support it.

Optional permissions does also open up a lot of doors. UX wise, we can have all the features that require optional permissions be disabled by default and when enabled the request() is fired.

Though I THINK this kind of feature requires us to implement some background worker as that's resposible for creating the contextMenu and for reacting to the user removing the permission via extension settings (the chrome/firefox settings menu, not nighttab's)

[...] users will be able to manage optional permissions from the Firefox Add-ons Manager. Extensions that use optional permissions should listen for browser.permissions.onAdded and browser.permissions.onRemoved API events to know when a user grants or revokes these permissions. Citation from developer.mozilla.org