crx DL link
@@ -10,41 +10,31 @@
// https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
// http://0-9.tumblr.com/post/52782603407/chrome-extension-development-casual
+// dev-doc c.f.
+// https://gist.github.com/noromanba/5776183
(() => {
'use strict';
- // http://let.hatelabo.jp/noromanba/let/hLHVzOTQjfYH
- // https://gist.github.com/noromanba/d730ccf3ae5e6916cd60
- // https://gist.github.com/noromanba/3705f2e9ebb8538328b2f3f9a6f1a9b3
- const canonical = () => {
- const url = (document.head.querySelector([
- 'meta[property="og:url"][content]'
- ]) || {}).content ||
- (document.head.querySelector([
- 'link[rel="canonical"][href]'
- ]) || {}).href ||
- location.href;
-
- // https://developer.mozilla.org/en-US/docs/Web/API/URL
- // https://developer.mozilla.org/en-US/docs/Web/API/URL.URL
- return new URL(url);
- };
-
- // dev-doc c.f.
- // https://gist.github.com/noromanba/5776183
-
- // url syntax of Extension page;
+ // url syntax of Extension Page;
// https://chrome.google.com/webstore/detail/[<EXTENSION_NAME>]/<EXTENSION_ID>[/]
- const id = canonical().pathname.split('/').filter(s => !!s).pop();
- const link = [
- // You can use http, but final url redirect to https
- 'https://clients2.google.com/service/update2/crx?response=redirect&x=id%3D',
- id,
- '%26uc',
- // 32 or higher e.g. 33, 64
- '&prodversion=32'
- // OBSOLETE "&prod=chrome"
- ].join('');
+ 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', '32');
+ /*/
+ // .append for old browsers
+ link.searchParams.append('response', 'redirect');
+ link.searchParams.append('x', 'id=' + extid + '&uc');
+ link.searchParams.append('prodversion', '32');
+ //*/
window.prompt('.crx raw link', link);
})();
/*
* @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
*/
// https://stackoverflow.com/questions/7184793/how-to-download-a-crx-file-from-the-chrome-web-store-for-a-given-id
// http://0-9.tumblr.com/post/52782603407/chrome-extension-development-casual
// dev-doc c.f.
// https://gist.github.com/noromanba/5776183
(() => {
'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
// 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', '32');
/*/
// .append for old browsers
link.searchParams.append('response', 'redirect');
link.searchParams.append('x', 'id=' + extid + '&uc');
link.searchParams.append('prodversion', '32');
//*/
window.prompt('.crx raw link', link);
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。