Closed Bug 401949 Opened 17 years ago Closed 16 years ago

Bug 395248 caused a Txul regression on Linux

Categories

(Firefox :: General, defect, P2)

x86
Linux
defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: reed, Assigned: rflint)

References

()

Details

(Keywords: helpwanted, perf, regression, Whiteboard: see comments 14 and 21)

Attachments

(1 file, 3 obsolete files)

The patch in bug 395248 caused a Txul regression on Linux.
Before the patch, Txul was ~235ms. After the patch, Txul is ~243ms.
Flags: blocking-firefox3?
On Linux, the patch for bug 395248 looks effectively like this:

 #identity-box {
-  border-right: 1px solid #888;
-  background-color: white;
-  opacity: 0.9;
+  cursor: help;
+  background-color: ThreeDFace;
+  border-right: 1px solid ThreeDShadow;
 }
 
-#identity-box:hover {
-  opacity: 1.0;
+#identity-box.verifiedIdentity {
+  border-color: highlight;
 }
 
-#identity-box.verifiedIdentity {
-  background-color: #BFA;
+#identity-box:hover {
+  border-color: ThreeDDarkShadow;
 }
 
 #identity-icon-label {
-    padding: 1px 2px 2px;
-    color: black;
-    vertical-align: middle;
+  padding: 0 2px;
+  cursor: inherit;
 }

So if this points to bug 395248, it's probably a strange Core bug.
Assignee: dao → nobody
(In reply to comment #1)
> So if this points to bug 395248, it's probably a strange Core bug.

Yeah, it's definitely this patch. Nothing else was checked-in around when the Txul regression happened, and it showed up immediately after this patch landed.

Ventnor / roc: Any ideas?
I would have thought removing the opacity would speed things up ... Is it true that the hover rules don't actually get hit by Talos ever?
Maybe its the cursor? Regardless we probably shouldn't have a special cursor for Larry's box.
Could it be the addition of nsLookAndFeel-base system colors? Seems unlikely, but I suppose we might as well try removing that and/or the cursor and see whether that affects Txul. Could try this locally, too, it's relatively easy to get good Txul numbers in my experience.
Surely we take great pains to keep the mouse pointer out of the Talos window. Right?
I don't know, but even if we didn't the odds that it would be over the small "Larry" icon would be pretty low, I think. I was thinking perhaps there'd be a cost to just having an icon specified, even if it isn't displayed, because we had to load it or something. I'm just making wild guesses here.
I'm pretty sure nothing will be loaded until the cursor is needed.
Since Windows doesn't show the same regression, its probably the fact that we use border rules on Linux rather than outline rules. Although I really wonder why the outline rules weren't kept for Linux...
Target Milestone: --- → Firefox 3 M9
(In reply to comment #9)
> Since Windows doesn't show the same regression, its probably the fact that we
> use border rules on Linux rather than outline rules.

Border isn't known to be expensive and has been used before.

> Although I really wonder why the outline rules weren't kept for Linux...

Because we're going to use the native textfield appearance, where GTK usually doesn't draw a plain 1px border.
This doesn't block M9, I'll leave it to component leads to determine if it blocks final.
Target Milestone: Firefox 3 M9 → ---
Hey, wait, I'm a component driver. Yeah, this blocks final.
Flags: blocking-firefox3? → blocking-firefox3+
Attached image Larry looks strange on non secure page (obsolete) —
Windows 2000, {Build ID: 2007110322}

bonsai Bug 401949
mozilla/browser/themes/winstripe/browser/browser.css
1.112 ~ 1.125

mistake?
(In reply to comment #13)
You've obviously seen the commit message, so I'm not sure why you're asking...

This is caused by the right border on the identity box - which is "fun" because it was there before and reverting it to the previous color, changing it back to border-right, using a full border and reverting the patch entirely is still a ~3.5% regression.
I don't see anything added recently that might cause issues with borders, so maybe we've hit just the right combination to cause unnecessary reflows or something. I'll try and make a testcase for this and get it under a profiler :/
{Build ID: 2007110323}
2007-11-04 00:06  rflint%ryanflint.com  mozilla/browser/themes/winstripe/browser/browser.css  1.126  4/4  Bug 401949

I confirmed fix of the addition. 
There is no problem. 
May be the 'border-color' unnecessary causes a reflow and/or redraw, as the border color of the whole box is changed, and not just the right one.

Like:
#identity-box.verifiedIdentity {
  border-right-color: highlight;
}
#identity-box:hover {
  border-right-color: ThreeDDarkShadow;
}
(or using -moz-border-end)
Attachment #287288 - Attachment is obsolete: true
(In reply to comment #16)
:hover rules shouldn't matter for Txul, and verifiedIdentity isn't alive yet.
That said, we might want to remove said rules altogether on Linux; changing the border color on one edge only doesn't look that great. Also, feel free to remove cursor:help, which doesn't work well because of cursor:grab over the favicon. None of that got ui-review anyway.
This doesn't necessarily fix the regression, but reduces the number of potential culprits. Note that -moz-dialog is more commonly used than ThreeDFace in our stylesheets.
Attachment #287300 - Flags: review?(mano)
Attachment #287300 - Attachment is obsolete: true
Attachment #287301 - Flags: review?(mano)
Attachment #287300 - Flags: review?(mano)
missed cursor:inherit

Hopefully that's it now.
Attachment #287301 - Attachment is obsolete: true
Attachment #287302 - Flags: review?(mano)
Attachment #287301 - Flags: review?(mano)
Attachment #287302 - Attachment description: 287301: remove cursor, verifiedIdentity and :hover stuff → remove cursor, verifiedIdentity and :hover stuff
with that patch, the remaining differences on Linux are:

 #identity-box {
-  border-right: 1px solid #888;
-  background-color: white;
-  opacity: 0.9;
+  background-color: -moz-dialog;
+  -moz-border-end: 1px solid ThreeDShadow;
 }
 
-#identity-box:hover {
-  opacity: 1.0;
-}
-
-#identity-box.verifiedIdentity {
-  background-color: #BFA;
-}
 
 #identity-icon-label {
-    padding: 1px 2px 2px;
-    color: black;
-    vertical-align: middle;
+  padding: 0 2px;
 }
Keywords: regression
Comment on attachment 287302 [details] [diff] [review]
remove cursor, verifiedIdentity and :hover stuff (checked in)

r=mano
Attachment #287302 - Flags: review?(mano) → review+
Assignee: nobody → dao
Keywords: checkin-needed
Target Milestone: --- → Firefox 3 M10
Checking in browser/themes/winstripe/browser/browser.css;
/cvsroot/mozilla/browser/themes/winstripe/browser/browser.css,v  <--  browser.css
new revision: 1.129; previous revision: 1.128
done
Status: NEW → RESOLVED
Closed: 17 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
This doesn't fix the problem as noted in comments 14 and 18.
Assignee: dao → nobody
Status: REOPENED → NEW
Attachment #287302 - Attachment description: remove cursor, verifiedIdentity and :hover stuff → remove cursor, verifiedIdentity and :hover stuff (checked in)
Blocks: 397946
Keywords: helpwanted
Whiteboard: see comments 14 and 21
Assignee: nobody → dao
Priority: -- → P2
Assignee: dao → nobody
Target Milestone: Firefox 3 beta2 → ---
-> Ryan
Assignee: nobody → rflint
Going to move this off the blocker list, since there's no good way to know four months later if the regression was otherwise fixed.  Plus, we're 35% faster on Txul on Linux as it stands.

In the future, for perf regressions, file a bug or back out the offending patch, fixing it later is damn near impossible.
Flags: blocking-firefox3+ → blocking-firefox3-
I'm going through and marking old performance regression bugs as INCOMPLETE that are likely too old to be valid or get any traction on them.

Please re-open if you have more information or can demonstrate the regression still exists.
Status: NEW → RESOLVED
Closed: 17 years ago16 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: