Closed Bug 1468183 Opened 2 years ago Closed 2 years ago

(async-blob) Page completely chokes the browser. Tab is completely unresponsive on clicking anywhere on page (svg filter of entire page)

Categories

(Core :: Graphics: WebRender, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: mayankleoboy1, Assigned: nical)

References

(Depends on 2 open bugs, Blocks 2 open bugs, )

Details

(Keywords: nightly-community, perf)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Build ID: 20180610220159

Steps to reproduce:

1. Use nightly. Enable WR
2. Go to https://web.archive.org/web/20150401205722/http://www.pokecommunity.com/showthread.php?t=161616



Actual results:

browser chokes
CPU usage is 100%. Memory periodically goes to 4.5GB, then goes down.

If u click anywhere on the page, the memory increases to 4.5GB, but then goes down


Expected results:

not so
Status: UNCONFIRMED → NEW
Ever confirmed: true
I originally discovered this, my browser is unresponsive even if I don't click the page. The site also doesn't behave properly with Webrender disabled, scrolling doesn't work properly, it scrolls down then back up a bit and shakes but it doesn't hang the browser.
better profile: https://perfht.ml/2LJk6en

lots of time spent in static void mozilla::gfx::TransferComponents and
 static struct already_AddRefed mozilla::gfx::ApplyColorMatrix_SIMD
My browser is still responsive after changing tabs and letting it settle down for a bit but RAM stays at 3.3GB and CPU at 15% with the tab in background. Trying to do anything on the site shoots Firefox to over 10GB RAM usage and 100% CPU on my FX8320. I don't think I set up the profiler properly but here it is anyways: https://perfht.ml/2LFkDxD
Async blob rendering should help with this. From the profile it looks like the main thread is blocked on WR hit testing, and the render backend thread which is supposed to do the hit-test is blocked waiting for the blobs to render.
Depends on: async-blob
Priority: -- → P1
Summary: Page completely chokes the browser. Tab is completely unresponsive on clicking anywhere on page → (async-blob) Page completely chokes the browser. Tab is completely unresponsive on clicking anywhere on page
Bug 1455422 looks like it improved page responsiveness while it loads but scrolling the page to half way caused it to whitescreen and lock up harder than before (I couldn't manage to close or switch tabs, had to force close the browser).
Assignee: nobody → jmuizelaar
Summary: (async-blob) Page completely chokes the browser. Tab is completely unresponsive on clicking anywhere on page → (async-blob) Page completely chokes the browser. Tab is completely unresponsive on clicking anywhere on page (svg filter of entire page)
So this page is using an SVG filter of url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='invert'><feColorMatrix in='SourceGraphic' type='matrix' values='-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0'/></filter></svg>#invert"). This pushes us down fallback and all kinds of bad.
Depends on: 1455427
Depends on: 1485512
We can't release this to the field, but we can let this ride to beta.
Priority: P1 → P2
We need to figure out what to do about this.
Flags: needinfo?(jmuizelaar)
I have a patch that fixes this.
Assignee: jmuizelaar → nical.bugzilla
Flags: needinfo?(jmuizelaar)
The patch needs both bug 1485512 and https://github.com/servo/webrender/pull/3240 to land first.
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/eb3117b5f4fe
Support a subset of SVG color matrix filters in WebRender. r=mstange
https://hg.mozilla.org/mozilla-central/rev/eb3117b5f4fe
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in before you can comment on or make changes to this bug.