Closed Bug 1068110 (SVGTabs) Opened 10 years ago Closed 6 years ago

Consider switching back to using SVGs for tab images

Categories

(Firefox :: Theme, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: seth, Unassigned)

References

Details

There's reason to believe that the performance issues that previously kept us from using SVGs for tab images have been fixed or can be mitigated without much additional work. In particular:

- One reason SVGs were slower, even though we cache rasterized versions of them, is that that cache could expire if we didn't redraw the tabs frequently enough. Bug 1060869 adds lifetime control to the cache we use for rasterized SVGs so that we can prevent chrome:// SVGs from expiring.

- There were rounding issues that caused ugly gaps between the different images that make up the tab in the past. After bug 1037713, which fixes many types of numerical accuracy issues in imagelib, this may no longer be a problem.

The mostly likely remaining issue I see comes from animation: it may be that when the tabs are opening or closing, we fail to hit in the cache because right now the cache takes tiling into account. If that hunch is true, I think we should be able to fix this by making the cache only store at most one tile when we draw with tiling.

So I think the steps we need to make this happen are:

1. Wait for bug 1060869 to land.
2. Write a trivial patch to lock the rasterized versions of chrome SVG images.
3. Write a patch to use SVGs instead of PNGs for the tab images.
4. Take a look at whether animation causes cache misses. If so, tweak the cache behavior as mentioned above.

I'm happy to write the patches in step 2 and 4. Someone else would have to write step 3, though.

Does anyone see any potential issues?
Another relevant bug: bug 1072754, which tested the perf impact of SVGs on the newtab page and found that there essentially wasn't one.
Depends on: 1075457
Depends on: 921673
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.