Last Comment Bug 811570 - Gmail has an enormous component alpha layer
: Gmail has an enormous component alpha layer
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Layout (show other bugs)
: unspecified
: x86 Mac OS X
: -- normal (vote)
: mozilla19
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks: 811472
  Show dependency treegraph
 
Reported: 2012-11-13 17:20 PST by Matt Woodrow (:mattwoodrow)
Modified: 2012-12-11 11:30 PST (History)
5 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Make overflow:hidden documents inactive initially (4.13 KB, patch)
2012-11-13 17:20 PST, Matt Woodrow (:mattwoodrow)
roc: review+
Details | Diff | Review
Followup - allow the scroll layer to become active again (1.85 KB, patch)
2012-11-15 16:51 PST, Matt Woodrow (:mattwoodrow)
roc: review-
Details | Diff | Review
Followup - allow the scroll layer to become active again v2 (1.64 KB, patch)
2012-11-16 10:01 PST, Matt Woodrow (:mattwoodrow)
roc: review+
Details | Diff | Review

Description Matt Woodrow (:mattwoodrow) 2012-11-13 17:20:43 PST
Created attachment 681300 [details] [diff] [review]
Make overflow:hidden documents inactive initially

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.
Comment 1 Matt Woodrow (:mattwoodrow) 2012-11-13 17:30:41 PST
https://tbpl.mozilla.org/?tree=Try&rev=98175550e15c

(I also added a comment to the header).
Comment 2 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-11-13 17:42:19 PST
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!
Comment 3 Matt Woodrow (:mattwoodrow) 2012-11-13 22:29:49 PST
https://hg.mozilla.org/integration/mozilla-inbound/rev/24c0c55af0ed
Comment 4 (dormant account) 2012-11-14 03:38:29 PST
(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!
Comment 5 Ed Morley [:emorley] 2012-11-14 06:52:23 PST
https://hg.mozilla.org/mozilla-central/rev/24c0c55af0ed
Comment 6 Matt Woodrow (:mattwoodrow) 2012-11-15 16:51:00 PST
Created attachment 682271 [details] [diff] [review]
Followup -  allow the scroll layer to become active again

Looks like this made overflow:hidden pages end up permanently inactive.
Comment 7 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-11-15 17:06:29 PST
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.
Comment 8 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-11-15 17:06:56 PST
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
Comment 9 Matt Woodrow (:mattwoodrow) 2012-11-16 10:01:42 PST
Created attachment 682512 [details] [diff] [review]
Followup - allow the scroll layer to become active again v2
Comment 10 Alfred Kayser 2012-11-17 01:50:52 PST
Marked as fixed, but there is a followup not committed yet?
Comment 11 Matt Woodrow (:mattwoodrow) 2012-11-18 20:20:18 PST
https://hg.mozilla.org/integration/mozilla-inbound/rev/3a057b8667fb
Comment 12 Ed Morley [:emorley] 2012-11-19 07:37:57 PST
https://hg.mozilla.org/mozilla-central/rev/3a057b8667fb
Comment 13 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-11-23 14:00:06 PST
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.
Comment 14 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-11-23 14:13:34 PST
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.

Note You need to log in before you can comment on or make changes to this bug.