-
Notifications
You must be signed in to change notification settings - Fork 20
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
Port to WebExtensions API (support Firefox Quantum, version 57) #45
Comments
Currently, Web Extension requires any extension injects code on website-based level (that's why it got its name) instead of accessing browser's files (including bookmarks folder in user's profile) directly. |
Unfortunately, yes. If the WebExtensions doesn't provide the capabilities that this add-on needs, then this add-on will not be supported by the November 2017 release of Firefox. However, it may live on in Firefox ESR and PaleMoon. |
https://developer.mozilla.org/Add-ons/WebExtensions/API/Bookmarks/ are have some APIs. The https://chrome.google.com/webstore/detail/supersorter/hjebfgojnlefhdgmomncgjglmdckngij looks work with Chrome Store Foxified. |
My plan is to port the main branch of this add-on to WebExtensions. I will do this as beta releases (so hopefully, I can get some beta testers to sign-up). Since PaleMoon doesn't plan to support WebExtensions, I will need to update the PM branch: I tried ChromeStoreFoxified on a different Chrome add-on and it didn't work, so WebExtensions is getting Firefox closer to Chrome, but it's not 100% yet. |
Yes, see http://arewewebextensionsyet.com/. |
I saw that site, thanks, it is useful to see the progress. |
Any progress? |
Yes, I started months ago, but got distracted. I'll try to get back to
it. However, I'm frankly disillusioned about porting because there are
existing chrome alternative that could work on Firefox with a little
tweaking. Therefore, I'm considering working with the author of a chrome
add-on to make their add-on also work on Firefox.
…On Sat, Aug 12, 2017 at 1:29 PM, Michael P. ***@***.***> wrote:
Any progress?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#45 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AE0RMVFcnVBOS5Id0UA-Q91LR6ewORFNks5sXgsxgaJpZM4MJYSA>
.
|
Hmmm, I can't find any good ones on Chrome Store. |
IMHO, I like sprucemarks: |
Thanks for supporting us this far. Two years of sorted bookmarks for me. I've cobbled together a replacement this weekend: Mostly for myself, I admit. It's definitely not at feature parity. It was quite the adventure diving into JavaScript. |
That's cool.
…On Tue, Aug 15, 2017 at 12:18 AM Jan Alexander Steffens < ***@***.***> wrote:
Thanks for supporting us this far. Two years of sorted bookmarks for me.
I've cobbled together a replacement this weekend:
https://addons.mozilla.org/en-US/firefox/addon/sort-bookmarks-webext/
Mostly for myself, I admit. It's definitely not at feature parity.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#45 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AE0RMdHNa7urajTQjiQvD2HFG4_7zwtEks5sYUZHgaJpZM4MJYSA>
.
|
I'll work on the port this weekend. I haven't given up on Mozilla/Firefox
yet. We need to have compition.
Anyone want to be a beta tester?
…On Tue, Aug 15, 2017 at 10:41 AM Michael P. ***@***.***> wrote:
heftig, is it possible to sort by last visited bookmark? This is what I
use this add-on for.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#45 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AE0RMW_73GJJ-H7fGFqkEbBw-O8o76Khks5sYdhDgaJpZM4MJYSA>
.
|
I can. BTW, I've some programming experiences but not in JavaScript unfortunately. |
Great, thanks. No coding experience needed. I just need someone to keep
me honest (make sure I didn't break anything) before I officially release
it.
I'll send you an email every time I publish a beta release. I think I'll
create a wiki page to track issues (with the beta; need to keep them
separated from issues for normal releases).
…On Tue, Aug 15, 2017 at 5:55 PM, Michael P. ***@***.***> wrote:
I can. BTW, I've some programming experiences but not in JavaScript
unfortunately.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
<#45 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AE0RMcrgXtveQIXLuONZBaFWofKyeHDrks5sYj4NgaJpZM4MJYSA>
.
|
@eric-bixby why not post a pre-release on GitHub so that people will decide if they will test. |
@EMLVIRUS: Yes, that's what I'm planning to do (use the pre-release feature), except I just need one person (more is even better) to provide me feedback (or reassurance) that at lease one person has tried it and their browser didn't crash. I definitely want it easy for anyone to try the pre-release. |
I changed my mind. I'll keep it completely open. I'll just post the pre-release and not wait for feedback. If @Taurean75 checks it out, then great. If he doesn't, then that's fine too. I'll just be sure to give people a chance to try it before doing a normal release. |
Okay, fine with me. |
I posted my first beta release: Enter "about:debugging" into location bar, then load the .xpi file. No sorting yet. This just shows the settings page. |
Nothing wrong here. |
Cool, thanks. |
I created a hybrid version for migrating prefs from the legacy API to web-ext. I got stuck trying to figure out how weh (web-extension-helper) stores the prefs. Looks like it's a list of name/value pairs that is saved in local-storage. I was trying to find a dev-tool to show me what the data looks like. Mozilla provides a dev-tool (previously called FireBug) for doing inspection. I'm just having problems getting it to work (I don't see the data). It may be that since the add-on is temporarily installed then the prefs don't actually get saved to storage. |
In that case, how about working on other parts first...? |
I'm no longer blocked, I was able to get my question answered on the web-ext-support mailing list: Anyway, I'll try to post another beta release this weekend. |
Any updates? |
I've been working on it. Once I have manual sorting working, then I'll post another beta release. I decided to skip doing a embedded/hybrid release and just focusing on porting. |
Due to a typo in my .eslintrc, I'm also upgrading from es5 to es6. I wasn't planning to but since there's some nice features in es6, I figured I may as well upgrade. |
great, when i will be ready? |
The goal is to be finished before the end of November. Ideally, I'll be able to release a couple beta releases before then. |
No beta release? |
I'm planning another beta release this weekend. The two remaining hurdles are:
For #2, since tags work differently in the chrome API, I think this will take more work, so I'm going to skip it for the 3.0 release and concentrate on the auto/manual sorting (#1). |
Still not sorting yet. I got the getChildren() call working. Except it's async, so still need to do some more work to get the flow right. It tries to sort, before the getChildren() finishes, thus there is nothing to sort. |
The getChildren function seems to return a promise. You have a couple options from there for reacting to it. Using the standard promise->then syntax, or using await. It's up to you on which one you prefer. Assuming you weren't using the promise syntax before, using A simple example: // Just using the id supplied in the example from MDN.
var bookmarkPromise = bookmarks.getChildren("unfiled_____");
bookmarkPromise.then(
function(children) {
// Simple name sort for example.
// Can use child.type to sort folders and stuff first.
children.sort(function(a, b) {
return a.title.localeCompare(b.title);
});
// Continue the rest of your code here...
// The children should be properly sorted.
},
function(err) {
console.error("Couldn't get children. Error: " + err);
}
); Keep in mind that anything inside the |
@defmonk0: I agree, thanks, I'll do that. I actually had added a call using the promise->next syntax, but was getting an error. In chrome, it appears that the id passed to getChildren() must be a string. Whereas, in MDN, id was an int/number. Anyway, I ran out of time debugging that issue. |
Ah. Yea. Small inaccuracies in documentation like that are the worst. Well, good luck. I and I'm sure many others are waiting patiently. Quantum may have released today, but none of the alternatives to this extension quite manage everything this was doing. I look forward to the day my bookmarks are once again alphabetized. Lol. |
You are right, Firefox 57/Quantum is now available. I thought I had one more week. I'll try to spend more time on it. |
I like this addon and will patiently wait 👍 |
Someone please try beta4: This version does sorting using default preferences (preferences not working yet). |
it seems it is working, hard to do anything special with it when there are not preferences |
Cool, thanks. Yes, I'm working on preferences now. Once that works, then I can release it. |
I've released version 3.0 to AMO. |
Thanks for the update; however, many sort criteria seems to be missing. Are you going to add "last visited" criteria soon? Without that, this extension is useless to me. |
@Taurean75 : Yes, if there is an API available for this. See issue #55 |
Hi. It looks like new extension ignores sorting "Other bookmarks" folder (where new bookmarks are being added bt defaut). |
Hi Eric, very interesting reading and much appreciated effort on your part and others. What's the state of play? Is there an alternative that does "last visited" and "most visited", or do you think you will get that feature back sometime? |
See issue #55 |
@EMLVIRUS: You might find this interesting based on your request to have this add-on support Chrome in issue #38.
Based on the following article, it appears the Mozilla wants to require add-ons use the WebExtensions API:
https://www.bleepingcomputer.com/news/software/the-future-of-firefox-add-ons/
FYI...information about WebExtensions:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions
The text was updated successfully, but these errors were encountered: