Closed Bug 591435 Opened 10 years ago Closed 10 years ago

need to honour paint suppression in subdocuments

Categories

(Core :: Layout, defect)

defect
Not set
major

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- beta7+

People

(Reporter: tnikkel, Assigned: tnikkel)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

Attachments

(2 files, 2 obsolete files)

We only look at the paint suppression of the root document we are painting. We never check if a subdocument we are painting is suppressed. Adding bug 130078 into the mix makes this a lot more important to do since the main content window is now a subdocument.
blocking2.0: --- → ?
Blocks: 588402
Severity: normal → major
Keywords: perf
Assignee: nobody → tnikkel
Attachment #470704 - Flags: review?(roc)
+  if (builder.GetHadToIgnorePaintSuppression()) {
+    willFlushLayers = PR_TRUE;
+  }

This should be unnecessary, if we modify PresShell::UnsuppressAndInvalidate to call rootFrame->InvalidateFrameSubtree() --- which just landed!
content/base/test/test_bug333198.html and content/events/test/test_bug402089.html use nsIDOMWindowUtils::SendMouseEvent to send some events off onload, in PresShell::HandleEvent when we call nsLayoutUtils::GetFrameForPoint it does not pass true for ignore paint suppression so the events don't find their intended targets.
Attachment #470711 - Flags: review?(roc)
Use InvalidateFrameSubtree in UnsuppressAndInvalidate instead of keeping track.
Attachment #470704 - Attachment is obsolete: true
Attachment #470716 - Flags: review?(roc)
Attachment #470704 - Flags: review?(roc)
Fix tests better.
Attachment #470711 - Attachment is obsolete: true
Attachment #470721 - Flags: review?(roc)
Attachment #470711 - Flags: review?(roc)
+  // *and after* we draw. We don't need flush for PAINT_IGNORE_SUPPRESSION
+  // because we flush in PresShell::UnsuppressAndInvalidate.

Hmm. I think I put you wrong. If someone does a paint with PAINT_IGNORE_SUPPRESSION, and then we do a normal paint, seems like we'll paint the contents of ThebesLayers that show unsuppressed content.
Comment on attachment 470704 [details] [diff] [review]
Part 1. Honour paint suppression in subdocuments.

Let's go with this.
Attachment #470704 - Attachment is obsolete: false
Attachment #470704 - Flags: review+
Attachment #470716 - Attachment is obsolete: true
Attachment #470716 - Flags: review?(roc)
Comment on attachment 470721 [details] [diff] [review]
Part 2 v2. Fix tests that were relying on a lack of paint suppression in subdocuments.

nit: use <!-- --> for those comments
(In reply to comment #8)
> nit: use <!-- --> for those comments

Done. Thanks Mats.
Attachment #470704 - Flags: approval2.0?
Attachment #470721 - Flags: approval2.0?
Comment on attachment 470704 [details] [diff] [review]
Part 1. Honour paint suppression in subdocuments.

Land it, please!
Attachment #470704 - Flags: approval2.0?
Attachment #470721 - Flags: approval2.0?
http://hg.mozilla.org/mozilla-central/rev/a7e7578e3ba7
http://hg.mozilla.org/mozilla-central/rev/b38d6617f160
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Depends on: 642977
You need to log in before you can comment on or make changes to this bug.