setvisible / ArrowDL

ArrowDL (Arrow Downloader) is a download manager for Windows, MacOS and Linux
https://www.arrow-dl.com/
GNU Lesser General Public License v3.0
633 stars 35 forks source link

Chromium extension (v2.5.5) does not work (at least on Vivaldi browser) #58

Open engelhro opened 2 years ago

engelhro commented 2 years ago

Hello,

as mentioned in #54, the Chromium browser extension with version 2.5.5 does not work for me in Vivaldi (version 5.0.2497.38, 64 bit). I receive an error message (in the "Status" field), see also screenshot.

⚠ Error: Can't find the launcher

DownZemAll_v2 5 5_Error_20210117

Apparently my DownZemAll installation (actually it's the portable version, but properly registered in the system via the install.bat script) cannot be found/identified.

I have no issue with the extension version 2.2.0 as installed from the Google web store (while version 2.5.5 was installed manually as described in the Advanced setup instructions). This "older" version (functionally the same, just with different translations) works fine and finds the DownZemAll binary.

setvisible commented 2 years ago

Maybe a wrong extension identifier...

Could you check if the extension identifier of the 2.5.5 in Chrome or Vivaldi - once manually imported - (go to the Options > extension^1 ) is the same as the identifier in <INSTALL_DIR>/launcher-manifest-chrome.json at the line allowed_origins :

{
  "name": "com.setvisible.downrightnow",
  "description": "DownRightNow Launcher Host for Native Messaging",
  "path": "launcher.exe",
  "type": "stdio",
  "allowed_origins": [ "chrome-extension://modofnijgomenbhnhlajdbgjppjeialc/" ]     << here
}

If not the same, could you replace the id of the "chrome-extension://....../" line in the JSON with the one given by Chrome or Vivaldi. Thus rerun install.bat.

[1] the ID should be visible somewhere. It looks like modofnijgomenbhnhlajdbgjppjeialc

Regards

extropyst commented 2 years ago

The same thing happened to me when manually installing the latest version of the extension (since the one from the Chrome Web Store is out of date). I fixed it by adding the Public Key from the old version (2.2.0) to the manifest.json of the new package (2.5.7). Here I copy the reference Public Key:

    "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuccbx3FF5gebVmvHeXlvS7Vyp2GjSp3w5gwwr4Vfx0AaIzy2Du24tkzmBwv34ZRnm6/nUSolm8aWwbi43V6I4qJrheoDpp0TfEYPcjBZbfLAtlpBHwzleikUgH/RxpIdruk/b/Ekk+V41wj/4atokEahFS6dYCibfZmLqWq56xTMIZFNd14LNy/S58eXN69NBBNz09rGvDGmj/5Xw34TJmcAXIbd34crVtkSBbKBnJXwIJYUaTkBI1uQY7KlCeRdSuIWxRJvSOd2uzrxuvco+tHXUC/r7liz0TkxZ+88NVg4+jETCLLQx6F1bI6SSAjwmrb0W3Oh20bQKy+2usZl9wIDAQAB",

More information about it: developer.chrome.com/.../#keep-consistent-id developer.chrome.com/.../manifest/key developer.chrome.com/.../#method-getURL github.com/.../chrome-extensions-samples/.../manifest.json

engelhro commented 2 years ago

Hello,

Just wanted to give a short feedback, as I tried to update to the extension version 2.5.8 today:

Maybe a wrong extension identifier...

Yes, that was it!

Could you check if the extension identifier of the 2.5.5 in Chrome or Vivaldi - once manually imported - (go to the Options > extension^1 ) is the same as the identifier in <INSTALL_DIR>/launcher-manifest-chrome.json at the line allowed_origins : [...]

No, they are not… While the downloaded extension has the identifier bpdbjhcmmgogfdkfekngbngflllcjhbp, the JSON file contains a different identifier (modofbhnhlagjmejdbalnijgncppjeio, which – strange enough – is still not the same as in your screenshot).

If not the same, could you replace the id of the "chrome-extension://....../" line in the JSON with the one given by Chrome or Vivaldi. Thus rerun install.bat.

I did so, and now the "updated" (I know, they are functionally identical) extension works together with the main DownZemAll program (also in version 2.5.8 :+1:).

So the proposed workaround does its job and that's fine for me. But not everyone might be able to do that (find this issue, look up the IDs, modifying the manifest accordingly, etc.). Will there be an "official" fix somehow, e.g. keeping the IDs constant (if possible for different versions) or otherwise update the manifest for each DZA version to match the ID of the corresponding extension (and, for backward compatibility, simultaneously keeping the existing one which refers to the version 2.2.0 which is in the Google web store)?

engelhro commented 2 years ago

The same thing happened to me when manually installing the latest version of the extension (since the one from the Chrome Web Store is out of date). I fixed it by adding the Public Key from the old version (2.2.0) to the manifest.json of the new package (2.5.7). [...]

Good to know that this would be an alternative workaround. But the one described above by @setvisible seems to be the easier and "more correct" one.

eadmaster commented 8 months ago

one problem i've found it's that the installer script uses the chromium path for the manifest, while proprietary Chrome uses ~/.config/google-chrome/NativeMessagingHosts.

Prolly vivaldi is using another path too.

However, after fixing this path the extension is still not working for me (same error "Can't find the launcher", while the main app is starting fine on my side.).