Closed Bug 811570 Opened 12 years ago Closed 12 years ago

Gmail has an enormous component alpha layer

Categories

(Core :: Layout, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla19

People

(Reporter: mattwoodrow, Unassigned)

References

Details

Attachments

(2 files, 1 obsolete file)

Gmail has a position:fixed white div between the background and content. This is causing us to put the entirety of the content in a component alpha layer.

The attached patch makes the root content scrollframe inactive initially if it is overflow:hidden. If it ever gets scrolled, then we make it active from then on.
Attachment #681300 - Flags: review?(roc)
https://tbpl.mozilla.org/?tree=Try&rev=98175550e15c

(I also added a comment to the header).
Comment on attachment 681300 [details] [diff] [review]
Make overflow:hidden documents inactive initially

Review of attachment 681300 [details] [diff] [review]:
-----------------------------------------------------------------

::: layout/generic/nsGfxScrollFrame.cpp
@@ +1694,5 @@
> +  // Unless this is the root scrollframe for a non-chrome document 
> +  // which is the direct child of a chrome document, we default to not
> +  // being "active".
> +  // XXX maybe we should extend this so that IFRAMEs which fill the
> +  // entire viewport (like GMail used to!) are always active

Delete this XXX comment since it no longer applies to GMail!
Attachment #681300 - Flags: review?(roc) → review+
(In reply to Matt Woodrow (:mattwoodrow) from comment #3)
> https://hg.mozilla.org/integration/mozilla-inbound/rev/24c0c55af0ed

fyi, the try build is roughly 2x the perf on gmail tab switch. Good work!
https://hg.mozilla.org/mozilla-central/rev/24c0c55af0ed
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
Depends on: 812107
No longer depends on: 812107
Looks like this made overflow:hidden pages end up permanently inactive.
Attachment #682271 - Flags: review?(roc)
Comment on attachment 682271 [details] [diff] [review]
Followup -  allow the scroll layer to become active again

Review of attachment 682271 [details] [diff] [review]:
-----------------------------------------------------------------

I think the correct fix here is simply to have nsGfxScrollFrameInner::MarkActive unconditionally set mScrollingActive = true; before calling IsAlwaysActive.
Attachment #682271 - Flags: review?(roc) → review+
Comment on attachment 682271 [details] [diff] [review]
Followup -  allow the scroll layer to become active again

Review of attachment 682271 [details] [diff] [review]:
-----------------------------------------------------------------

Sorry, I meant to r- that
Attachment #682271 - Flags: review+ → review-
Attachment #682271 - Attachment is obsolete: true
Attachment #682512 - Flags: review?(roc)
Marked as fixed, but there is a followup not committed yet?
Comment on attachment 681300 [details] [diff] [review]
Make overflow:hidden documents inactive initially

[Approval Request Comment]
Bug caused by (feature/regressing bug #): None
User impact if declined: GMail considerably slower than necessary for six weeks
Testing completed (on m-c, etc.): 10 days on m-c
Risk to taking this patch (and alternatives if risky): Pretty low risk. Simple patches and we're just messing with some performance heuristics.
String or UUID changes made by this patch: None.

The followup patch in this bug needs approval as well.
Attachment #681300 - Flags: approval-mozilla-aurora?
Comment on attachment 681300 [details] [diff] [review]
Make overflow:hidden documents inactive initially

Oops, this is already on Aurora since it landed before the uplift.
Attachment #681300 - Flags: approval-mozilla-aurora?
Depends on: 820496
No longer depends on: 820496
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: