Greasemonkey: рд░рд╛рдд рдореЗрдВ рдЯреВрдЯрд╛ 56.0a1 (2017-07-26)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬреБрд▓ре░ 2017  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

Tried both stable 3.11 and dev 3.11beta1. рд╕реНрдерд┐рд░ 3.11 рдФрд░ рджреЗрд╡ 3.11beta1 рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред Test script: рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

// ==UserScript==
// <strong i="6">@name</strong> hello
// <strong i="7">@namespace</strong> world
// <strong i="8">@include</strong> *
// ==/UserScript==
alert('Hello world!');
en

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

You need 56b02 for that setting to work correctly. рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ 56b02 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 56b03 will have that fix and the level 2 setting which should fix this, by default. 56b03 рдореЗрдВ рд╡рд╣ рдлрд┐рдХреНрд╕ рдФрд░ рд╕реНрддрд░ 2 рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧреАред

en

рд╕рднреА 16 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Same here. рдпрд╣рд╛рдБ рднреА рдРрд╕рд╛ рд╣реАред Stopped working a few days ago. рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдХрд╛рдо рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред

en

Works for me. рдореЗрд░реЗ рд▓рд┐рдпреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред Going to need more detail. рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

Should I guess from OP's username that this is actually a conflict with some other extension? рдХреНрдпрд╛ рдореБрдЭреЗ рдУрдкреА рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рд╣реИ?

en

I have uBlock Origin installed, but I do not see any blocked requests in network tab in Dev Tools. рдореЗрд░реЗ рдкрд╛рд╕ uBlock Origin рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ Dev Tools рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреИрдм рдореЗрдВ рдХреЛрдИ рдЕрд╡рд░реЛрдзрд┐рдд рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

Here is what console output looks like on my machine: рдпрд╣рд╛рдБ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":763]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 findEnabled() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":82]
3 observe() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":21]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 init() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":132]
12 onFinalUiStartup() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":185]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 <TOP LEVEL> ["chrome://greasemonkey/content/browser.js":13]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 updateSettings() ["chrome://tabmixplus/content/tab/tab.js":2673]
12 init() ["resource://tabmixplus/TabmixSvc.jsm":180]
13 Tabmix.beforeBrowserInitOnLoad() ["chrome://tabmixplus/content/links/setup.js":49]
14 tabmix_initialization_run() ["chrome://tabmixplus/content/tabmix.js":1235]
15 TMP_EL_onContentLoaded() ["chrome://tabmixplus/content/tabmix.js":322]
16 TMP_EL_handleEvent() ["chrome://tabmixplus/content/tabmix.js":287]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 checkFirstRun() ["chrome://superstart/content/js/startup.js":452]
12 onLoad() ["chrome://superstart/content/js/startup.js":186]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":757]
1 findByMeta() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":104]
2 updateStatus() ["chrome://stylish/content/overlay.js":175]
3 urlUpdated() ["chrome://stylish/content/overlay.js":141]
4 init() ["chrome://stylish/content/overlay.js":67]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":757]
1 findByMeta() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":105]
2 updateStatus() ["chrome://stylish/content/overlay.js":175]
3 urlUpdated() ["chrome://stylish/content/overlay.js":141]
4 init() ["chrome://stylish/content/overlay.js":67]

0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 enable/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":34]
12 enable() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":28]
13 run() ["resource://gre/modules/commonjs/sdk/addon/runner.js":108]
14 startup/</<() ["resource://gre/modules/commonjs/sdk/addon/runner.js":83]
15 process() ["resource://gre/modules/Promise-backend.js":922]
16 walkerLoop() ["resource://gre/modules/Promise-backend.js":806]
17 bound walkerLoop() ["self-hosted":945]
18 bound walkerLoop() ["self-hosted":945]
19 scheduleWalkerLoop/<() ["resource://gre/modules/Promise-backend.js":742]
20 getExtensionInfo() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":21]
21 init/<() ["jar:file:///home/nazar-pc/.mozilla/firefox/0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 enable/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":34]
12 enable() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":28]
13 run() ["resource://gre/modules/commonjs/sdk/addon/runner.js":108]
14 startup/</<() ["resource://gre/modules/commonjs/sdk/addon/runner.js":83]
15 process() ["resource://gre/modules/Promise-backend.js":922]
16 walkerLoop() ["resource://gre/modules/Promise-backend.js":806]
17 bound walkerLoop() ["self-hosted":945]
18 bound walkerLoop() ["self-hosted":945]
19 scheduleWalkerLoop/<() ["resource://gre/modules/Promise-backend.js":742]
20 getExtensionInfo() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":21]
21 init/<() ["jar:file:///home/nazar-pc/.mozilla/firefox/0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 enable/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":34]
12 enable() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":28]
13 run() ["resource://gre/modules/commonjs/sdk/addon/runner.js":108]
14 startup/</<() ["resource://gre/modules/commonjs/sdk/addon/runner.js":83]
15 process() ["resource://gre/modules/Promise-backend.js":922]
16 walkerLoop() ["resource://gre/modules/Promise-backend.js":806]
17 bound walkerLoop() ["self-hosted":945]
18 bound walkerLoop() ["self-hosted":945]
19 scheduleWalkerLoop/<() ["resource://gre/modules/Promise-backend.js":742]
20 getExtensionInfo() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":21]
21 init/<() ["jar:file:///home/nazar-pc/.mozilla/firefox/0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 enable/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":34]
12 enable() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":28]
13 run() ["resource://gre/modules/commonjs/sdk/addon/runner.js":108]
14 startup/</<() ["resource://gre/modules/commonjs/sdk/addon/runner.js":83]
15 process() ["resource://gre/modules/Promise-backend.js":922]
16 walkerLoop() ["resource://gre/modules/Promise-backend.js":806]
17 bound walkerLoop() ["self-hosted":945]
18 bound walkerLoop() ["self-hosted":945]
19 scheduleWalkerLoop/<() ["resource://gre/modules/Promise-backend.js":742]
20 getExtensionInfo() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":21]
21 init/<() ["jar:file:///home/nazar-pc/.mozilla/firefox/0 bind() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":760]
1 findSql() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":810]
2 find() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStyle.js":72]
3 getAddonByID() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7B46551EC9-40F0-4e47-8E18-8E5CF550CFB8%7D.xpi!/components/stylishStartup.js":57]
4 callProviderAsync() ["resource://gre/modules/AddonManager.jsm":295]
5 promiseCallProvider/<() ["resource://gre/modules/AddonManager.jsm":319]
6 promiseCallProvider() ["resource://gre/modules/AddonManager.jsm":318]
7 getAddonByID/promises<() ["resource://gre/modules/AddonManager.jsm":2407]
8 from() ["self-hosted":611]
9 getAddonByID() ["resource://gre/modules/AddonManager.jsm":2406]
10 getAddonByID() ["resource://gre/modules/AddonManager.jsm":3577]
11 enable/<() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":34]
12 enable() ["resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/preferences/native-options.js":28]
13 run() ["resource://gre/modules/commonjs/sdk/addon/runner.js":108]
14 startup/</<() ["resource://gre/modules/commonjs/sdk/addon/runner.js":83]
15 process() ["resource://gre/modules/Promise-backend.js":922]
16 walkerLoop() ["resource://gre/modules/Promise-backend.js":806]
17 bound walkerLoop() ["self-hosted":945]
18 bound walkerLoop() ["self-hosted":945]
19 scheduleWalkerLoop/<() ["resource://gre/modules/Promise-backend.js":742]
20 getExtensionInfo() ["jar:file:///home/nazar-pc/.mozilla/firefox/q5eocnir.default/extensions/%7BDD7B8D8D-C0B5-4122-9652-4FCB1E788CD8%7D.xpi!/bootstrap.js":21]
21 init/<() ["jar:file:///home/nazar-pc/.mozilla/firefox/
en

@arantius No other extensions were installed, using a freshly created profile. @arantius рддрд╛рдЬрд╝рд╛ рдмрдирд╛рдИ рдЧрдИ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдИ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред I tried to switch between FF Stable and Nightly using the same profile, alert does not appear in Nightly. рдореИрдВрдиреЗ рдПрдХ рд╣реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдлрдПрдл рд╕реНрдЯреЗрдмрд▓ рдФрд░ рдирд╛рдЗрдЯрд▓реА рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдирд╛рдЗрдЯрд▓реА рдореЗрдВ рдЕрд▓рд░реНрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред Same as @nazar-pc said, broke just two days ago. рдЬреИрд╕рд╛ рдХрд┐ @ рдирдЬрд╝рд░-рдкреАрд╕реА рдиреЗ рдХрд╣рд╛, рджреЛ рджрд┐рди рдкрд╣рд▓реЗ рд╣реА рдЯреВрдЯ рдЧрдпрд╛ред

Running on Debian 8 x64. рдбреЗрдмрд┐рдпрди 8 x64 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

en

On Linux confirmed. рд▓рд┐рдирдХреНрд╕ рдкрд░ рдкреБрд╖реНрдЯрд┐ рдХреАред

Ad (default): рд╡рд┐рдЬреНрдЮрд╛рдкрди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ):
about:config
security.sandbox.content.level = 3 security.sandbox.content.level = 3


Throws an error in Browser Console: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:

1) 1)

TypeError: el is null
emptyEl.js:4:10

and рдФрд░

2) 2)

NS_ERROR_FILE_ACCESS_DENIED: Component returned failure code: 0x80520015
(NS_ERROR_FILE_ACCESS_DENIED) [nsIStringBundle.GetStringFromName]
sandbox.js:19

__Last good: Firefox 56.0a1 (2017-07-25)__ __рдЕрдВрддрд┐рдо рдЕрдЪреНрдЫрд╛: рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 56.0a1 (2017-07-25)__
Built from https://hg.mozilla.org/mozilla-central/rev/131e19a573e901fb4d01b471b11b7916420b9fee https://hg.mozilla.org/mozilla-central/rev/131e19a573e901fb4d01b471b11b7916420b9fee рд╕реЗ рдирд┐рд░реНрдорд┐рдд

__First bad: Firefox 56.0a1 (2017-07-26)__ __рдкрд╣рд▓рд╛ рдЦрд░рд╛рдм: рдлрд╛рдпрд░рдлреЙрдХреНрд╕ 56.0a1 (2017-07-26)__
Built from https://hg.mozilla.org/mozilla-central/rev/e8400551c2e39f24c75a009ebed496c7acd7bf47 https://hg.mozilla.org/mozilla-central/rev/e8400551c2e39f24c75a009ebed496c7acd7bf47 рд╕реЗ рдирд┐рд░реНрдорд┐рдд

__Pushlog__ __рдкреБрд╢рд▓реЙрдЧ__
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=131e19a573e901fb4d01b471b11b7916420b9fee&tochange=e8400551c2e39f24c75a009ebed496c7acd7bf47 https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=131e19a573e901fb4d01b471b11b7916420b9fee&tochange=e8400551c2e39f24c75a009ebed496c7acd7bf47


Ad 1) рд╡рд┐рдЬреНрдЮрд╛рдкрди 1)

Ad: рд╡рд┐рдЬреНрдЮрд╛рдкрди:
https://github.com/greasemonkey/greasemonkey/blob/3.11/content/browser.js#L288 https://github.com/greasemonkey/greasmonkey/blob/3.11/content/browser.js#L288
mm == [object ChromeMessageSender] , but this callbacks: mm == [object ChromeMessageSender] , рд▓реЗрдХрд┐рди рдпрд╣ рдХреЙрд▓рдмреИрдХ:
https://github.com/greasemonkey/greasemonkey/blob/3.11/modules/processScript.js#L16 https://github.com/greasemonkey/greasmonkey/blob/3.11/modules/processScript.js#L16
(https://github.com/greasemonkey/greasemonkey/blob/3.11/modules/processScript.js#L30) (https://github.com/greasemonkey/greasemonkey/blob/3.11/modules/processScript.js#L30)
https://github.com/greasemonkey/greasemonkey/blob/3.11/content/browser.js#L294 https://github.com/greasemonkey/greasmonkey/blob/3.11/content/browser.js#L294
does not work (it never gets inside). рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ (рдпрд╣ рдХрднреА рдЕрдВрджрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛)ред

But I cannot simulate it with Scratchpad (this is probably the one content): рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕реНрдХреНрд░реИрдЪрдкреИрдб рдХреЗ рд╕рд╛рде рдЕрдиреБрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рд╕рд╛рдордЧреНрд░реА рд╣реИ):

let messageName = "greasemonkey:message";

function framescript() {

  let messageName = "greasemonkey:message";

  this.addMessageListener(messageName, any);

  function any(aMessage) {
     let consoleService = Components.classes["@mozilla.org/consoleservice;1"]
         .getService(Components.interfaces.nsIConsoleService);
     consoleService.logStringMessage("I am here!");
  }

}

let globalMessageManager = Components.classes["@mozilla.org/globalmessagemanager;1"]
    .getService(Components.interfaces.nsIMessageListenerManager);

globalMessageManager.loadFrameScript(
    "data:text/javascript,(" + framescript.toString() + ")();", false);

var mm = getBrowser().mCurrentBrowser.frameLoader.messageManager;

mm.sendAsyncMessage(messageName, {});

Ad 2) рд╡рд┐рдЬреНрдЮрд╛рдкрди 2)

Bug 1308400 рдмрдЧ 1308400


A fix: рдЬреЛрдбрдирд╛:
about:config
security.sandbox.content.level = 1 security.sandbox.content.level = 1

en

рдпрд╣ рднреА рджреЗрдЦреЗрдВ: https://bugzilla.mozilla.org/show_bug.cgi?id=1385712

en

For info, this is broken on 56.0b1 Dev edition under Linux too. рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд 56.0b1 рджреЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред

Changing security.sandbox.content.level from 3 to 1 does not fix anything. security.sandbox.content.level рдХреЛ 3 рд╕реЗ 1 рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдареАрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

en

You need 56b02 for that setting to work correctly. рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ 56b02 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 56b03 will have that fix and the level 2 setting which should fix this, by default. 56b03 рдореЗрдВ рд╡рд╣ рдлрд┐рдХреНрд╕ рдФрд░ рд╕реНрддрд░ 2 рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧреАред

en

I'm on 56.0b2 and it's not working for me, altough what happens it's that Greasemonkey says that there are no scripts installed to run on this page. рдореИрдВ 56.0b2 рдкрд░ рд╣реВрдВ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ Greasemonkey рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред Can't tell if it's related to this issue or not. рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред

Update: nevermind, it works, you have to change the setting and then restart. рдЕрджреНрдпрддрди: рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓рдиреА рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

en

@faelsoto did you change security.sandbox.content.level from 3 to 2? @faelsoto рдХреНрдпрд╛ рдЖрдкрдиреЗ security.sandbox.content.level рдХреЛ 3 рд╕реЗ 2 рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛? (or 1) (рдпрд╛ 1)

Or just wait for 56.0b3, releasing tomorrow-ish. рдпрд╛ рдмрд╕ 56.0b3 рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдХрд▓-рдИрд╢ рд░рд┐рд▓реАрдЬ рд╣реЛ рд░рд╣реА рд╣реИред

en

on 56.0b2 , I just tested modifying security.sandbox.content.level to 2 , then to 1 , tried to refresh a page on which I have a custom greasemonkey script, tried to open a new tab and go to that same page ; 56.0b2 рдкрд░, рдореИрдВрдиреЗ рдЕрднреА security.sandbox.content.level рдХреЛ 2 рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдлрд┐рд░ 1 рдкрд░, рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд┐рд╕ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╕реНрдЯрдо рдЧреНрд░реАрд╕рдореЛрдирдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдХреЛрд╢рд┐рд╢ рдХреА рдПрдХ рдирдпрд╛ рдЯреИрдм рдЦреЛрд▓рдиреЗ рдФрд░ рдЙрд╕реА рдкреЗрдЬ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП; this does not fix anything unfortunately. рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреБрдЫ рднреА рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

en

рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

en

Ok, setting security.sandbox.content.level to 2 , then restarting fix the problem. рдареАрдХ рд╣реИ, security.sandbox.content.level рдХреЛ 2 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдлрд┐рд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред Congrats. рдмрдзрд╛рдИред

Side note: What are the implications of changing that security level exactly? рд╕рд╛рдЗрдб рдиреЛрдЯ: рдЙрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрддрд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдХреНрдпрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реИрдВ?

en

Side note: What are the implications of changing that security level exactly? рд╕рд╛рдЗрдб рдиреЛрдЯ: рдЙрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрддрд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдХреНрдпрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реИрдВ?

https://wiki.mozilla.org/Security/Sandbox#Content_Levels_2 https://wiki.mozilla.org/Security/Sandbox#Content_Levels_2

In simple terms, with level 2 an attacker that finds one security hole in Firefox won't be able to take over the browser or PC, but can still access sensitive data such as your passwords, cookies, etc. Level 3 closes that hole. рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕реНрддрд░ 2 рдХреЗ рд╕рд╛рде рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЬреЛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рдкрд╛рддрд╛ рд╣реИ, рд╡рд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдкреАрд╕реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрдкрдХреЗ рдкрд╛рд╕рд╡рд░реНрдб, рдХреБрдХреАрдЬрд╝ рдЖрджрд┐ рдЬреИрд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рд╕реНрддрд░ 3 рдЙрд╕ рдЫреЗрдж рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

There were too many outstanding compatibility issues to leave 3 enabled on 56, though we plan to enable it in 57, which has a load more fixes. 56 рдкрд░ 3 рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрдХрд╛рдпрд╛ рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЗ рдереЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдЗрд╕реЗ 57 рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд▓реЛрдб рдЕрдзрд┐рдХ рд╕реБрдзрд╛рд░ рд╣реИред Note that this is specific to Linux, macOS and Windows already shipped a stricter sandbox. рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдореИрдХрдУрдПрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдЦреНрдд рд╕реИрдВрдбрдмреЙрдХреНрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рд╣реИред

en

Bankruptcy milestone рджрд┐рд╡рд╛рд▓рд┐рдпрд╛рдкрди рдореАрд▓ рдХрд╛ рдкрддреНрдерд░

Wow that sounds sad. рд╡рд╛рд╣ рдпрд╣ рджреБрдЦрдж рд▓рдЧрддрд╛ рд╣реИред But isn't this pretty much fixed? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рддрдп рдирд╣реАрдВ рд╣реИ? Firefox 57.0a1 has level 3, but I'm pretty sure I saw other fixes for this same bug, and I just tested nightly buildid 20170816100153 and it works. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 57.0рдП1 рдХрд╛ рд╕реНрддрд░ 3 рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реА рдмрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕реБрдзрд╛рд░ рджреЗрдЦреЗ рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рд░рд╛рдд рдХреЗ рдмрд┐рд▓реНрдбрд┐рдб 20170816100153 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

en

Nightly was fixed by bug 1385891. There's nothing Greasemonkey needs to do to fix this on their side. рд░рд╛рдд рдХреЛ рдмрдЧ 1385891 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Greasemonkey рдХреЛ рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

(Aside from the obvious WebExtensions elephant in the room, and the controversy over whether they should have filesystem access or not, but that's being dealt with in other issues) (рдХрдорд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ WebExtensions рд╣рд╛рдереА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдФрд░ рдЗрд╕ рдкрд░ рд╡рд┐рд╡рд╛рдж рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)

en
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Powersource picture Powersource  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

silverwind picture silverwind  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

an-electric-sheep picture an-electric-sheep  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kitor picture kitor  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lainverse picture lainverse  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ