Closed Bug 1336480 Opened 7 years ago Closed 7 years ago

Page turns blank when combining any CSS3 filter and extreme top & text-indent values

Categories

(Core :: Web Painting, defect, P1)

45 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox51 --- wontfix
firefox52 --- wontfix
firefox53 --- wontfix
firefox54 --- fixed

People

(Reporter: sergey, Assigned: u459114)

References

()

Details

(Whiteboard: [webcompat])

Attachments

(2 files, 1 obsolete file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0
Build ID: 20161213204132

Steps to reproduce:

Create index.html with:

<head>
<style>
html {
  filter: blur(1px);
}
a {
  text-indent: -9999em;
  top: -9999em;
  position: absolute;
}
</style>
</head>
<body>
  <div>Hello world!</div>
  <a href="http://example.com">http://example.com</a>
</body>


Actual results:

Nothing is visible.


Expected results:

Blurred "Hello world!" text.
large |number| of length cause this problem in this case.
-22564px < length value then the problem is gone (win10)
Status: UNCONFIRMED → NEW
Component: Untriaged → Layout
Ever confirmed: true
Product: Firefox → Core
It it probably either a Web Painting bug or a Graphics bug. Graphics is probably trying to create a too large layer for this page.
Component: Layout → Layout: Web Painting
Essentially it breaks Owl [1] addon and global user styles on many sites, like Stack Overflow, Bitbucket, eBay, LinkedIn and others which use values up to -999999em and so causes the whole page content to vanish. 

[1]: https://addons.mozilla.org/en-us/firefox/addon/owl/
Stack overflow also breaks on this extension:
  https://github.com/lgarron/ugly-http-extension

This uses the following rule on the body:
  filter: grayscale(0.85) !important;
(In reply to Xidorn Quan [:xidorn] (UTC+10) from comment #2)
> It it probably either a Web Painting bug or a Graphics bug. Graphics is
> probably trying to create a too large layer for this page.

Yeap, you can see this log appears repeatly
[GFX3-]: Surface size too large (allocation size would overflow int32_t)!

Remove this line can make blur test appear.
https://hg.mozilla.org/mozilla-central/file/d5360d0cfeca/layout/svg/nsFilterInstance.cpp#l583
We should find a way to shrink nsFilterInstance::mTargetBBoxInFilterSpace
Assignee: nobody → cku
Attachment #8839071 - Flags: review?(mstange)
Attachment #8839082 - Flags: review?(mstange)
Attachment #8839082 - Attachment is obsolete: true
Attachment #8839082 - Flags: review?(mstange)
Attachment #8839192 - Flags: review?(mstange)
Priority: -- → P1
Whiteboard: [webcompat]
Comment on attachment 8839071 [details]
Bug 1336480 - Part 1. Apply suface limitation in nsFilterInstance::ComputeNeededBoxes.

https://reviewboard.mozilla.org/r/113830/#review116162
Attachment #8839071 - Flags: review?(mstange) → review+
Comment on attachment 8839192 [details]
Bug 1336480 - Part 2. Test case.

https://reviewboard.mozilla.org/r/113898/#review116164
Attachment #8839192 - Flags: review?(mstange) → review+
Pushed by cku@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f413492608a6
Part 1. Apply suface limitation in nsFilterInstance::ComputeNeededBoxes. r=mstange
https://hg.mozilla.org/integration/autoland/rev/d26eb1db5b1c
Part 2. Test case. r=mstange
https://hg.mozilla.org/mozilla-central/rev/f413492608a6
https://hg.mozilla.org/mozilla-central/rev/d26eb1db5b1c
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
No plan to have dot release for 51. Mark 51 won't fix.
Is this something we should consider uplifting to 53?  esr52?
Flags: needinfo?(cku)
Introducing by the patch in Bug 948265, this bug have existed for a long time. As a result, we probably do not need to uplift these patched I think.
Flags: needinfo?(cku)
You need to log in before you can comment on or make changes to this bug.