Page 1 of 1
[FIXED] 11.0.44rc SVG problems
Posted: Sat Sep 12, 2020 8:38 am
by skriptimaahinen
NS 11.0.44rc2: Still problem with SVGs that have inline scripts but no external scripts.
FF80: Scripts fail to run on every page load.
FF81: Scripts fail to run when navigating to about:newtab and back.
Re: 11.0.44rc SVG problems
Posted: Sat Sep 12, 2020 7:22 pm
by Giorgio Maone
Cannot reproduce in
latest development build, but I'm not sure whether I've accidentally fixed it or there's something "wrong" with my test case:
Code: Select all
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/javascript"><![CDATA[
alert("SVG!");
]]></script>
</svg>
v 11.0.44rc3
============================================================
x Fixed media placeholder not shown when blocking Youtube
movies
x Work around for unpredictable content script execution
order
x Ensure content of NoScript prompts is always visible
Re: 11.0.44rc SVG problems
Posted: Sun Sep 13, 2020 12:49 pm
by skriptimaahinen
Still present in rc3. It's pretty hard to reproduce on FF81, but should happen quite often on FF80.
And there doesn't seem to be anything wrong with your test case. Happens with that too.
On FF81 the code hardly ever hits the document.write() due to the suspend working. On FF80 that is where it ends up most of the time.
The console output from that on is as follows:
Code: Select all
Can't use document.write(), XML document? Error: Can't document.write() on image/svg+xml syncFetchPolicy.js:62:23
Unfreezing file:///script.svg DocumentFreezer.js:91:15
Replaced <script type="text/javascript"> syncFetchPolicy.js:94:31
sendSyncMessage finalizing SyncMessage.js:239:19
sendSyncMessage resume #0/0 - 112ms SyncMessage.js:235:19
sendSyncMessage finalizing SyncMessage.js:239:19
Looks like the execution never reaches the dispatchEvents since some Promise never gets resolved.
Re: 11.0.44rc SVG problems
Posted: Sun Sep 13, 2020 10:46 pm
by Giorgio Maone
Should be fixed in
latest development build, thanks.
v 11.0.44rc4
============================================================
x Fixed namespacing issues with script replacements
x Fixed typo in content script ordering work-around
Re: 11.0.44rc SVG problems
Posted: Mon Sep 14, 2020 5:35 am
by musonius
src/content/syncFetchPolicy.js
Code: Select all
if (ocumentFreezer.suppressedScripts === 0 && readyState === "loading")
You killed the 'D' in
this commit.
Re: 11.0.44rc SVG problems
Posted: Mon Sep 14, 2020 6:05 am
by Giorgio Maone
musonius wrote: ↑Mon Sep 14, 2020 5:35 am
src/content/syncFetchPolicy.js
Code: Select all
if (ocumentFreezer.suppressedScripts === 0 && readyState === "loading")
You killed the 'D' in
this commit.
Sorry, it happened because I had suppressed that line in order to force the reproducibility of the issue.
Fixed in rc5.
Re: 11.0.44rc SVG problems
Posted: Mon Sep 14, 2020 7:10 am
by skriptimaahinen
External and inline scripts run fine now.
However, onload event attribute in <svg> does not execute. load/DOMContentLoaded added with addEventListener do fire though.
Re: 11.0.44rc SVG problems
Posted: Mon Sep 14, 2020 1:38 pm
by Giorgio Maone
skriptimaahinen wrote: ↑Mon Sep 14, 2020 7:10 am
However, onload event attribute in <svg> does not execute. load/DOMContentLoaded added with addEventListener do fire though.
Do I need to do anything special to reproduce?
I've tried both on 80 and 81b, with and without external scripts, forcing soft reload and suppressing it, but it seems to work always for me.
Test file:
Code: Select all
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="console.log('onload')">
<script type="text/javascript"><![CDATA[
console.log("SVG!");
]]></script>
</svg>
Re: 11.0.44rc SVG problems
Posted: Mon Sep 14, 2020 9:01 pm
by Giorgio Maone
Nevermind, even thought I couldn't actually reproduce essentially because my all my synchronous calls terminated in when document.readyState was still "loading", I've probably figured out what's happening to you and hopefully fixed it in
latest development build rc7. Thanks.
Re: 11.0.44rc SVG problems
Posted: Tue Sep 15, 2020 8:50 am
by skriptimaahinen
Should have pointed out that this indeed happens when soft reloading and the readyState is "completed". I can achieve this by using the "navigate to about:newtab and back".
The patch does fix it for my test cases, but now your test case (the older one with alert) fires the onload twice.
When doing normal reload:
Code: Select all
Readystate: interactive, suppressedScripts = 1, canScript = true syncFetchPolicy.js:28:17
Can't use document.write(), XML document? Error: Can't document.write() on image/svg+xml syncFetchPolicy.js:62:23
Unfreezing file:///script.svg DocumentFreezer.js:91:15
onload script.svg:1:9
// Execution proceeds after dismissing the alert.
Resolving on afterscriptexecute <script type="text/javascript"> syncFetchPolicy.js:86:33
Replaced <script type="text/javascript"> syncFetchPolicy.js:94:31
sendSyncMessage finalizing SyncMessage.js:239:19
ALl scripts done, firing completion events. syncFetchPolicy.js:97:27
onload script.svg:1:9
sendSyncMessage resume #0/0 - 5508ms SyncMessage.js:235:19
sendSyncMessage finalizing SyncMessage.js:239:19
If the "newtab reload" is used, the readyState is "complete" and only one onload fires.
Re: 11.0.44rc SVG problems
Posted: Tue Sep 15, 2020 10:57 pm
by Giorgio Maone
Please check
latest development build, thanks.
v 11.0.45rc1
============================================================
x Better emulation of SVG events
Re: 11.0.44rc SVG problems
Posted: Wed Sep 16, 2020 8:00 am
by skriptimaahinen
Looks good. Thanks!