gyng / save-in

WebExtension for saving media, links, or selections into user-defined directories
MIT License
201 stars 25 forks source link

Not saving options in chrome #67

Closed DanaMW closed 6 years ago

DanaMW commented 6 years ago

i have Version 68.0.3418.2 (Official Build) dev (64-bit) of chrome and I get this error in the console: Uncaught (in promise) TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resolve (chrome-polyfill.js:11) at new Promise () at Object._promisify [as get] (chrome-polyfill.js:10) at Object.OptionsManagement.loadOptions (option.js:127) at window.init (index.js:11) at index.js:315

And I can not save any options. I am not sure what happened it used to work....

gyng commented 6 years ago

Sorry, I cannot reproduce it on fresh installs of

I can only suggest a fresh reinstall of the addon (I noticed export/import settings was broken so that's only fixed in the newly released 2.6.1)

I can look into it more if there is a way to reliably reproduce it.

DanaMW commented 6 years ago

Good morning, the chrome is a fresh install along with a freshly downloaded copy of the extension so I am unsure what is going on yet, right now I am checking for white space and the like. Thanks for trying.

DanaMW commented 6 years ago

It saved under linux for me it is windows 10 I will fill you in if and when I figure it out.

DanaMW commented 6 years ago

Do you have an idea where to look to fix that error?

DanaMW commented 6 years ago

Trying to export setting in firefox just flashes the screen and in chrome brings up a new tab with "undefined" in the upper left corner. (this in windows 10)

gyng commented 6 years ago

I've pushed another update that fixes the export settings issue.

If you're already in Chrome and have the extension debug console open, browser.storage.local.get should return the following if the Chrome promise polyfill did its job:

ƒ _promisify(args) {
    if (arity === 0) {
      return new Promise(resolve => {
...

browser.storage.local.get().then(console.log) should then print the options:

{conflictAction: "uniquify", contentClickToSave: false,...

browser === chrome should also return true.

DanaMW commented 6 years ago

Firefox is set it did export fine waiting for Google to let me have the chrome version.

DanaMW commented 6 years ago

still 2.6.1 in chrome and I don't know if this is useful to you but these were the responses in this older version.: browser.storage.local.get ƒ _promisify(args) { if (arity === 0) { return new Promise(resolve => { func(resolve); }); } else if (arity === 1) { return new Promise(resolve => { func(args,… browser.storage.local.get().then(console.log) Promise {: TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resol…} VM62:1 Uncaught (in promise) TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resolve (chrome-polyfill.js:11) at new Promise () at Object._promisify [as get] (chrome-polyfill.js:10) at :1:23 resolve @ chrome-polyfill.js:11 _promisify @ chrome-polyfill.js:10 (anonymous) @ VM62:1 Promise.then (async) (anonymous) @ VM62:1

DanaMW commented 6 years ago

2.6.2 browser.storage.local.get ƒ _promisify(args) { if (arity === 0) { return new Promise(resolve => { func(resolve); }); } else if (arity === 1) { return new Promise(resolve => { func(args,…

DanaMW commented 6 years ago

then: browser.storage.local.get().then(console.log) Promise {: TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resol…} VM49:1 Uncaught (in promise) TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resolve (chrome-polyfill.js:11) at new Promise () at Object._promisify [as get] (chrome-polyfill.js:10) at :1:23 resolve @ chrome-polyfill.js:11 _promisify @ chrome-polyfill.js:10 (anonymous) @ VM49:1 Promise.then (async) (anonymous) @ VM49:1

DanaMW commented 6 years ago

No other extensions are with error and as the ONLY extension i still see error in the background page of: Uncaught (in promise) TypeError: Illegal invocation: Function must be called on an object of type StorageArea at resolve (chrome-polyfill.js:11) at new Promise () at Object._promisify [as get] (chrome-polyfill.js:10) at Object.OptionsManagement.loadOptions (option.js:127) at window.init (index.js:11) at index.js:315

DanaMW commented 6 years ago

Google Chrome is up to date Version 68.0.3418.2 (Official Build) dev (64-bit)

gyng commented 6 years ago

I still don't know what could be wrong. It could be the polyfill, but it works on my Chrome with the exact same version. Is this happening with specific settings? Does resetting to defaults help?

DanaMW commented 6 years ago

I tried resetting, your extension and chrome. i tried only your great extension, umm i even talked dirty to it :) It is working in Linux i reset the options in chrome://flags too something to do with that error i pasted that happens as soon as chrome starts to run. Save in is running in 2 copies of FF 1 of chrome and 2 of Vivaldi split between win 10 and Linux and has been since you started with no problems so it has to be something about win10. I am going to completely remove the profile and directories and copy over the profile from Linux next. Will let you know when i sort it.

DanaMW commented 6 years ago

OK Chrome syncs Save in settings across browsers and I wasn't aware of that . I removed all references to chrome and reinstalled and I am fine. Back about two months ago there was an issue with chrome saving into a folder "undefined" and I made some changes to chrome and folder that could not be written over without manually doing some work. Well those custom edits whacked out chrome and save in because it expected to overwrite them. I had forgotten about those. I am good again and thank your for all your edits yesterday. really do enjoy this extension.