Closed Bug 1697607 Opened 4 years ago Closed 4 years ago

Consider enabling widget.remote-look-and-feel everywhere.

Categories

(Core :: Widget, task)

task

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox88 --- fixed

People

(Reporter: emilio, Assigned: emilio)

References

(Blocks 2 open bugs)

Details

Attachments

(1 file)

Doing this allows us to:

  • Remove ad-hoc LookAndFeelCaches
  • Add a cache for LookAndFeel{Float,Int} in nsXPLookAndFeel, and then remove all the ad-hoc caching from nsLookAndFeel implementations.

That should simplify the setup quite a lot. Is there any reason why this wouldn't be possible?

https://treeherder.mozilla.org/#/jobs?repo=try&revision=0fc8e8316cc6e0de20b88b1e2f52212cbc5ab2d1

I would love to see this.

I tested this on macOS and Android, and stuff seems to work just fine (as in, color changes mirrored properly etc)

(ni? so I don't forget to check the try run results later today / tomorrow).

Flags: needinfo?(emilio)

Definitely want to see this happen -- Will try to help in any way I can. Windows nsLookAndFeel is a bit of a mess.

(And add a missing include while at it)

The biggest concern here is potential startup time penalty (and it
shouldn't be much anyways, if at all). In exchange, we avoid doing a lot
of this work in content processes.

Let's keep an eye on for regressions, but this sticking allows us to
simplify a lot of the lookandfeel code in follow-ups.

Looks good, and I manually tested dynamic changes on android and macOS, and they work great.

Flags: needinfo?(emilio)

(In reply to Emilio Cobos Álvarez (:emilio) from comment #6)

Looks good, and I manually tested dynamic changes on android and macOS, and they work great.

I'm just doing a manual check of widget/windows/nsLookAndFeel.cpp to ensure we aren't missing any invalidation paths (since there may be direct Win32 calls that are now being replaced with cached values). If everything looks good, I'd say ship it and I'll craft a commit to remove all the caching and content process logic.

(In reply to Chris Martin [:cmartin] from comment #7)

I'm just doing a manual check of widget/windows/nsLookAndFeel.cpp to ensure we aren't missing any invalidation paths (since there may be direct Win32 calls that are now being replaced with cached values). If everything looks good, I'd say ship it and I'll craft a commit to remove all the caching and content process logic.

I wanted to wait to add the extra caches and cleaning up once we've enabled this for at least a few days, fwiw

Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d77fccbf6d2a Enable widget.remote-look-and-feel everywhere. r=cmartin,geckoview-reviewers,agi
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
Blocks: 1698836
Blocks: 1698837
Blocks: 1699088
Blocks: 1701830
Regressions: 1703205
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: