Skip to content
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

Substitution list just shows 'Loading...' #223

Closed
Merseybuoy opened this issue Sep 16, 2017 · 13 comments
Closed

Substitution list just shows 'Loading...' #223

Merseybuoy opened this issue Sep 16, 2017 · 13 comments
Labels

Comments

@Merseybuoy
Copy link

Merseybuoy commented Sep 16, 2017

Version 1.1.3 has been working fine for a few days. Now, when I open the options page, the page loads but all I get is an empty window where my lists should be, and a 'Loading...' message in the middle. Auto-replace isn't working but manual replacement is.
Tried uninstalling (including settings), reinstalling, installing version 1.0 (which works), deleting storage.js and reinstalling.
Using Firefox 56.0b12. Tried dropping back to b10, no change.
I can make the lists visible by importing list.json but it disappears again if I refresh the page.

EDIT: Just found that turning off multiprocess caused this. I'd turned it off because it broke another extension.

@Woundorf
Copy link
Owner

OK, thank you for the report and adding the cause later. I don't know why it doesn't work without multiprocess, but I'll try to find it if I have time.

@Woundorf Woundorf added the bug label Sep 16, 2017
@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

I get the same bug but don't know what Merseybuoy means by turning off multiprocess. Does he mean he set affinity of FireFox to a single core? Anyhow, I did no such thing.

Where is the most recent json file stored so that I can load it manually? Or am I going to have to rely on an old json manual backup?

I tried importing this one:
C:\Users\sqgl\AppData\Roaming\Mozilla\Firefox\Profiles\hig0nn8o.default\browser-extension-data\storage.js
But get

TypeError: json.groups is undefined

At first I noticed that FR was not working even though FR options were open in the tab. Manual sub failed too. Restarted FF and then options are in permanent "loading" state.

FF 57.0.1 (64bit), Win7, FR 2.1.0

@Merseybuoy
Copy link
Author

@sqgl2. Firefox multiprocess can be enabled or disabled from About:Config. Loads of info on Google. However, I've long since moved on to version 2.1 of FoxReplace and Firefox 58beta and it's all working fine (with multiprocess enabled). As far as I can remember, I haven't had this 'loading' problem with the latest FoxReplace.

@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

Thanks, but it turned out to be a different problem at my end. It was caused by some script I had running wrote crap within my substitution list while I was editing it.

Upon comparison with an old saved FR json file I noticed the above JS file is just one long line but is very similar except for additional header and tail stuff in the JS file. I then used a free editor called Notepad++ with a plugin called NPPJSONViewer.dll and removed the superfluous header and tail of the JS file. Formating is done automatically and is close enough to how FR saves stuff. Renamed it with a JSON extension and it worked.

I use Unicode characters in my substitutions but if I had plain ASCII I could have avoided installing Notepad++ and just used https://jsoneditoronline.org/

Oh and I had to remove the unintentionally added crap mentioned in the first paragraph.

@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

Woundorf I can give you the file which wouldn't load in FR if you like. I shouldn't have been allowed to save it in FR if it wasn't able to load it later. Surely this is a bug.

@Woundorf
Copy link
Owner

@sqgl2 That file you mention, storage.js, is created by Firefox (not FoxReplace) to store the extension's internal data, which includes the list and all the other settings. You can find equivalent files for all your installed extensions. Thus, it's not a bug nor a feature, it's just Mozilla's implementation.

@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

Nevertheless the question remains: why am I allowed to save a file which is so corrupt it breaks FR upon a FF restart? Couldn't the check be done during the save and not just during the load?

@Woundorf
Copy link
Owner

I have tried importing a broken JSON file and even other file types and it gives an error and doesn't modify the list. Thus I don't know how you could save it.

@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

Yes I got errors too upon importing it (after extracting it from FF's internal data JS file). But I am talking about a "load" not an "import", ie what happens when FF is restarted.

@Woundorf
Copy link
Owner

Yes, but if I understood correctly you mean load after saving corrupt data, and I suppose you mean saving it using FoxReplace's interface, not modifying the storage.js file on your own. And to save data the only way is with the Save button in the options page and that saves the data that is currently entered in that page. Thus you have had to enter the corrupt data somehow, and the only possibilities are manually creating substitutions or importing them from a file or url. From the provided editor it should be impossible to create corrupt data (if there is a way then it's a very serious bug), and when importing there are checks.

@sqgl2
Copy link

sqgl2 commented Jan 23, 2018

You understand correctly. I manually created bad substitutions by not only leaving out a closing parenthetical in a regex (which FR allows us to save) but by having the following entered accidentally by an automated script (AutoHotKey) I had running in the background. I didn't notice and hit SAVE.

send {sleep 11}
WinActivate, sqgl@netpd
send {sleep 11}
send date{enter}
send {sleep 11}
send transcoder_64 status{enter}
send {sleep 11}
send transcoder_64 restart{enter}
send {sleep 11}
run D:\AUDIO\Foobar_64\foobar2000.exe /play

From the provided editor it should be impossible to create corrupt data (if there is a way then it's a very serious bug)

Well it happened but would be difficult to replicate. So difficult it might be worth ignoring it for now, thanks for your response though. If it happens to anybody else they at least now have my tips for resurrecting and editing their last save.

@Woundorf
Copy link
Owner

Well, the unclosed parenthesis is really problematic because you can create it in the editor. I see you already reported it in #236 but I didn't know that it could cause this problem. I will fix it as soon as possible.

Woundorf added a commit that referenced this issue Feb 28, 2018
…ssions.

After finishing to edit a substitution a validation is performed and any kind of syntax error is reported and the dialog can't be accepted until all errors are fixed.

This fixes #236 and possibly also #223.
@Woundorf
Copy link
Owner

This should be fixed with e26922c. I'll close it for now, but if anyone can still reproduce it (after the next release) I'll reopen it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants