need to honour paint suppression in subdocuments

RESOLVED FIXED

Status

()

defect
--
major
RESOLVED FIXED
9 years ago
8 years ago

People

(Reporter: tnikkel, Assigned: tnikkel)

Tracking

(Blocks 1 bug, {perf})

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(blocking2.0 beta7+)

Details

Attachments

(2 attachments, 2 obsolete attachments)

Assignee

Description

9 years ago
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: --- → ?

Updated

9 years ago
Blocks: 588402
Severity: normal → major
Keywords: perf
Assignee

Comment 1

9 years ago
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!
Assignee

Comment 3

9 years ago
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)
Assignee

Comment 4

9 years ago
Use InvalidateFrameSubtree in UnsuppressAndInvalidate instead of keeping track.
Attachment #470704 - Attachment is obsolete: true
Attachment #470716 - Flags: review?(roc)
Attachment #470704 - Flags: review?(roc)
Assignee

Comment 5

9 years ago
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 8

9 years ago
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
Assignee

Comment 9

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

Done. Thanks Mats.
Assignee

Updated

9 years ago
Attachment #470704 - Flags: approval2.0?
Assignee

Updated

9 years ago
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?
Assignee

Comment 11

9 years ago
http://hg.mozilla.org/mozilla-central/rev/a7e7578e3ba7
http://hg.mozilla.org/mozilla-central/rev/b38d6617f160
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED

Updated

8 years ago
Depends on: 642977
You need to log in before you can comment on or make changes to this bug.