crx DL link
@@ -11,8 +11,6 @@
// https://robwu.nl/crxviewer/
// https://github.com/Rob--W/crxviewer
-// https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
-
// DEPRECATED: TODO fix
// dev-doc c.f.
// https://gist.github.com/noromanba/5776183
@@ -27,14 +25,17 @@
const extid = location.pathname.split('/').filter(s => !!s).pop();
// You can use http, but final url redirect to https
- // OBSOLETE prod=chrome
const link = new URL('https://clients2.google.com/service/update2/crx');
// URLSearchParams c.f.
// https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
link.searchParams.set('response', 'redirect');
link.searchParams.set('x', 'id=' + extid + '&uc');
- // perhaps Chrome/mium ver: 32 or higher e.g. 33, 64, 99
- link.searchParams.set('prodversion', '999');
+ // Chrome/ium ver
+ // 32 or higher; e.g. 33, 64, 99, 999 to 2147483647 = 32-bit INT32 MAX c.f.
+ // http://let.hatelabo.jp/noromanba/let/hJmdmMS2rstJ
+ // you can use manifest.json style; 70.0.0.0, 9999.9999.9999.9999 c.f.
+ // https://developer.chrome.com/apps/manifest/version
+ link.searchParams.set('prodversion', -1 >>> 1);
// crx2, crx3, ...
link.searchParams.set('acceptformat', [
...Array(10).keys()
@@ -49,4 +50,7 @@
// &prodversion=999
// &acceptformat=crx2,crx3,crx4
// &x=id%3Dpkehgijcmpdhfbdbbnkijodmdjhbjlgp%26uc
+//
+// OBSOLETE e.g. `prod=chrome`
+// https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
/*
* @title crx DL link
* @description prompt download-link of Chrome Extension aka crx on Chrome Web Store
* @include https://chrome.google.com/webstore/detail/*
* @contributor taizooo http://let.hatelabo.jp/taizooo/let/gYC-x-e5r_G0bw (Fork of)
* @license MIT License https://opensource.org/licenses/MIT
* @javascript_url
*/
// alternative
// https://robwu.nl/crxviewer/
// https://github.com/Rob--W/crxviewer
// DEPRECATED: TODO fix
// dev-doc c.f.
// https://gist.github.com/noromanba/5776183
// e.g.
// https://chrome.google.com/webstore/detail/privacy-badger/pkehgijcmpdhfbdbbnkijodmdjhbjlgp
(() => {
'use strict';
// url syntax of Extension Page;
// https://chrome.google.com/webstore/detail/[<EXTENSION_NAME>]/<EXTENSION_ID>[/]
const extid = location.pathname.split('/').filter(s => !!s).pop();
// You can use http, but final url redirect to https
const link = new URL('https://clients2.google.com/service/update2/crx');
// URLSearchParams c.f.
// https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
link.searchParams.set('response', 'redirect');
link.searchParams.set('x', 'id=' + extid + '&uc');
// Chrome/ium ver
// 32 or higher; e.g. 33, 64, 99, 999 to 2147483647 = 32-bit INT32 MAX c.f.
// http://let.hatelabo.jp/noromanba/let/hJmdmMS2rstJ
// you can use manifest.json style; 70.0.0.0, 9999.9999.9999.9999 c.f.
// https://developer.chrome.com/apps/manifest/version
link.searchParams.set('prodversion', -1 >>> 1);
// crx2, crx3, ...
link.searchParams.set('acceptformat', [
...Array(10).keys()
].map(v => 'crx' + v).join(','));
window.prompt('.crx raw link', link);
})();
// DEV
// https://clients2.google.com/service/update2/crx
// ?response=redirect
// &prodversion=999
// &acceptformat=crx2,crx3,crx4
// &x=id%3Dpkehgijcmpdhfbdbbnkijodmdjhbjlgp%26uc
//
// OBSOLETE e.g. `prod=chrome`
// https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。